Chapter 10 GET POST

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.
On bbbserver.de, the 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

You will receive a 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.

No. The attendees list only contains participants who are currently connected to the meeting. Users who have left are no longer included. In contrast, getMeetings may include users who have left in certain BigBlueButton versions.

There is no hard rate limit enforced by 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.

Yes. Call 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.

Fields like 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.

The 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.