Deprecated and changed API calls

Prev Next

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. This article provides information on API calls that have been deprecated or have had features changed or removed since January 2023. As processes around APIs are added or modified, Docebo will update this documentation to reflect the most current information.

Please note:

This article does not include API calls that have been introduced or released.

List of deprecated and changed API calls

2026

January 2026

Removed

The following no-longer-used API endpoints relating to webinars have been removed:

  • GET /learn/v1/courses/session/{id_session}/date/{yyyy-mm-dd}

  • GET /learn/v1/courses/{course_id}/webinar/sessions/{session_id}

  • PUT /learn/v1/webinar/attendance/batch

  • GET /learn/v1/webconference/getWebconferenceData

  • POST /learn/v1/webinars/session/batch

  • GET /learn/v1/webinar/{id_session}/{date_day}/recording_status

  • GET /learn/v1/webinars/importer_fields

  • POST /learn/v1/webinar/{id_session}/{date_day}/recording

  • DELETE /learn/v1/webinar/{id_session}/{date_day}/recording

  • GET /course/v1/courses/webinarmigration/mapping/{course_id}

Changed

In the following endpoint, the email attribute has been removed from the objects in the data.items array of the response payload.

  • GET /share/v1/channels/{id}/users


The migrated_webinar_session_id response parameter has been removed from the following APIs and the related webhooks:

  • GET /course/v1/sessions/{session_id}

  • GET /course/v1/courses/{course_id}/sessions

  • GET /learn/v1/courses/{id}/sessions

  • GET /learn/v1/courses/{id}

2025

November 2025

Removed

  • PUT /learn/v1/sub_record/{record_id}/renew

October 2025

Removed

  • GET /ecommerce/v1/ecommerce/settings

  • POST /ecommerce/v1/ecommerce/settings

  • PUT /ecommerce/v1/ecommerce/settings/code

September 2025

Removed

  • GET /loki/share/v1/assets/{asset_id}

  • GET /loki/share/v1/playlists/{playlist_id}/search

  • PUT /ecommerce/v1/transaction/batch

July 2025

Removed

With the transition to the new notification service, the following endpoints have been removed:

  • GET /notifications/v1/notification/notifications

  • GET /notifications/v1/notification/list

  • PATCH /notifications/v1/notification/read

  • GET /notifications/v1/notifications_log

  • PUT /manage/v1/enrollment_rules/{enrollment_rule_id}/notifications

  • DELETE /manage/v1/enrollment_rules/{enrollment_rule_id}/notifications

  • GET /manage/v1/enrollment_rules/{enrollment_rule_id}/notifications

Changed

For the following endpoints, the notification_ids property has been changed to an array of strings :

  • GET /manage/v1/enrollment_rules/{enrollment_rule_id}

  • GET /manage/v1/enrollment_rules

  • POST /learn/v1/enrollments

February 2025

Changed

  • GET /manage/v1/user/{user_id}

    • The returned Country value now returns the country ID regardless of whether the user referenced by {user ID} is in pending users, or already approved. (Previously the country name was returned for pending users, and the country ID only for confirmed users.)

    • The provisioned_user_fields array in the response now returns the list of provisioned fields as a key : value set, where key is the platform field name (string) and value is always true (Boolean).

2024

December 2024

Removed

  • POST /learn/v1/lp/compact_list

  • GET /learn/v1/course/compact_list

  • PUT /manage/v1/cookie_policy/policies/{id}

  • GET /manage/v1/cookie_policy/policies/{id}

  • PUT /manage/v1/cookie_policy/{id}

  • GET /manage/v1/cookie_policy/{id}

Changed

The values for the following endpoints that can be passed to set a Yes/No user additional field are now:

For Yes:

  • 1

  • “1“

  • true

  • “true“

  • "yes"

  • "on"

For No:

  • 2

  • “2“

  • false

  • “false“

  • "no"

  • "off"

For None:

  • 0

  • “0”

  • null

  • “”

  • All other values not specified for YES or NO

This implies some breaking changes, for example if with POST /manage/v1/user/batch you previously relied upon 0, "0", null, or “” (empty string) to set NO.

Changed endpoints:

  • POST /manage/v1/user/

  • POST /manage/v1/user/batch

  • PUT /manage/v1/user/{id}

  • PUT /manage/v1/user/mass_edit

September 2024

Changed

