GET /v2/courses
List courses
Returns the courses owned by the user identified by X-External-User-Id (or X-User-Id), newest first. Use cursor pagination for full traversal.
Request
Headers
| Header | Required | Notes |
|---|---|---|
X-API-Key | yes | Your test or production key |
X-External-User-Id | yes (or X-User-Id) | Identifies the learner |
Query parameters
limit integer default 20 Max items to return. Range 1–100. |
cursor string Pagination token from the previous response’s next_cursor. Omit on the first call. |
Returns
{
"data": [
{
"id": "8fa640c0-22e6-436b-becd-bf2cfc86741a",
"title": "Photosynthesis: From Light to Life",
"topic": "Photosynthesis basics",
"slug": "photosynthesis-from-light-to-life",
"source_type": "topic",
"status": "completed",
"created_at": "2026-05-19T14:02:11Z",
"chapters": [
{ "order_index": 0, "title": "Sunlight & Chlorophyll" },
{ "order_index": 1, "title": "The Calvin Cycle" }
]
}
],
"pagination": {
"limit": 20,
"has_more": true,
"next_cursor": "eyJ0IjoiMjAyNi0wNS0xOVQxNDowMjoxMVoifQ=="
}
}
The chapters array is included as a lightweight summary (title + order) — fetch GET /v2/courses/{course_id} for full chapter content.
Errors
- 401 — Missing or invalid
X-API-Key. - 404 —
X-External-User-Idis unknown and was not auto-created. (External users are auto-created on write; reads require an existing user.)