getMeetingInfo – Get Meeting Details
The getMeetingInfo endpoint returns detailed information about a single BigBlueButton meeting, including its current participants, metadata, configuration settings, and recording status. Use it to inspect a specific meeting in real time.
Endpoint
GET/POST https://api-guide.bbbserver.com/bigbluebutton/api/getMeetingInfo?<parameter>&checksum=replace-with-checksum This endpoint requires a valid checksum computed from the shared secret of your BigBlueButton server. Both GET and POST requests are supported.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
meetingID | String | Yes | The meeting identifier of the meeting to query. This is the ID you specified when the meeting was created. |
Response Fields
A successful response contains the following fields describing the meeting and its current state:
| Field | Type | Description |
|---|---|---|
returncode | String | Indicates whether the call succeeded. Returns SUCCESS or FAILED. |
meetingName | String | The human-readable name of the meeting. |
meetingID | String | The external meeting identifier as specified during creation. |
internalMeetingID | String | The internal unique identifier generated by BigBlueButton. |
createTime | Long | Timestamp (in milliseconds since epoch) when the meeting was created. |
createDate | String | Human-readable date and time when the meeting was created. |
voiceBridge | String | The voice bridge number for telephone dial-in. |
dialNumber | String | The telephone number for dial-in access, if configured. |
attendeePW | String deprecated | The attendee password. Included for backward compatibility but deprecated since BigBlueButton 2.5. |
moderatorPW | String deprecated | The moderator password. Included for backward compatibility but deprecated since BigBlueButton 2.5. |
running | Boolean | Whether the meeting is currently running (true) or not (false). |
duration | Integer | The maximum duration of the meeting in minutes. A value of 0 means unlimited. |
hasUserJoined | Boolean | Whether at least one user has joined the meeting. |
recording | Boolean | Whether the meeting is being recorded. |
hasBeenForciblyEnded | Boolean | Whether the meeting was ended by an API end call. |
startTime | Long | Timestamp (in milliseconds) when the meeting started. |
endTime | Long | Timestamp (in milliseconds) when the meeting ended. Returns 0 if still running. |
participantCount | Integer | The total number of participants currently in the meeting. |
listenerCount | Integer | The number of participants in listen-only mode. |
voiceParticipantCount | Integer | The number of participants who have joined the audio channel. |
videoCount | Integer | The number of participants sharing their webcam. |
maxUsers | Integer | The maximum number of users allowed. A value of 0 means unlimited. |
moderatorCount | Integer | The number of moderators currently in the meeting. |
attendees | XML Container | Contains a list of attendee elements with details about each connected participant (see Attendee Fields below). |
metadata | XML Container | Contains the custom metadata key-value pairs passed during meeting creation. |
isBreakout | Boolean | Whether the meeting is a breakout room. |
parentMeetingID | String | The ID of the parent meeting. Only present for breakout rooms. |
sequence | Integer | The sequence number of the breakout room. Only present for breakout rooms. |
freeJoin | Boolean | Whether participants can freely choose which breakout room to join. Only present for breakout rooms. |
breakoutRooms | XML Container | Lists the breakout room IDs associated with this meeting. Only present when breakout rooms have been created. |
Attendee Fields
Each attendee element within attendees contains the following fields:
| Field | Type | Description |
|---|---|---|
userID | String | The internal BigBlueButton user ID, typically in the format w_xxxxxxxx. |
fullName | String | The display name of the participant. |
role | Enum | The role of the participant: MODERATOR or VIEWER. |
isPresenter | Boolean | Whether the participant is currently the presenter. |
isListeningOnly | Boolean | Whether the participant is in listen-only mode. |
hasJoinedVoice | Boolean | Whether the participant has joined the audio channel with a microphone. |
hasVideo | Boolean | Whether the participant is sharing their webcam. |
clientType | String | The type of client the participant is using. Typically HTML5. |
customdata | XML Container | Contains custom key-value data as child XML elements. Only present when custom data was set for the participant during join. |
Example Request
GET https://api-guide.bbbserver.com/bigbluebutton/api/getMeetingInfo?meetingID=replace-with-meeting-id&checksum=replace-with-checksum Example Response (Success)
<response>
<returncode>SUCCESS</returncode>
<meetingName>Project Discussion</meetingName>
<meetingID>replace-with-meeting-id</meetingID>
<internalMeetingID>replace-with-internal-meeting-id</internalMeetingID>
<createTime>1715261728123</createTime>
<createDate>Thu May 09 13:35:28 UTC 2024</createDate>
<voiceBridge>66052</voiceBridge>
<dialNumber>613-555-1234</dialNumber>
<attendeePW>replace-with-password</attendeePW>
<moderatorPW>replace-with-password</moderatorPW>
<running>true</running>
<duration>0</duration>
<hasUserJoined>true</hasUserJoined>
<recording>true</recording>
<hasBeenForciblyEnded>false</hasBeenForciblyEnded>
<startTime>1715261728142</startTime>
<endTime>0</endTime>
<participantCount>3</participantCount>
<listenerCount>1</listenerCount>
<voiceParticipantCount>2</voiceParticipantCount>
<videoCount>2</videoCount>
<maxUsers>0</maxUsers>
<moderatorCount>1</moderatorCount>
<attendees>
<attendee>
<userID>replace-with-user-id</userID>
<fullName>Max Mustermann</fullName>
<role>MODERATOR</role>
<isPresenter>true</isPresenter>
<isListeningOnly>false</isListeningOnly>
<hasJoinedVoice>true</hasJoinedVoice>
<hasVideo>true</hasVideo>
<clientType>HTML5</clientType>
</attendee>
</attendees>
<metadata>
<bbb-origin>greenlight</bbb-origin>
<bbb-origin-version>v3.1.0</bbb-origin-version>
<endcallbackurl>https://api-guide.bbbserver.com/callbacks/meeting-ended</endcallbackurl>
</metadata>
<isBreakout>false</isBreakout>
</response> Error Response
If the specified meeting ID does not exist or has already ended, the API returns a FAILED response:
<response>
<returncode>FAILED</returncode>
<messageKey>notFound</messageKey>
<message>We could not find a meeting with that meeting ID</message>
</response> A notFound error does not necessarily mean the meeting was never created. It may have already ended and been removed from the server memory. BigBlueButton only keeps meeting data while the meeting is active.
getMeetingInfo vs. getMeetings
| Aspect | getMeetings | getMeetingInfo |
|---|---|---|
| Scope | All active meetings on the server | A single specific meeting |
| Parameters | None required | meetingID required |
| Attendee details | All users including those who have left | Only currently connected users |
| Use case | Dashboard and monitoring overview | Targeted inspection of a specific meeting |
Common Use Cases
- Join logic — check whether a moderator is present before redirecting guests into the meeting.
- Participant lists — display current attendees in an external application or lobby page.
- Recording status — verify whether recording is currently active for the meeting.
- Debugging — perform a detailed analysis of a specific meeting for troubleshooting purposes.
getMeetingInfo endpoint is available on all plans. You can find your API credentials in the server management dashboard.Tips
Poll getMeetingInfo periodically to build a live participant roster. Combine the voiceParticipantCount and videoCount fields to determine how many users are actively engaged with audio and video.
Use the metadata container to pass and retrieve application-specific data such as origin system, callback URLs, or custom labels without interfering with BigBlueButton internals.
The attendeePW and moderatorPW fields are deprecated since BigBlueButton 2.5. They are still returned for backward compatibility, but you should not rely on them for authentication logic in new integrations.
Frequently Asked Questions
FAILED response with the messageKey "notFound". BigBlueButton removes meeting data from memory once a meeting has ended. To access information about past meetings, use the getRecordings endpoint instead.getMeetings may include users who have left in certain BigBlueButton versions.BigBlueButton itself, but frequent polling (e.g., every second) can put unnecessary load on the server. A polling interval of 5 to 10 seconds is typically sufficient for most use cases.getMeetingInfo with the meetingID. If the response returncode is SUCCESS, the meeting exists and is active. If it is FAILED with messageKey "notFound", the meeting does not exist or has already ended.parentMeetingID, sequence, freeJoin, and breakoutRooms only appear in the response when the meeting is a breakout room or has breakout rooms. For regular meetings, isBreakout is false and the other breakout fields are omitted.customdata container holds user-specific key-value pairs that were passed as parameters when the user joined the meeting via the join API call. Each key becomes an XML child element. If no custom data was provided, this element may be absent.