bigbluebutton/bigbluebutton-api-php
BigBlueButton PHP API Library for PHP
3.0.0
1.3M downloads/mo
#4934 most downloaded on Packagist
bigbluebutton/bigbluebutton-api-php
What this package is like to depend on
Last release 4 days ago
19 Aug 2026
Release timing varies
gaps range from 8 days to 2.3 years
Some releases are documented
notes for 9 of 24 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
24 releases · first in 2018
1 release in the last 12 months
see the full history below
Release timeline
24 releases · Jun 2018 to Aug 2026Releases
latest 24-
3.0.019 Aug 2026Release notes
Open source →Major release: full BigBlueButton 3.0 & 4.0 API support, with backward compatibility for 2.x and 3.x servers — upgrading is drop-in, removed/renamed members are kept as deprecated BC stubs.
Highlights
- New endpoints:
getSessions,learningDashboard,getJoinUrl,sendChatMessage,feedback(experimental) andinsertDocumentviaDocumentUrl/DocumentFile - All 3.0/4.0 Create & Join parameters: client settings override, shared-notes content, plugin manifests &
plugin_*metadata,PresenterPolicy, breakout-room capture, re-join parameters,MeetingLayoutand extendedFeatureenums - PSR-18 HTTP client injection:
BigBlueButton::createWithHttpClient()accepts any PSR-18 client + PSR-17 factories; curl remains the default, and the library now ships with zero package dependencies (psr/*in suggest) - Fixes:
getJoinUrlJSON parsing (the previous XML implementation never worked against a real server),putRecordingTextTrackmultipart uploads, JSESSIONID cookie capture, constructor argument order, spurious empty params - Quality & docs: 100% class/method/line test coverage, PHPStan clean, complete mdBook documentation
- Tested against BigBlueButton 3.0 and 4.0 beta 5
What's Changed
API & parameters
- Replace deprecated lockSettingsDisableNote by lockSettingsDisableNotes by @DigitalTimK in #235
- Improve DocumentOptions by @DigitalTimK in #236
- Add "preUploadedPresentation" and "preUploadedPresentationName" to create by @nimah79 in #249
- Introduce ApiParameterMapper-Attribute Class by @DigitalTimK in #253
- Improve parameter constructors by @DigitalTimK in #247
- Introduce native php enums by @DigitalTimK in #248
- Introduce document classes by @DigitalTimK in #245
- Simplify BigBlueButton::processJsonResponse, drop parameter by @donquixote in #275
- Inject UrlBuilder instance into the BigBlueButton constructor by @donquixote in #286
- Add #[SensitiveParameter] attribute by @donquixote in #285
- Issue #267: Inject PSR http client into BigBlueButton class, instead of using curl by @donquixote in #273
Tests & tooling
- Upgrade to phpunit 10 by @DigitalTimK in #251
- Implement CaptainHook by @DigitalTimK in #256
- Test fixture files (and other stuff) by @DigitalTimK in #234
- Sort packages in composer.json by @donquixote in #268
- Run php-cs-fixer by @donquixote in #274
- Remove unnecessary non-capturing group in regex by @donquixote in #269
- Issue #279: testInsertDocumentFile random fail by @donquixote in #280
- Fix "is feature disabled" check in more places in BigBlueButtonTest by @donquixote in #282
- Fix data provider in FixturesTest by @donquixote in #283
Documentation
- Introduce documentation in docs-folder by @DigitalTimK in #228
New Contributors
- @nimah79 made their first contribution in #249
- @donquixote made their first contribution in #268
Full Changelog: 2.3.1...3.0.0
Release notes
Open source →See git history.
Added
- BBB 3.0 / 4.0 API support
getSessionsendpoint: returns one session per joined user (GetSessionsResponse,Core\Session)learningDashboardendpoint: learning dashboard data of a running meeting (moderator session required)getJoinUrlendpoint: generates new/joinURLs for existing user sessionssendChatMessageendpoint: sends a public chat message into a running meetingfeedbackendpoint (experimental: reserved in the BBB server source, not routed on current BBB releases)insertDocument: documents viaDocumentUrl/DocumentFile- Create:
clientSettingsOverridePOST module (HTML5 client settings per meeting) andclientSettingsOverrideJsonUrlvariant - Create: shared-notes configuration (
sharedNotesEditor,sharedNotesInitialContentJsonUrl,sharedNotesInitialContentJsonPOST module,sharedNotesInitialContentMarkdown,sharedNotesInitialContentMarkdownUrl,sharedNotesInitialContentMarkdownPOST module) - Create:
loginURL,pluginManifests,pluginManifestsFetchUrl,presentationConversionCacheEnabled,maxNumPages,multiUserWhiteboardEnabled,recordFullDurationMedia,notifyRecordingIsOn,presentationUploadExternalUrl/Description - Create:
maxPinnedCameras,darklogo,logoutTimer,cameraBridge,screenShareBridge,audioBridge,lockSettingsHideViewersAnnotation, breakout-room capture parameters (breakoutRoomsCaptureSlides/Notesincl. filenames) - Create (BBB 4.0):
lockSettingsPresenterPolicy(newPresenterPolicyenum),notifyRecordingAppend,requireUserConsentBeforeUnmuting - Create: generic
plugin_*metadata (addPluginMeta()/setPluginMeta()) - Join:
bot,enforceLayout,logoutURL,firstName,lastName,webcamBackgroundURL,errorRedirectUrl - Join (BBB 3.0+): re-join parameters
existingUserID,replaceSessionToken,sessionName - Join:
authparameter for the guest-policy evaluation (guestPolicy=ALWAYS_ACCEPT_AUTH) MeetingLayoutenum:UNIFIED_LAYOUT,PLUGINS_ONLY,PARTICIPANTS_AND_CHAT_ONLYFeatureenum (disabledFeatures):privateChat,plugins,multiFunctionalMode,pinChatMessageand all 3.0 optionsApiVersionResponse:graphqlWebsocketUrl,graphqlApiUrl,html5PluginSdkVersion
- PSR-18 http client injection:
BigBlueButton::createWithHttpClient()accepts any PSR-18 client with PSR-17 factories; curl remains the dependency-free default. Multipart uploads (caption tracks),BadResponseExceptionerror handling and JSESSIONID capture work identically through both transports. - Complete mdBook documentation: HTTP client injection, cookies/JSESSIONID, hooks, recordings incl. text tracks, server configuration, FAQ, contribution and testing guides.
Fixed
getJoinUrlnow parses the real JSON response of the BBB server (the previous XML-based implementation could never work against a real server); former getters are kept as deprecated BC-stubsputRecordingTextTrackuploads the caption track as POST multipart with afilefield (was a GET request without file);PutRecordingTextTrackParameters::setTrackFile()provides the trackPutRecordingTextTrackResponse::isUploadTrackSuccess()and friends evaluate the message key of successful responses, tooBigBlueButton::__construct($baseUrl, $secret)no longer mixes up the two arguments when passed explicitlyBaseJsonResponsereads missingmessage/messageKeyproperties null-safe- The curl transport now reads the cookie jar after the request and extracts the JSESSIONID from the Netscape jar format (the old code read the jar before the request and could never capture a cookie)
DocumentFilethrows its dedicated exception on unreadable files instead of emitting a PHP warning firstgetJSessionId()no longer fails on uninitialized access before a session id was captured- Empty list parameters (
disabledFeatures,disabledFeaturesExclude) are no longer serialized as empty strings on every request; the hookseventIDparameter is deliberately still sent empty — the webhooks application echoes it with an empty element
Deprecated
- Create:
breakoutRoomsEnabled,learningDashboardEnabled,virtualBackgroundsDisabled(replaced bydisabledFeatures),copyright,webVoice(no effect since BBB 4.0) - Join:
defaultLayout(useuserdata-bbb_default_layout),webVoiceConf(no effect since BBB 4.0) Feature::LAYOUTS(no longer a validdisabledFeaturesoption since BBB 4.0)
Changed
psr/http-clientandpsr/http-factoryare optional (suggest): the library itself ships without package dependencies and uses curl by default- The curl transport releases its cookie temp file also when a request fails; the hooks hashing algorithm is restored when a URL build throws; the parameter-mapping reflection is cached per class
JoinMeetingParameters::enforceLayoutacceptsMeetingLayout|stringand is exposed asMeetingLayoutenumgetJoinMeetingURL()is officially supported again and documented as the standard join flow;joinMeeting()carries a warning that server-side joins skip the session cookie- Test suite: 100 percent class, method and line coverage; every API method is additionally tested offline against a stub PSR-18 client
- Quality gates: PHPStan clean, PHPUnit exits 0, pre-commit hooks pass without bypass; code coverage is opt-in via
composer code-coverage
- New endpoints:
-
2.3.107 May 2024Release notes
Open source →This releases fixes a design regression in BigBlueButton class for the urlBuilder property and implements
insertDocumentAPI.insertDocumentAPI implementation is rewritter in version 3.0.0 coming along with more breaking changes. -
2.3.020 Apr 2024 -
2.2.021 May 2023 -
2.1.417 Jun 2022Release notes
Open source →Fix PHP type compatibility issue for boolean by accepting null as function return value.
-
2.1.317 Jun 2022Nothing published for this version
-
2.1.215 Jun 2022Release notes
Open source →New features
- Handle multiple recording formats by @MedAzizHaddad in #179
Updates
- Delete composer 1 dev dependency.
- Update PHP CS Fixer version for dev.
- Delete password parameter from
getRecordingsAPI.
New Contributors
- @MedAzizHaddad made their first contribution in #179
Full Changelog: 2.1.1...2.1.2
-
2.1.124 Jan 2022Release notes
Open source →What's Changed
- Hotfix : fix mistyped
breakoutRoomsPrivateChatEnabledparameter for creating rooms by @michaelCenef in #173 - Pass array with curl options to the BigBlueButton class by @denis-b in #171
New Contributors
- @michaelCenef made their first contribution in #173
- @denis-b made their first contribution in #171
Full Changelog: 2.1.0...2.1.1
- Hotfix : fix mistyped
-
2.1.029 Dec 2021Release notes
Open source →New features
- Add new features for BigBlueButton 2.3.x and 2.4.x
- Add the ability to configure the timeout.
- Add "buildUrl" for custom addtional API.
- Handle guest policy.
Updates
- Delete legacy configXml APIs.
- Delete joinViaHTML5.
Fixed
- Fix fetching customdata for attendees.
- Close php curl.
-
2.0.1311 Jun 2021Release notes
Open source →New features
- Allow passing optional parameters to
BigBlueButtonclass.
Updates
- Support for 7.1+
- Add
isBreakoutproperty toMeeting.
Fixed
- Fix
getRawtype inHookclass.
- Allow passing optional parameters to
-
2.0.1225 Apr 2021Nothing published for this version
-
2.0.1115 Apr 2021Nothing published for this version
-
2.0.1007 Apr 2021Nothing published for this version
-
2.0.920 Aug 2020Nothing published for this version
-
2.0.802 Apr 2020Nothing published for this version
-
2.0.715 Nov 2019Nothing published for this version
-
2.0.614 Nov 2019Nothing published for this version
-
2.0.510 Apr 2019Nothing published for this version
-
2.0.415 Nov 2018Nothing published for this version
-
2.0.312 Nov 2018Nothing published for this version
-
2.0.218 Oct 2018Nothing published for this version
-
2.0.105 Oct 2018Nothing published for this version
-
2.0.001 Aug 2018Nothing published for this version
-
v1.013 Jun 2018Nothing published for this version