getMeetings – List All Meetings
The getMeetings endpoint returns a list of all meetings currently existing on the BigBlueButton server, including participant details and metadata. It is the primary tool for building admin dashboards, monitoring server load, and performing capacity planning across your infrastructure.
Endpoint
GET/POST https://api-guide.bbbserver.com/bigbluebutton/api/getMeetings?checksum=replace-with-checksum This endpoint does not require any additional parameters beyond the checksum. It returns all meetings on the server in a single response.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
checksum | String | Yes | — | Security checksum computed from the API call name and the shared secret. |
Example Request
https://api-guide.bbbserver.com/bigbluebutton/api/getMeetings?checksum=replace-with-checksum Example Response
Meetings Found
<response>
<returncode>SUCCESS</returncode>
<meetings>
<meeting>
<meetingName>Demo Meeting</meetingName>
<meetingID>replace-with-meeting-id</meetingID>
<internalMeetingID>a0715c95...</internalMeetingID>
<createTime>1531241258036</createTime>
<createDate>Tue Jul 10 16:47:38 UTC 2018</createDate>
<voiceBridge>70066</voiceBridge>
<dialNumber>613-555-1234</dialNumber>
<attendeePW>ap</attendeePW>
<moderatorPW>mp</moderatorPW>
<running>true</running>
<duration>0</duration>
<hasUserJoined>true</hasUserJoined>
<recording>false</recording>
<hasBeenForciblyEnded>false</hasBeenForciblyEnded>
<startTime>1531241258074</startTime>
<endTime>0</endTime>
<participantCount>5</participantCount>
<listenerCount>2</listenerCount>
<voiceParticipantCount>3</voiceParticipantCount>
<videoCount>2</videoCount>
<maxUsers>0</maxUsers>
<moderatorCount>1</moderatorCount>
<attendees>
<attendee>
<userID>w_ftcrsyuh44oj</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/>
<isBreakout>false</isBreakout>
</meeting>
</meetings>
</response> No Meetings Found
<response>
<returncode>SUCCESS</returncode>
<meetings/>
<messageKey>noMeetings</messageKey>
<message>no meetings were found on this server</message>
</response> Response Fields per Meeting
| Field | Type | Description |
|---|---|---|
meetingName | String | Display name of the meeting. |
meetingID | String | External meeting ID as specified during creation. |
internalMeetingID | String | Internal server-generated unique ID. |
createTime | Number | Creation timestamp in milliseconds since Unix epoch. |
createDate | String | Human-readable creation date string. |
voiceBridge | String | Voice bridge number for audio conferencing. |
dialNumber | String | Phone dial-in number for the meeting. |
attendeePW | String | Attendee password. Only present if set. Deprecated in BBB 3.0. |
moderatorPW | String | Moderator password. Only present if set. Deprecated in BBB 3.0. |
running | Boolean | Whether the meeting is currently active. |
duration | Number | Maximum duration in minutes. 0 means unlimited. |
hasUserJoined | Boolean | Whether at least one user has joined the meeting. |
recording | Boolean | Whether recording is enabled for this meeting. |
hasBeenForciblyEnded | Boolean | Whether the meeting was forcibly ended via the API. |
startTime | Number | Start timestamp in milliseconds since Unix epoch. |
endTime | Number | End timestamp. 0 if the meeting is still running. |
participantCount | Number | Current number of participants in the meeting. |
listenerCount | Number | Number of listen-only participants. |
voiceParticipantCount | Number | Number of participants with active audio. |
videoCount | Number | Number of active webcams. |
maxUsers | Number | Maximum number of participants allowed. 0 means unlimited. |
moderatorCount | Number | Number of moderators currently in the meeting. |
attendees | List | List of all participants with details such as userID, fullName, role, and media status. |
metadata | Object | All custom metadata parameters passed during the create call. |
isBreakout | Boolean | Whether this is a breakout room. |
parentMeetingID | String | Meeting ID of the parent meeting. Only present for breakout rooms. |
sequence | Number | Sequence number of the breakout room. Only present for breakout rooms. |
freeJoin | Boolean | Whether participants can freely choose this breakout room. Only present for breakout rooms. |
breakoutRooms | List | List of breakout room IDs. Only present when the meeting has active breakout rooms. |
Attendee Details
Each entry in the attendees list contains the following fields:
| Field | Type | Description |
|---|---|---|
userID | String | Unique internal user identifier. |
fullName | String | Display name of the participant. |
role | String | Role of the participant: MODERATOR or VIEWER. |
isPresenter | Boolean | Whether the participant is currently the presenter. |
isListeningOnly | Boolean | Whether the participant joined in listen-only mode. |
hasJoinedVoice | Boolean | Whether the participant has joined the voice conference. |
hasVideo | Boolean | Whether the participant has an active webcam. |
clientType | String | Client type used by the participant (e.g. HTML5). |
The attendee list returned by getMeetings includes all users who have ever joined the meeting, including those who have already left. This is different from getMeetingInfo, which only returns currently connected users. Keep this in mind when calculating active participant counts.
Common Use Cases
- Admin dashboard — display an overview of all running meetings and their participant counts.
- Capacity planning — calculate the total number of active participants across all meetings on the server.
- Monitoring — identify meetings without a moderator or meetings experiencing issues.
- Automatic cleanup — find meetings that have existed for a long time without any participants.
Tips and Best Practices
Since getMeetings returns all meetings on the server (not just running ones), filter the results by the running field if you only need active meetings.
The response contains sensitive information such as participant names, user IDs, and passwords. Always call this endpoint from server-side code only. Never expose it to client-side applications or end users.
There is no pagination support for this endpoint. On servers with many concurrent meetings, the response can become very large and may impact performance. Consider caching the results if you poll frequently.
Frequently Asked Questions
running field if you only need active meetings.getMeetings returns a summary of all meetings on the server, while getMeetingInfo returns detailed information about a single specific meeting. Additionally, the attendee list in getMeetings includes all users who have ever joined (including those who left), whereas getMeetingInfo only lists currently connected users.isBreakout field. If it is true, the meeting is a breakout room and will include additional fields such as parentMeetingID, sequence, and freeJoin. The parent meeting will have a breakoutRooms list containing the IDs of its breakout rooms.getMeetings. All meetings are returned in a single response. For servers with a very large number of meetings, consider implementing caching or calling the endpoint less frequently to reduce server load.