API Reference
Overview
This document describes the BigBlueButton application programming interface (API).
For developers, this API enables you to
- create meetings
- join meetings
- end meetings
- insert documents
- get recordings for past meetings (and delete them)
- upload closed caption files for meetings
To make an API call to your BigBlueButton server, your application makes HTTPS requests to the BigBlueButton server API endpoint (usually the server's hostname followed by /bigbluebutton/api). All API calls must include checksum computed with a secret shared with the BigBlueButton server.
The BigBlueButton server returns an XML response to all API calls.
Updates to API in BigBlueButton
Updated in 0.9.0:
- join -
configTokencan now reference a file in/var/bigbluebutton/configs, such asmyconfig.xml. - create - Added three parameters:
moderatorOnlyMessageto display message only visible to moderators andautoStartRecording/allowStartStopRecordingto provide finer control over recordings.
Updated in 1.0:
- getMeetings - Added fields on the returned XML
- getMeetingInfo - Added fields on the returned XML and deprecated parameters
- getRecordings - Added meta parameter and state parameter to filter returned results
Updated in 1.1:
- create - Added fields on the returned XML
- getMeetings - Added fields on the returned XML
- getMeetingInfo - Added fields on the returned XML
- getRecordings - Returns an XML block with thumbnails from the slides as well as a
<participants>N</participants>element with number of participants who attend the meeting. - updateRecordings - Meta parameters can be edited
Updated in 2.0:
- create - Added
bannerText,bannerColor,logo,copyright, andmuteOnStart. - getMeetings - Now returns all the fields in getMeetingInfo.
- getMeetingInfo - Added
<client>field to return client type (FLASH, or HTML5).
Updated in 2.2:
- create - Added
endWhenNoModerator. - getRecordingTextTracks - Get a list of the caption/subtitle files currently available for a recording.
- putRecordingTextTrack - Upload a caption or subtitle file to add it to the recording. If there is any existing track with the same values for kind and lang, it will be replaced.
Updated in 2.3:
- create - Renamed
keepEventstomeetingKeepEvents, removedjoinViaHtml5, addedendWhenNoModeratorDelayInMinutes. - getDefaultConfigXML obsolete, not used in HTML5 client.
- setConfigXML obsolete, not used in HTML5 client.
Updated in 2.4:
- getDefaultConfigXML Removed, not used in HTML5 client.
- setConfigXML Removed, not used in HTML5 client.
- create
- Added
meetingLayout,learningDashboardEnabled,learningDashboardCleanupDelayInMinutes,allowModsToEjectCameras,virtualBackgroundsDisabled,allowRequestsWithoutSession,userCameraCap. name,attendeePW, andmoderatorPWmust be between 2 and 64 characters longmeetingIDmust be between 2 and 256 characters long and cannot contain commas
- Added
- join - Added
role,excludeFromDashboard.
Updated in 2.5:
-
create - Added:
meetingCameraCap,groups,disabledFeatures,meetingExpireIfNoUserJoinedInMinutes,meetingExpireWhenLastUserLeftInMinutes,preUploadedPresentationOverrideDefault; Deprecated:learningDashboardEnabled,breakoutRoomsEnabled,virtualBackgroundsDisabled. -
insertDocument endopoint was first introduced
API Data Types
There are three types in the API.
String
: This data type indicates a (UTF-8) encoded string. When passing String values to BigBlueButton API calls, make sure that you use correctly URL-encoded UTF-8 values so international text will show up correctly. The string must not contain control characters (values 0x00 through 0x1F).
Some BigBlueButton API parameters put additional restrictions on which characters are allowed, or on the lengths of the string. These restrictions are described in the parameter documentation.
Number
: This data type indicates a non-negative integer value. The parameter value must only contain the digits 0 through 9. There should be no leading sign (+ or -), and no comma or period characters.
Boolean
: A true/false value. The value must be specified as the literal string true or false (all lowercase), other values may be misinterpreted.
API Security Model
The BigBlueButton API security model enables 3rd-party applications to make API calls (if they have the shared secret), but not allow other people (end users) to make API calls.
The BigBlueButton API calls are almost all made server-to-server. If you installed the package bbb-demo on your BigBlueButton server, you get a set of API examples, written in Java Server Pages (JSP), that demonstrate how to use the BigBlueButton API. These demos run as a web application in tomcat7. The web application makes HTTPS requests to the BigBlueButton server's API end point.
You can retrieve your BigBlueButton API parameters (API endpoint and shared secret) using the command
$ bbb-conf --secret
Here's a sample return
URL: http://bbb.example.com/bigbluebutton/
Secret: ECCJZNJWLPEA3YB6Y2LTQGQD3GJZ3F93
You should not embed the shared secret within a web page and make BigBlueButton API calls within JavaScript running within a browser. The built-in debugging tools for modern browser would make this secret easily accessibile to any user. Once someone has the shared secret for your BigBlueButton server, they could create their own API calls. The shared secret should only be accessibile to the server-side components of your application (and thus not visible to end users).
Configuration
The shared secret is located in the /etc/bigbluebutton/bbb-web.properties file.
Look for the parameter securitySalt (it's called securitySalt due to legacy naming of the string)
securitySalt=<your_salt>
We'll refer to this value as sharedSecret. When you first install BigBlueButton on a server, the packaging scripts create a random 32 character sharedSecret. You can also change the sharedSecret at anytime using the command bbb-conf --setsecret.
$ sudo bbb-conf --setsecret <new_shared_secret>
The following command will create a new 32 character shared secret for your server
$ sudo bbb-conf --setsecret \$(openssl rand -base64 32 | sed 's/=//g' | sed 's/+//g' | sed 's/\///g')
IMPORTANT: DO NOT ALLOW END USERS TO KNOW YOUR SHARED SECRET OR ELSE YOUR SECURITY WILL BE COMPROMISED.
There are other configuration values in bbb-web's configuration bigbluebutton.properties (overwritten by /etc/bigbluebutton/bbb-web.properties ) related to the lifecycle of a meeting. You don't need to understand all of these to start using the BigBlueButton API. For most BigBlueButton servers, you can leave the default values.
In 2.5 support for additional hashing algorithms, besides sha1 and sha256, were added. These include sha384 and sha512. The supportedChecksumAlgorithms property in bigbluebutton.properties defines which algorithms are supported. By default checksums can be validated with any of the supported algorithms. To remove support for one or more of these algorithms simply delete it from the configuration file.