Overview
Manage course metadata, access rules, publication state, and ordered curriculum through the API.
A course combines a product listing, one variant, and a curriculum. Use the course API for sections, lessons, and access settings; use the products API to create or delete the course product itself.
Use an API key with the listing ability or OAuth with products:read for reads and products:write for mutations. Send X-STORE; current store permissions also apply. Courses and their sections, lessons, questions, answers, attachments, and videos must be in the selected store.
Endpoints
- List courses
- Search courses
- Retrieve a course
- Update a course
- Manage course sections
- Reorder course sections
- Manage course lessons
- Reorder course lessons
Curriculum ordering
To reorder sections or lessons, send the complete list of current IDs, each exactly once. A lesson entry also names its destination section. The move happens as one change, so a lesson does not end up missing or listed twice.
Draft and publication behavior
is_published controls whether an individual lesson is available to enrolled customers. Course visibility controls the listing. Setting visibility to PUBLIC requires a ready promotional video and at least one published lesson; otherwise the API returns 422 and preserves the draft.
Optimistic writes
Someone may edit a course while your app is still holding an older copy. Send the updated_at you last read as expected_updated_at to catch this. If the resource changed, the API returns 422 without applying your edit. Retrieve it again, review the newer content, and then decide whether to retry.
Compatibility boundaries
The existing public course preview endpoint is unchanged. Preview sources continue to use ready promotional videos and video lessons marked is_preview; curriculum administration does not expose signed playback tokens.
Course titles, descriptions, lessons, quiz prompts, and assignment instructions remain in the language you write them; they are not interface translation keys.