Enrolments
See who is on which course and run; add and withdraw learners.
- Scopes
enrolments:readenrolments:write
Data requests act inside the key’s centre as the person who created the key: each needs the scope and that person’s current EduMark permission. See auth and pagination.
List enrolments
GET/v1/enrolments
Learner enrolments, newest first. Filter by learner, course or run.
Scope enrolments:read
Parameters
| Field | Details |
|---|---|
limit | integerItems per page, 1 to 100.1 to 100Default 25 |
cursor | string, optionalThe next_cursor from the previous page.Up to 512 characters |
learner_id | string, optionalUp to 200 characters |
course_id | string, optionalUp to 200 characters |
run_id | string, optionalUp to 200 characters |
status | enum, optionalOne of active, completed, withdrawn |
updated_since | string, optional |
Headers
| Field | Details |
|---|---|
EduMark-Version | enumAPI version. Defaults to the latest.One of 2026-10-21 |
Responses
| Status | Meaning |
|---|---|
| 200 | Successful Response |
| 400 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 401 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 403 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 404 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 409 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 410 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 413 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 415 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 422 | Validation Error |
| 429 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 503 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
Enrol a learner
POST/v1/enrolments
Adds a learner to a course run (run_id), or enrols them directly on a published course (course_id). Adding someone to a run that has not started answers 202: they are enrolled when it starts.
Scope enrolments:write
Headers
| Field | Details |
|---|---|
Idempotency-Key | stringRequiredA unique key per enrolment. |
EduMark-Version | enumAPI version. Defaults to the latest.One of 2026-10-21 |
Request body
| Field | Details |
|---|---|
learner_id | stringRequiredUp to 200 characters |
course_id | string, optionalEnrol directly on the course's published version.Up to 200 characters |
run_id | string, optionalAdd the learner to this course run (preferred).Up to 200 characters |
starts_at | string (date-time), optionalDirect course enrolments only. |
ends_at | string (date-time), optionalDirect course enrolments only. |
Responses
| Status | Meaning |
|---|---|
| 201 | Successful Response |
| 202 | Added to a run that has not started; enrolled when it starts |
| 400 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 401 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 403 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 404 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 409 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 410 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 413 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 415 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 422 | Validation Error |
| 429 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 503 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
Get an enrolment
GET/v1/enrolments/{enrolment_id}
Scope enrolments:read
Parameters
| Field | Details |
|---|---|
enrolment_id | stringRequired |
Headers
| Field | Details |
|---|---|
EduMark-Version | enumAPI version. Defaults to the latest.One of 2026-10-21 |
Responses
| Status | Meaning |
|---|---|
| 200 | Successful Response |
| 400 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 401 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 403 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 404 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 409 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 410 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 413 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 415 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 422 | Validation Error |
| 429 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 503 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
Withdraw an enrolment
DELETE/v1/enrolments/{enrolment_id}
Withdraws the learner from the course. Their record and work are kept.
Scope enrolments:write
Parameters
| Field | Details |
|---|---|
enrolment_id | stringRequired |
Headers
| Field | Details |
|---|---|
EduMark-Version | enumAPI version. Defaults to the latest.One of 2026-10-21 |
Responses
| Status | Meaning |
|---|---|
| 200 | Successful Response |
| 400 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 401 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 403 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 404 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 409 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 410 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 413 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 415 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 422 | Validation Error |
| 429 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 503 | Request rejected. Inspect error.code and request_id; failed work is not billed. |