bigbluebutton/bigbluebutton-api-php
Official PHP 8.2+ client for the BigBlueButton API. Wraps meeting creation, joining, recording management, and server administration in a developer-friendly interface, installable via Composer for quick integration into PHP applications.

The official BigBlueButton PHP API Client provides a developer-friendly wrapper to interact with the BigBlueButton API. Built for PHP 8.2+, this library simplifies integration and management of BigBlueButton servers in your PHP applications.
Install the library via Composer:
composer require bigbluebutton/bigbluebutton-api-php
Usage instructions and the full API documentation live in the mdBook documentation (build it locally with mdbook build docs).
Bugs and feature requests are tracked on GitHub
To build the documentation you need to install Rust and mdbook
curl https://sh.rustup.rs -sSf | sh -s -- -y
source "$HOME/.cargo/env"
cargo install mdbook
See the contributing documentation for the full workflow.
Please use the GitHub Issues tracker to report bugs or suggest new features.
This project follows strict code quality checks before allowing commits. Here's how to contribute effectively:
# Using Composer alias
composer code-fix
# Or directly
PHP_CS_FIXER_IGNORE_ENV=1 ./vendor/bin/php-cs-fixer fix --allow-risky yes
composer code-check
# Or
./vendor/bin/phpstan analyse
# using an alias
composer code-test
# or the same w/o alias
./vendor/bin/phpunit
To run a specific test:
# using an alias
$ composer code-test -- --filter BigBlueButtonTest::testApiVersion
# or the same w/o alias
$ ./vendor/bin/phpunit --filter BigBlueButtonTest::testApiVersion
To generate a code coverage report (requires a coverage driver such as Xdebug or PCOV, stored in ./var/coverage/):
composer code-coverage
Regular test runs (composer code-test) do not collect coverage and therefore do not require a coverage driver.
To connect tests to your own BigBlueButton server, copy .env to .env.local and configure:
BBB_SERVER_BASE_URL=https://your-bbb-server.example.com/bigbluebutton/
BBB_SECRET=your-secret
The library uses curl by default and has no HTTP client dependency. Alternatively, inject any PSR-18 client with its PSR-17 factories:
use BigBlueButton\BigBlueButton;
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\HttpFactory;
$factory = new HttpFactory();
$bbb = BigBlueButton::createWithHttpClient(
new Client(['timeout' => 10]),
$factory,
$factory,
'https://your-bbb-server.example.com/bigbluebutton/',
'your-secret',
);
See the HTTP Client documentation for more examples (Guzzle, Symfony HttpClient, php-http) and behavioral notes.
We use CaptainHook to enforce code quality:
You can manually run all pre-commit checks to avoid errors:
composer code-fix
composer code-check
composer code-test
Do not skip checks using
--no-verifyunless absolutely necessary.
CaptainHook should be installed automatically after the first composer install. If not:
vendor/bin/captainhook install
This project follows Semantic Versioning (MAJOR.MINOR.PATCH):
Releases are published as git tags in the x.x.x format without a v prefix (like the existing 2.3.1) and are summarized in CHANGELOG.md. When preparing a release, move the changelog's [Unreleased] section to the new version and tag the release commit.
This project is licensed under the terms of the LGPL-3.0.
How can I help you explore Laravel packages today?