Search Documentation
Search for a documentation page...
Courses API
REST API endpoints for reading courses, their lessons and files.
A course is sold through one or more products. Buying any of them in a paid order gives the shopper access, which they use in the store account under My courses. These endpoints are read-only; writing courses through the API is not available yet.
All endpoints require the Courses module to be enabled for the store (404 when it is off) and the courses:read scope. Storefront keys (storefront:read) cannot read courses, because lessons carry unlisted YouTube IDs.
List Courses
Returns every course of the store, drafts included, ordered by title.
Request
Response
| Field | Type | Description |
|---|---|---|
status | string | draft or published |
lessonCount | number | Number of lessons |
products | array | Products that grant access ({ id, name }) |
Get Course
Returns one course by UUID or slug, with its lessons in order and its files, whatever its status.
Request
Response
| Field | Type | Description |
|---|---|---|
content | object | TipTap JSON document |
lessons[].video | object | null | { provider: "youtube", videoId } or null |
files[] | object | { id, label, filename, mimeType, sizeBytes } |
Files never include their storage address. Students download them from the store account, which checks their access.
Errors
| Status | Description |
|---|---|
404 | Course not found, or the Courses module is not enabled |