Appearance
Jabra Plus APIs (beta)
With the Jabra Plus APIs (beta), you can easily integrate Jabra device functionality into your cloud service
The Jabra Plus APIs support the following use cases:
- Getting device inventory
- Getting meeting room information
- Getting and updating device settings
- Getting and updating firmware version
- Remote reboot of meeting room devices
- Webhook for subscribing to updates to meeting room device status
Background and pre-requisites
With the Jabra Plus APIs you can manage devices in your J+ tenant of (Jabra Plus). To use the APIs, you need to:
- Have a Jabra Plus tenant - you can create your organization's tenant on Jabra Plus.
- Have devices set up in your Jabra Plus organization
- Have an API subscription key (available from your Jabra Plus Tenant instance).
Why is this in beta
Production-ready core features that work today, but:
- During this period features are still under development and changes can occur.
- Breaking changes will be handled under versioning, whenever possible.
- Limited documentation or feature completeness can be expected.
Usage of the Jabra Plus APIs is free during the beta period. After this, APIs may be moved to a paid service only.
Feedback and bug reporting
As the Jabra Plus APIs are in beta, we'd love to get feedback from developers. Please don't hesitate to contact developer support telling us:
- What you like about the APIs
- What you'd like to see changed
- Feature requests for upcoming versions
- Bug reports if you run into anything you think is not working as you'd expect it to
Getting started
The full set of API endpoints and versions available can be found at the API Portal, including the exact URLs and format for each API endpoint. The portal requires that you have set up API access as per the pre-requisites above. Further you can directly interact with the APIs and get examples of exact HTTP requests to use the API endpoints.
API endpoints available
The full set of API endpoints and versions available can be found at the API Portal.
Base URL for API access: https://api.cloud.jabra.com
Devices API
The Devices API let's you retrieve device inventory, get settings per device, update settings per device, get available firmware versions per device and update firmware version per device.
Most important query Parameters:
- PageSize (integer): Number of devices per page (max: 100 - this is the recommended value)
- DeviceClientType (string): Filter by type – “Personal” or “MeetingRoom”. If nothing is specified all devices are returned. Please be aware that this is filtering on client type, not device type. See more below or in the Jabra Plus user guide: Jabra Plus -> click your user name -> Download user guide.
- ContinuationToken (string): Token for the next page (returned in previous response) in case returned payload exceeds PageSize.
- Full list of available query parameters is available on the API Portal
Example:
http
GET https://api.cloud.jabra.com/Devices/api/devices?DeviceClientType=MeetingRoom&SortDescending=false&PageSize=100 HTTP/1.1
Cache-Control: no-cache
api-version: 1
Ocp-Apim-Subscription-Key: {your API subscription key}curl
curl -v -X GET "https://api.cloud.jabra.com/Devices/api/devices?DeviceClientType=MeetingRoom&SortDescending=false&PageSize=100" -H "Cache-Control: no-cache" -H "api-version: 1"
- H "Ocp-Apim-Subscription-Key: {your API subscription key}""This example returns a list of meeting room devices in pages of 100.
Meeting Rooms API
The Meeting Rooms API gets a meeting room based on the "groupId" property of a meeting room devices. Additionally you can remote reboot all Jabra meeting room devices in a particular meeting room.
Example of getting a meeting room:
http
GET https://api.cloud.jabra.com/meetingrooms/api/meetingrooms/{groupId of one of devices in room} HTTP/1.1
Cache-Control: no-cache
api-version: 1
Ocp-Apim-Subscription-Key: {your API subscription key}curl
curl -v -X GET "https://api.cloud.jabra.com/meetingrooms/api/meetingrooms/{groupId of one of devices in room}" -H "Cache-Control: no-cache" -H "api-version: 1"
- H "Ocp-Apim-Subscription-Key: {your API subscription key}""Example of rebooting all Jabra devices in a meeting room:
http
POST https://api.cloud.jabra.com/meetingrooms/api/meetingrooms/{groupId of one of devices in room}/reboot HTTP/1.1
Cache-Control: no-cache
api-version: 1
Ocp-Apim-Subscription-Key: {your API subscription key}curl
curl -v -X POST "https://api.cloud.jabra.com/meetingrooms/api/meetingrooms/{groupId of one of devices in room}/reboot" -H "Cache-Control: no-cache" -H "api-version: 1"
- H "Ocp-Apim-Subscription-Key: {your API subscription key}""Meeting room devices vs personal devices
Jabra Plus is divided into 2 sections with two different gateway clients.
Personal client is designed to be installed on desktop clients to manage personal Jabra devices such as headsets, personal cameras and speakers.
Meeting room client is designed to be installed on Meeting Room equipment such as Microsoft Teams Room compute devices or Zoom Room compute devices to manage Jabra connected meeting room equipment such as speakers, video bars, tablet controllers and schedulers. Meeting room clients can also be the embedded client running inside Jabra meeting room equipment with direct network access to Jabra Plus (e.g. Jabra Panacast 50 VBS).
API versioning
Jabra Plus APIs use explicit version headers to maintain backward compatibility while evolving functionality. See full description of available APIs and versions in the API Portal. Version header format:
api-version: [version-number]Backward compatibility: Older versions will remain supported during transition periods. New parameters or response fields added will always be in a new version, to avoid breaking existing integrations.
While we strive to avoid breaking changes outside of new versions, this is not a guarantee against breaking changes.
Paging and continuation token
When getting a list of devices the response will be delivered in pages of max 100 devices (recommended value). If more devices are available a continuation token is provided to request next pages of devices.
Example of using continuation token to request next page:
The continuation token is provided in the API response when more pages are available.
http
GET https://api.cloud.jabra.com/Devices/api/devices?SortDescending=false&ContinuationToken={your continuation token} HTTP/1.1
Cache-Control: no-cache
api-version: 1
Ocp-Apim-Subscription-Key: {your API subscription key}curl
curl -v -X GET "https://api.cloud.jabra.com/Devices/api/devices?SortDescending=false&ContinuationToken={your continuation token}" -H "Cache-Control: no-cache" -H "api-version: 1" -H "Ocp-Apim-Subscription-Key: {your API subscription key}"See full description of available APIs in the API Portal
Webhooks
To get near real-time updates on changes happening to meeting room devices, you can use the Jabra Plus webhooks. Webhooks can be used to get near real-time notifications any time:
- Meeting room device status has changed. E.g. device went offline, online or rebooted.
- Meeting room device firmware has changed. E.g. a firmware update was completed.
The schema for the webhook payload can be downloaded when creating or editing a webhook in the Jabra Plus portal.
Webhooks only work with meeting room devices
Please be aware that webhooks are only available for meeting room devices (camera bars, schedulers, tablet control units, etc.). If you need information about the state of personal devices (headsets, speakerphones, etc.) you will need to use REST APIs and get devices at an interval compliant with the below rate limits. If you have a use case for which you'd like to use webhooks with personal devices, please let us know by contacting our developer support.
Creating a webhook
To create a webhook, go to the Jabra Plus portal and click Add webhook button. Enter a name for the webhook, your URL for receiving it, choose authentication method (none or Basic Authentication) and check the boxes for device status changed and firmware changed respectively as desired.
Once you have added the webhook in the Jabra Plus portal your URL will be sent a validation event containing a validationUrl property in the data portion of the event. To complete the validation handshake, find that URL in the event data and do a GET request to it. You can use either a REST client or your web browser. The provided URL is valid for 10 minutes.
Usage terms, rate limits, quota
Usage of the Jabra Plus APIs is free during the beta period. After this, APIs may be moved to a paid service only. Please consult Jabra Plus legal agreements for further usage terms.
The Jabra Plus APIs are governed by rate limits as per the following:
General rate limits across all API endpoints (both rules apply):
- 10000 API calls per 5 minutes
- 100 API calls per second
Specific rate limit for updating firmware, changing settings and rebooting devices:
- 1 API request per minute per device
When these limits are exceeded, the API returns HTTP 429 Too Many Requests. The response includes a Retry-After header indicating when the client may retry.
Clients should treat HTTP 429 as a non-fatal, expected condition and:
- Respect the
Retry-Afterheader before retrying. - Apply exponential backoff and jitter to avoid synchronized retry storms (adding a small random component to the retry delay so that not all clients retry at exactly the same time).
Best Practices:
- Cache responses when appropriate
- Use pagination efficiently (max page size is of 100 is recommended to reduce number of API requests needed)
- Batch operations during off-peak hours
Error handling
Common HTTP Status Codes:
- 200 OK: Successful request
- 400 Bad Request: Invalid parameters
- 401 Unauthorized: Missing or invalid subscription key
- 404 Not Found: Room/device not found
- 429 Too Many Requests: Rate limit exceeded - see above
- 500 Internal Server Error: Server-side issue