A CourseLesson is an individual learning unit within a Course. Lessons are the building blocks that customers complete to work through a course’s content. Each lesson belongs to a Course and optionally to a CourseSection that groups related lessons together.Lessons have two key behavioural settings:UnlockType — controls when a lesson becomes available to enrolled members:
Value
Meaning
Immediate
Available as soon as the member enrols
Sequential
Unlocked only after the previous lesson is completed
Timed
Unlocked after a number of days specified by UnlockAfterDays
CompletionType — defines what action marks the lesson as done:
Value
Meaning
None
No completion tracking
Visited
Marked complete when the member opens the lesson
Button
Member must click a completion button
Video
Member must finish watching the embedded video (must be hosted on YouTube)
This endpoint requires OAuth2 authentication. Include a valid bearer token in the Authorization header.
The authenticated user must be a full unrestricted administrator or have the CourseLesson-List role.
Filter by when the lesson becomes available: Immediate (1), after the previous lesson is done — Sequential (2), or after a set number of days — Timed (3).
Filter by how completion is tracked: None (1), Visited (2), completion Button (3), or Video watched (4). Video completion requires the lesson to embed a YouTube-hosted video..
The list of CourseLesson records matching the query. See the Get one CourseLesson endpoint for the full list of properties returned for each record.
Partial records — The listing endpoint returns a summary representation of each CourseLesson. The following fields are not included in the Records[] response: LessonContents, UnlockType, CompletionType.To get all fields, fetch the full record using the Get one CourseLesson endpoint.Important for updates: When updating a record via PUT, always retrieve the full record with a GET request first, apply your changes to that complete data, and then send the updated record. Do not use data from a listing response as the base for a PUT request, as missing fields may be unintentionally cleared.