For the values of the following endpoints, it is now possible to set a custom enrollment date for learners in learning plans thanks to the optional parameter enrolment_at and to propagate the date to the courses composing the learning plans using the propagate_at parameter. The new parameters are tracked by the Audit trail (opens in a new tab). Affected endpoints:

  • PATCH /learningplan/v1/learningplans/{learning_plan_id}/enrollments/{user_id}

  • POST /learningplan/v1/learningplans/{learning_plan_id}/enrollments/bulk

  • PATCH /learningplan/v1/learningplans/{learning_plan_id}/enrollments/bulk


For the following endpoints, the endpoint now returns a 400 error in the following cases:

  1. When normal users attempt to enroll other users (self-enrollment only is allowed).

  2. When managers attempt to enroll users who are different from themselves, users they do not manage, or users with invalid IDs.

Affected endpoints:

  • GET /learn/v1/catalog_content/internal/{catalog_id}

  • GET /learn/v1/catalog_content/internal

  • GET /learn/v1/catalog_content/internal/general


For the following endpoint, the user_is_not_enrolled parameter must have a boolean value and no longer accepts arrays:

  • POST /learn/v1/enrollments

August 2024

Changes

For the following endpoints, the last_edit_by field has been removed from the response, for security reasons:

  • GET /pages/v1/pages

  • GET /pages/v1/pages/{id}


For the following endpoints, the response body now includes the UUID parameter:

  • POST /manage/v1/user/batch

  • PUT /manage/v1/user/{id}

July 2024

Removed

GET /ecommerce/v1/transaction/{id}/cancel

June 2024

Removed

PUT /learn/v1/courses/{id}

April 2024

Removed

GET /learn/v1/catalog

February 2024

Changed

GET /manage/v1/user/{user_id}

  • The response no longer includes a country parameter among the user fields. The country can still be obtained by setting it up as an additional field.


GET /manage/v1/user/search

  • The country names set as user additional fields returned are now localized according to the language of the user using the API call.


GET /manage/v1/user

  • The country names set as user additional fields returned are now localized according to the language of the user using the API call.

January 2024

Removed

  • GET /manage/v1/group/{id_group}

  • PUT /manage/v1/group/{id}

  • DELETE /manage/v1/group/{id_group}/members/{id_user}

  • GET /manage/v1/group/{id_group}/members

  • GET /manage/v1/group

  • GET /manage/v1/group/importer_fields

  • DELETE /manage/v1/group/{id}

  • POST /manage/v1/group

  • POST /manage/v1/group/members/batch

  • DELETE /manage/v1/group/members/batch

  • POST /manage/v1/group/batch

  • POST /manage/v1/group/{id_group}/members

  • GET /manage/v1/group/

  • GET /manage/v1/group/{id_group}/members/all


  • POST /audiences/v1/audience/recalculator/batch
    Removed for security reasons

Changed

GET /ecommerce/v1/transaction
The date_from and date_to input parameters now only accept dates with the following format: UTC YYYY-MM-DD HH:MM:SS


GET /manage/v1/user/{user_id}
The response now includes a new last_update parameter, indicating the date and time when this user was last modified.


GET /manage/v1/multidomain
Access restricted to Superadmin usage only, returned payload has no visibility over the root branch, the returned domain_url value has the trailing lms/ removed


For the following endpoints, the catalogsIds and the mobile parameters are no longer available:

  • GET /learn/v1/catalog_content/internal

  • GET /learn/v1/catalog_content/internal/preview

  • GET /learn/v1/catalog_content/public/preview

  • GET /learn/v1/catalog_content/public

  • GET /learn/v1/catalog_content/internal/calendar

  • GET /learn/v1/catalog_content/public/calendar

2023

December 2023

Changed

GET /learn/v1/courses/{id}/by_category

  • The disable_catalog_filter parameter is no longer available; the returned courses will always be subject to the caller’s visibility. When the ID on an unpublished course is passed, the call will return a 403 error instead of a success message


POST /share/v1/admin/channels/channel_id/duplicate

  • A new boolean parameter called copy_visibility is available to manage the porting of the visibility settings of the source channel for the duplicated channel. If the copy_visibility parameter is set to false, the visibility will be set to “All groups and branches” by default. In addition, the duplicated channel will have the same content and the same experts as the source channel only if the assign_same_content and the assign_same_experts parameters are set to true.

