GET /api/v1/programs
Returns the programs of the school the key belongs to, most recent first. Archived programs are included: an archived program stays readable, it does not disappear behind a default filter.
| Role in the organization | This endpoint |
|---|---|
OWNER | Allowed |
ADMIN | Allowed |
MEMBER | Conditional — with the program_director business role scoped to the organization; a program coach sees only the programs they coach |
A platform-wide role grants nothing. A key of another school simply sees that school's programs, never yours.
| Parameter | Type | Required | Description |
|---|---|---|---|
status | string | no | draft, active or archived. Any other value is a 400, never a silently ignored filter |
search | string | no | Matches the program name, up to 100 characters |
| Header | Required | Description |
|---|---|---|
x-api-key | yes | API key created for this school |
X-Correlation-Id | no | Caller correlation id, returned or generated |
curl "$COHORTE_API_BASE_URL/api/v1/programs?status=active" \
-H "x-api-key: $COHORTE_API_KEY"200 OK — the list, possibly empty.400 Bad Request — unknown status.401 Unauthorized — the key is missing, invalid, or no longer attached to a member.403 Forbidden — the bearer is not OWNER, ADMIN, an organization-scoped program_director of this school, nor the coach of any of its programs.| Field | Type | Nullable | Description |
|---|---|---|---|
success | boolean | no | true for a successful request |
data[].id | UUID | no | Program identifier |
data[].name | string | no | Program name |
data[].slug | string | no | URL identity of the program inside the school |
data[].description | string | yes | Free description |
data[].transformation | string | yes | The promise the program delivers |
data[].status | string | no | draft, active or archived |
data[].unlockMode | string | no | immediate, sequential or validation-required |
data[].createdAt | ISO 8601 string | no | Creation time, in UTC |
data[].updatedAt | ISO 8601 string | no | Last change, in UTC |
correlationId | UUID | no | Correlation id for support |
{
"success": true,
"data": [
{
"id": "9f2c0a1e-0000-4000-8000-000000000000",
"name": "Agentic AI Developer",
"slug": "agentic-ai-developer",
"description": "Twelve weeks to ship agents in production.",
"transformation": "Ship one agent to production every week.",
"status": "active",
"unlockMode": "sequential",
"createdAt": "2026-09-01T09:00:00.000Z",
"updatedAt": "2026-09-04T17:12:00.000Z"
}
],
"correlationId": "0f6b1d92-0000-4000-8000-000000000000"
}