Client Libraries & Integration Tools
Client libraries abstract away the details of checksum calculation, HTTP request construction, and XML response parsing, letting you interact with the BigBlueButton API through typed methods in your preferred programming language. This chapter provides an overview of available libraries, integration tools, and guidance on choosing the right option for your project.
Official Libraries
The following libraries are maintained by the BigBlueButton project itself or closely affiliated contributors. They are generally well-maintained and track new API features as they are released.
| Library | Language | Repository | Notes |
|---|---|---|---|
| bigbluebutton-api-php | PHP | GitHub | Official PHP library. Used by the Moodle BBB plugin. Actively maintained. |
| bigbluebutton-api-js | JavaScript / Node.js | GitHub | Official JavaScript library for server-side Node.js usage. |
Community Libraries
These libraries are developed and maintained by the community. Their quality and update frequency vary — always check the maintenance status and supported BBB version before adopting one.
| Library | Language | Repository | Notes |
|---|---|---|---|
| bigbluebutton-api-python | Python | PyPI | Community-maintained Python library. |
| bigbluebutton-api-ruby | Ruby | RubyGems | From the Mconf project. Community-maintained. |
This list is not exhaustive. Additional community projects exist that are not listed here. The maintenance and currency of each library is the responsibility of its respective maintainers — always verify that a library supports your target BBB version before using it in production.
Integration Tools
Beyond client libraries, several tools can help you test, manage, and scale BigBlueButton deployments:
| Tool | Description |
|---|---|
| API Mate (bigbluebutton.org) | Web-based tool for testing BBB API calls. bigbluebutton.org/api-mate/ |
| API Mate (Mconf) | Alternative web-based API testing tool. mconf.github.io/api-mate/ |
| bbb-conf | CLI tool on the BBB server. Displays secret, URL, and status via bbb-conf --secret. |
| Greenlight | Official BBB frontend built with Ruby on Rails. Uses the API internally to manage rooms and meetings. |
| Scalelite | Load balancer for multiple BBB servers. Forwards and distributes API calls across available instances. |
Choosing a Library
When evaluating a client library for your project, consider the following criteria:
- BBB version support: Does the library support BBB 3.0 features such as
roleinstead ofpassword,sendChatMessage, andclientSettingsOverride? - Checksum algorithm: Does the library support SHA-256 and SHA-512, or only the legacy SHA-1?
- POST support: Can the library send XML bodies (required for presentation uploads and
clientSettingsOverride)? - Maintenance status: When was the last commit? Are there unresolved issues without any response?
- Webhook support: Does the library offer helper functions for webhook registration and callback validation?
If you only need basic operations like creating and joining meetings, a full-featured library may not be necessary. A lightweight custom integration can be simpler to maintain and easier to audit.
Building a Custom Integration
If none of the existing libraries fit your requirements, you can build your own integration with any HTTP-capable language. The core logic consists of three components:
Checksum function — compute the SHA-256 hash from the API call name, the query string, and the shared secret. Refer to the checksum authentication chapter for implementation examples in multiple languages.
HTTP GET/POST — send the request to the BBB API URL with the checksum appended as a query parameter.
XML parsing — parse the response XML and check the returncode field for SUCCESS or FAILED.
For simple integrations that only need create and join, this can be achieved in just a few lines of code — a full library is not strictly necessary.
# Minimal example: create + join (pseudocode)
secret = "replace-with-secret"
base = "https://api-guide.bbbserver.com/bigbluebutton/api"
# 1. Build query string
params = "name=Demo&meetingID=replace-with-meeting-id&attendeePW=replace-with-password&moderatorPW=replace-with-password"
# 2. Compute checksum
checksum = sha256("create" + params + secret)
# 3. Send request
response = http_get(base + "/create?" + params + "&checksum=" + checksum)
# 4. Parse XML response
if parse_xml(response).returncode == "SUCCESS":
# Build join URL for a moderator
join_params = "fullName=Admin&meetingID=demo-1&role=MODERATOR"
join_checksum = sha256("join" + join_params + secret)
redirect_to(base + "/join?" + join_params + "&checksum=" + join_checksum) Always generate API calls on the server side. The shared secret must never be exposed in client-side code such as JavaScript running in the browser or in mobile applications.