November 2023

Changed

GET /learn/v1/instructor/getInstructorData

  • The values passed for the parameters course_id, user_id and session_id are now strictly validated, accepting only integer values. The status 1003 error message (Cannot find course with the passed ID) is removed


GET /manage/v1/managers/candidates

  • It is no longer possible to use this API call unless the Automatic Notification for Team Members and the Auto Suggestion in Automatic Notification options are selected in the platform’s advanced settings for teams and managers (opens in a new tab). This is a security fix, implemented to ensure greater confidentiality of data.

October 2023

Removed

  • /api/webapp/connect

  • /api/webapp/forgot_password

  • /api/webapp/language

  • /api/webapp/logout

  • /api/webapp/get_app_version

  • /api/webapp/check_version

  • /api/webapp/google_auth

  • /api/webapp/data

  • /api/webapp/get_user_info

  • /api/webapp/course

  • /api/webapp/get_courses_by_lp_id

  • /api/webapp/can_enter_course

  • /api/webapp/get_learning_object

  • /api/webapp/play

  • /api/webapp/skip_walktrough

  • /api/webapp/asset_tags

  • /api/webapp/asset_channels

  • /api/webapp/get_upload

  • /api/webapp/new_upload

  • /api/webapp/update_upload

  • /api/webapp/asset_thumb

  • /api/webapp/delete_asset

  • /api/webapp/get_assets

  • /api/webapp/get_video_urls

  • /api/webapp/track_user_lo_status

  • /api/webapp/lo_download_status

  • /api/webapp/materials_size_data

  • /api/webapp/getOfflineMetadata

  • /api/webapp/trackMaterial

  • /api/webapp/sco_track_sync

  • /api/webapp/get_lo_by_course_id

  • /api/webapp/new_password

Changed

The catalog_ids parameter is now accepted as an alternative to the catalogIds parameter for the following endpoints:

  • GET /learn/v1/catalog_content/internal

  • GET /learn/v1/catalog_content/internal/preview

  • GET /learn/v1/catalog_content/public/preview

  • GET /learn/v1/catalog_content/public

  • GET /learn/v1/catalog_content/internal/calendar

  • GET /learn/v1/catalog_content/public/calendar

September 2023

Changed

GET learn/v1/courses/{course_id}

  • When used for an ILT session including at least one onsite event, the API now returns the value null instead of undefined for the webinar_tool attribute


GET /learn/v1/courses/{course_id}/by_category

  • The status parameter is no longer available and the API response only includes the courses in Published status

August 2023

Changed

GET /learn/v1/external_training

  • The filters parameter has been removed for security reasons


GET /learn/v1/forum/getForumData

  • The current_session_id parameter has been removed

July 2023

Changed

POST /skill/v1/skillgroup

  • The type parameter has been deprecated


PUT /learn/v1/courses/switch_sessions

June 2023

Removed

  • PUT /share/v1/gamification/assigned_badge/{uuid}/social_image

  • POST /learn/v1/lo/tincan

    • Replaced by POST /learn/v1/lo/batch

April 2023

Removed

  • POST /ecommerce/v1/cart/checkout

Changed

POST /course/v1/instructors/add

  • This endpoint now offers the possibility to replace the instructors already assigned thanks to the new replace parameter. The default value for the new parameter is false.


GET /learn/v1/lp/lp_id

  • The response now includes the code parameter indicating the codes of the courses included in the learning plan.

March 2023

Removed

  • GET /course/v1/courses/importer_fields

February 2023

Changed

GET /learn/v1/instructor/getInstructorData

  • The value of the userid property is now returned without the leading slash. This means that “/username” is returned as “username”.

January 2023

Changed

GET /learningplan/v1/learningplans/enrollments

  • If the user's enrollment status is Suspended in all of the courses of the learning plan they enrolled in, the returned enrollment status will be Not Started, In Progress or Completed (depending on the enrollment status) instead of null.


GET /learn/v1/enrollments

  • If the user's enrollment status is Suspended in all of the courses of the learning plan they enrolled in, the returned enrollment status will be Not Started, In Progress or Completed (depending on the enrollment status) instead of null.


GET /report/v1/privacy_policy/users/{id}/version/{version_id}

  • The returned information from the API call, when called with an invalid user or version ID, now returns a 404 Not Found response along with an error message stating which ID is invalid.