Added

  • Delete groups – New endpoint to delete multiple groups, including descendant groups and their contents.
  • List all path statistics – New endpoint to fetch all user statistics for all paths.
  • List all learning needs – New endpoint to fetch all learning needs on your platform.
  • List all projects – New endpoint to fetch all projects on your platform.
  • User webhook events – New webhook events for user lifecycle changes:
    • User invited – Emitted when a user is invited on the platform.
    • User activated – Emitted when a user is first activated on the platform.
    • User deleted– Emitted when a user is deleted from the platform.
    • User reactivated – Emitted when a previously deleted user is reactivated.

Added

  • Create a path – Creates a new path in the platform.
  • Edit a path – Edits specific fields of an existing path. Fields not included in the request payload remain unchanged.
  • Delete a path – Deletes a path given the path ID.
  • Archive or restore a course – Archives or restores a course. Archiving prevents the course from being added to new paths, hides it from search results, and keeps statistics intact.
  • Create an eLearning standard course – Creates a new eLearning standard course (SCORM, AICC, xAPI, etc.) from the provided file.
  • Edit an eLearning standard course – Updates specific fields of an existing eLearning standard course (SCORM, AICC, xAPI, etc.). Fields not included in the request remain unchanged.

Modified

  • Globalization support for external courses – External courses now support translated versions across the following API v2 routes:
    • Upsert external courses – The input payload now supports an optional translations array, allowing import of translated course fields and translation-specific launch URLs.
    • Import integration statistics – The input payload now accepts an optional lang indicating the language in which the learner took the course.
    • Retrieve an external course – The response now includes a translations array containing available translated versions.
    • Archive external courses – Archiving an external course now archives all its translations.
  • List all tags in a course – The source field now usesnative for tags manually added via the platform or API and integration for tags synced from external content providers during content sync.

Added

  • Import integration statistics – Imports up to 10,000 integration activity records per request, including progress, score, result, time spent, and activity timestamps.
  • Delete libraries – Deletes up to 10,000 libraries by externalId.
  • Per-second API rate limiting across all routes, returning 429 Too Many Requests when exceeded. See Rate limiting errors for details.

Modified

  • Upsert libraries – Added an optional status field in the input array to define the library's status (published or draft, default is published).
  • Upsert jobs – Added an optional parentExternalId field in the input array to specify the parent job’s external ID.

Modified

  • Edit a user — Allows unsetting either the email or username, as long as the user retains at least one valid identifier. Attempting to remove both results in a 400 error with code userShouldHaveAtLeastOneValidIdentifier.

  • List all users — Adds support for filtering by:
    • mail: eq, ne, in, nin
    • username: eq, ne, in, nin
    • status: eq, ne

Fixed

  • Remove users from groups – Aligns bulk removal of learner roles from groups with the single-route Remove a user's role: Learners are now removed from public subgroups only, and the cascade stops at the first private subgroup encountered. (Previously, bulk removal for learners affected all subgroups, including private ones.)