GET /api/v1/enrollments
Lists the enrollments of the key's school, most recent first, with the person and the program they belong to. Filters combine.
| Role in the organization | This endpoint |
|---|---|
OWNER | Allowed |
ADMIN | Allowed |
MEMBER | Conditional — only with the program_director business role scoped to the organization |
| Requirement | Rule for this endpoint |
|---|---|
| Business role | program_director scoped to the organization, for a MEMBER |
| Coach | A coach does not read this list: they read their own students through the enrollment sub-routes (timeline, briefing, pause, closure) |
| Resource scope | The key's organization |
| Participation | None |
| Resource state | None |
| Parameter | Type | Required | Description |
|---|---|---|---|
programId | UUID | no | Only this program |
cohortId | UUID | no | Only this cohort |
status | string | no | pending, active, completed, paused, early_exit or cancelled |
search | string | no | Matches first name, last name or email, up to 100 characters |
curl "$COHORTE_API_BASE_URL/api/v1/enrollments?cohortId=$COHORT_ID&status=active" \
-H "x-api-key: $COHORTE_API_KEY"200 OK — the list, possibly empty.400 Bad Request — an identifier that is not a UUID, or an unknown status.401 Unauthorized — missing, unknown or expired key.403 Forbidden — the bearer is not OWNER, ADMIN or an organization-scoped program_director of the school.| Field | Type | Description |
|---|---|---|
data[].id | UUID | Enrollment id |
data[].programId | UUID | Program |
data[].cohortId | UUID | Cohort, or null |
data[].pathId | UUID | Path followed, or null when the program has none |
data[].personId | UUID | Person enrolled |
data[].status | string | Enrollment status |
data[].enrolledAt | string | ISO 8601, the member's Day 0 |
data[].person | object | firstName, lastName, email, hasAccount |
data[].programName | string | Program name |
data[].cohortName | string | Cohort name, or null |
{
"success": true,
"data": [
{
"id": "6a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
"programId": "9f2c4a10-8f7e-4a3b-9c1d-2e5f6a7b8c9d",
"cohortId": "3a1f7c2e-5b6d-4e8f-9a0b-1c2d3e4f5a6b",
"pathId": "7d8e9f0a-1b2c-4d3e-8f4a-5b6c7d8e9f0a",
"personId": "5b6c7d8e-9f0a-4b1c-8d2e-3f4a5b6c7d8e",
"status": "active",
"enrolledAt": "2026-10-05T00:00:00.000Z",
"person": {
"firstName": "Ada",
"lastName": "Lovelace",
"email": "ada@example.com",
"hasAccount": false
},
"programName": "Agentic AI Developer",
"cohortName": "Autumn cohort"
}
],
"correlationId": "c0ffee00-1111-4222-8333-444455556666"
}hasAccount: false means the person has no login yet: inviting them to create one is done from the screens today.organizationId in the query is ignored — the list is always the key's school.pathId is a historical reference captured at enrollment creation. It may be null or identify an older version; it never selects the current program. Use the learner learning context for the effective current steps.