API ReferenceCompletions

Completions

The Completions API returns the audit-grade record of which learners have completed which courses, and when. It includes historical completions imported via the EmbayLMS Switcher Program (source: "import"), so it is a single source of truth for compliance reporting and downstream BI.

A completion is an enrollment whose completed_at is set.


The Completion Object

{
  "id": "c1d2e3f4-5678-90ab-cdef-1234567890ab",
  "user_id": "a3f2c1d0-4e5b-6789-abcd-ef0123456789",
  "course_id": "b4c3d2e1-5f6a-7890-bcde-f01234567890",
  "status": "completed",
  "completed_at": "2026-05-30T16:40:00Z",
  "source": "native"
}
FieldTypeNotes
iduuidThe enrollment id
user_iduuidThe learner
course_iduuidThe completed course
statusstringEnrollment status (typically completed)
completed_atISO 8601When the course was completed — original date preserved for imports
sourcestringnative or import (Switcher historical data)

List completions

GET /api/v1/completions

Returns completed enrollments (most recent first), paginated.

Query parameters

ParameterTypeDefaultNotes
pageinteger1Page number
per_pageinteger50Page size (max 200)
user_iduuidFilter to a single learner

Authentication

API key with the read scope, as a Bearer token — see Authentication. Rate-limited and metered per Rate Limits.

Example

curl https://acme.embaylms.com/api/v1/completions?per_page=100 \
  -H "Authorization: Bearer ems_live_..."

Response

{
  "data": [ /* Completion objects */ ],
  "meta": { "page": 1, "per_page": 100, "total": 1284 },
  "error": null
}

See Errors for the error envelope and status codes.