Introduction
At Docebo, we believe integrating your learning platform with other third party systems is key to the success of your learning programs for increased business performance. The documents that you find in the API & Developer Info section of Docebo's Knowledge Base are intended to provide you with all of the information you may need to get started with Docebo APIs. As processes around APIs are added or modified, Docebo will update this documentation to reflect the most current information.
Current Version
The default version of the currently exposed API is version 1 (v1). However, in the future, there may be specific microservices that already expose later versions (v2, v3,..). The version of the API you intend to use must be specified within the endpoint URL. For example:
GET /learn/v1/location
API References & Documentation
Detailed documentation of all of Docebo’s publicly available APIs is available within your Docebo platform. The documentation is constantly updated with the most up-to-date API version.
The access link to the documentation is as follows:
https://<yoursubdomain.docebosaas.com>/api-browser/
The available microservices are listed in the SERVICES combobox. When you select a new microservice, the documentation for that specific service is automatically loaded. In the TOKEN field, you can directly load a pre-generated OAuth2 access token, or you can proceed to authentication using the tools exposed by the UI of the documentation itself. It is important to note that, in some rare cases, dynamically generated attributes in JSON data cannot be properly rendered in the user interface of the reference documentation. This could prevent you from testing the API directly from the documentation itself. In this case, we suggest you use a dedicated tool (for example, Postman).
API Client Libraries
At this time, Docebo does not provide any client library for Docebo APIs. You need to set up your own package to start coding against Docebo APIs.
API Call Limitations
To maintain optimum performance and to ensure APIs are available to all customers, Docebo’s APIs are limited to 1,000 API calls per hour from each IP address.
Please note that Branch API calls should never be run concurrently as unpredictable results may occur and the structure of the branches may risk being corrupted. The affected API calls are:
POST /manage/v1/user/batch
(only if the call also creates the branches while importing the users)POST /manage/v1/orgchart
DELETE /manage/v1/orgchart/{id}
PUT /manage/v1/orgchart/{branch_id}
POST /manage/v1/orgchart/{id}/move
DELETE /manage/v1/orgchart/batch
POST /manage/v1/orgchart/batch
Please make sure these Branch API calls are run sequentially.
Backward-Compatible Changes
Consider the changes listed below as backward-compatible. We invite you to structure your code to be able to support any such changes to the APIs. This type of change normally happens without any notification to customers. They may include:
- Adding new endpoints
- Adding new optional parameters to existing API endpoints
- Adding new properties to API responses
- Changing the order of properties in API responses
- Any update in API documentation
Non-Backward-Compatible Changes Policy
Docebo makes every effort to keep API changes backward-compatible, but it’s not always possible. In these cases, we inform consumers of the update through our Product Updates page. The effective updates occur after a reasonable timeframe, and the deprecation period duration can vary due to technical and usage considerations. In any case, the time interval is a minimum of one month from the original communication on the Product Updates page to the effective update. The deprecation period rule does not apply in case there are critical security vulnerabilities. In these cases, we apply a fix immediately and communication may appear on the Product Updates page during or shortly after the fix.
API Changelog
Docebo informs customers of new additions or changes to Docebo APIs through our general Product Updates page. Once you see communication related to APIs on this page, it’s always best to then refer to the official API documentation (https://<yoursubdomain.docebosaas.com>/api-browser/) for a complete understanding of the changes that occurred.
API Browser and Additional Fields
The additional fields used in the platform for the management of users, courses, and enrollment are managed by Superadmins as dynamic values, and cannot be documented in the API browser documentation, as they change from platform to platform. For the same reason, it is not possible to test additional fields from the API browser. As an example, if you want to filter courses according to a course additional field value where xx is the additional field ID (such as field_1, field_2, etc), the string to use would be something like:
https://yourdomain.docebosaas.com/learn/v1/enrollments?field_6=3
The ID to use in your query instead of xx will either be an integer (for example, for dropdown additional fields), a string (for a text additional field), an array, or a date (for date additional field). Here are some examples:
- date:
-
'field_12': {'from': '2018-06-26','to': '2018-06-30'},
- textfield:
-
'field_6': 'abc'
OR
'field_6': ['abc', 'def'], dropdown: 'field_8': 3
- iframe additional fields:
- Extend
field_xx
andfield_xx_yy
whereyy
is the field from the JSON configuration and use a this syntax:'$^speakers^speaker'
. The value will either be a string (for text additional field) or an array or a date (for date additional field). Examples:- date:
-
'field_12$^datefield': {'from': '2018-06-26','to': '2018-06-30'},
- textfield:
-
'field6$^textfield': 'abc'
OR
'field6$^textfield': ['abc', 'def']