Chapter 22

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 role instead of password, sendChatMessage, and clientSettingsOverride?
  • 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.

Frequently Asked Questions

No. A client library is convenient but not required. The API uses simple HTTP GET/POST requests with a checksum parameter. Any language that can make HTTP requests, compute a SHA-256 hash, and parse XML can interact with the API directly.

The official bigbluebutton-api-php library is the recommended choice. It is actively maintained by the BBB project and is used by the Moodle BigBlueButton plugin.

Yes. The community has created libraries for additional languages such as Java, .NET, and Go. Search package repositories for your language or check the BigBlueButton community forums for recommendations.

Use API Mate, a web-based tool that lets you construct and send BBB API calls interactively. You enter your server URL and shared secret, select an endpoint, fill in parameters, and the tool generates the checksum and sends the request for you.

Greenlight is a complete web application (frontend) for managing BigBlueButton rooms and meetings. A client library is a code package that you use within your own application to make API calls programmatically. Greenlight uses a client library internally.

Scalelite is a load balancer that distributes API calls across multiple BigBlueButton servers. You need it when a single server cannot handle your expected number of concurrent meetings or participants. It acts as a transparent proxy — your application sends API calls to Scalelite, which routes them to an available BBB server.