Courses
4 endpointsCreate, read, update, and delete courses. All operations are scoped to your organization.
/api/coursesCreate a course
Creates a new course in draft status. Requires member role or higher (session) or the write:courses scope (API key).
/api/courses/{courseId}Update a course
Partially updates a course. Requires member role or higher. Session-only; API keys are not accepted.
/api/courses/{courseId}Delete a course
Permanently deletes a course and all its content. Session-only; API keys are not accepted.
/api/courses/{courseId}/certificateGet course completion certificate
Returns certificate data for the authenticated learner's completion of a course. 404 if the learner has not completed the course. Session-only; API keys are not accepted.
Enrollments
3 endpointsManage learner enrollments. Track progress and completion.
/api/courses/{courseId}/enrollmentsList enrollments for a course
Returns enrollments (individual and group) for a course in your organization, with progress. Requires the read:users scope when using an API key.
/api/courses/{courseId}/enrollmentsEnroll learners or groups
Enrolls users and/or learner groups in a course. Requires member role or higher (session) or the write:completions scope (API key).
/api/courses/{courseId}/enrollments/{enrollmentId}Remove enrollment
Removes a learner or group from a course. Requires admin role. Session-only; API keys are not accepted.
Analytics
2 endpointsTrack learner events and query your analytics data programmatically.
/api/analytics/eventsQuery analytics
Returns an analytics summary for the organization (totals, completion rate, top courses, drop-off), or raw recent events with raw=true. Requires the read:analytics scope when using an API key.
/api/analytics/eventsTrack analytics event
Records a learner analytics event such as lesson_started, lesson_completed, or quiz_passed. Requires the write:completions scope when using an API key. Anonymous requests (e.g. published SCORM packages) are accepted and recorded with a null user.
Webhooks
2 endpointsRegister webhook endpoints to receive real-time event notifications.
/api/webhooksList webhooks
Returns all configured webhook endpoints for the organization. Requires admin role (session) or a full-access API key (the * scope).
/api/webhooksRegister a webhook
Registers a URL to receive webhook events (e.g. course.published, enrollment.completed, lesson.completed). A signing secret is generated server-side and returned once in the response. Requires admin role (session) or a full-access API key (the * scope).