---
title: "List course lessons"
method: GET
path: "/course_lessons"
tags: ["Course lessons"]
---

# List course lessons

`GET /course_lessons`

Returns a paginated list of lessons within a course or chapter, ordered by position.

Required permissions:
 - `courses:read`

## Query parameters

- `after` string, nullable — Returns the elements in the list that come after the specified cursor.
- `before` string, nullable — Returns the elements in the list that come before the specified cursor.
- `first` integer, nullable — Returns the first _n_ elements from the list.
- `last` integer, nullable — Returns the last _n_ elements from the list.
- `course_id` string, nullable — The unique identifier of the course to return all lessons across all chapters.
- `chapter_id` string, nullable — The unique identifier of a chapter to return only its lessons.

## Response `200`

A successful response

- object — The connection type for Lesson.
  - `data` CourseLessonListItem[], required — A list of nodes.
    - `content` string, nullable, required — The Markdown content body of the lesson. Null if the lesson has no text content.
    - `created_at` string, date-time, required — The datetime the lesson was created.
    - `days_from_course_start_until_unlock` integer, nullable, required — The number of days after a student starts the course before this lesson becomes accessible. Null if the lesson is available immediately.
    - `embed_id` string, nullable, required — The external video identifier for embedded video lessons, such as a YouTube video ID or Loom share ID. Null if the lesson has no embed.
    - `embed_type` 'youtube' | 'loom', required — The type of embed for a lesson
    - `id` string, required — The unique identifier for the lesson.
    - `lesson_type` 'text' | 'video' | 'pdf' | 'multi' | 'quiz' | 'knowledge_check', required — The available types for a lesson
    - `order` integer, required — The sort position of this lesson within its parent chapter, starting from zero.
    - `thumbnail` object, nullable, required — The thumbnail image displayed on lesson cards and previews. Null if no thumbnail has been uploaded.
      - `url` string, nullable, required — A pre-optimized URL for rendering this attachment on the client. This should be used for displaying attachments in apps.
    - `title` string, required — The display name of the lesson shown to students. Maximum 120 characters.
    - `visibility` 'visible' | 'hidden', required — The available visibilities for a lesson. Determines how / whether a lesson is visible to users.
  - `page_info` PageInfo, required — Information about pagination in a connection.
    - `end_cursor` string, nullable, required — When paginating forwards, the cursor to continue.
    - `has_next_page` boolean, required — When paginating forwards, are there more items?
    - `has_previous_page` boolean, required — When paginating backwards, are there more items?
    - `start_cursor` string, nullable, required — When paginating backwards, the cursor to continue.

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `422` — Verification required
- `429` — Too many requests
- `500` — Internal server error

---

[API](https://skmtc.net/whop/apis/whop-api.md) · [All operations](https://skmtc.net/whop/apis/whop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/whop/whop-api/versions/db0883548bc5/schema)
