---
title: "List Lesson Completions"
method: GET
path: "/courses/{course_id}/lesson_completions"
tags: ["Courses::LessonCompletion"]
---

# List Lesson Completions

`GET /courses/{course_id}/lesson_completions`

## Request

- Base URL: `https://myworkspace.myclickfunnels.com/api/v2`
- URL: `https://myworkspace.myclickfunnels.com/api/v2/courses/{course_id}/lesson_completions`
- Auth: one of:
  - HTTP bearer
  - OAuth 2
    - Authorization code: `https://accounts.myclickfunnels.com/oauth/authorize`
    - Token URL: `https://accounts.myclickfunnels.com/oauth/token`
- TypeScript: <https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/docs/courses/:course_id/lesson_completions/get.ts> (a function with typed inputs; its response is checked against the schema)

List of enrollment-completion records showing which lessons have been completed by which enrollments. You can filter on one or more `enrollment_id` or `lesson_id` records (see filter params).

## Path parameters

- `course_id` string, required

## Query parameters

- `after` string
- `per_page` integer
- `sort_order` 'asc' | 'desc'
- `sort_property` 'id' | 'updated_at'
- `filter` object
  - `enrollment_id` string: A comma-separated list of enrollement IDs to filter by.
  - `lesson_id` string: A comma-separated list of lesson IDs to filter by.

## Response `200`

OK

- CoursesLessonCompletionAttributes[]
  - `id` integer: ID
  - `public_id` string, nullable: Public ID
  - `enrollment_id` integer: The ID of the `Courses::Enrollment` record that completed the lesson
  - `lesson_id` integer: The ID of the `Courses::Lesson` record that was completed
  - `completed_at` string, date-time: The time when the record was completed; It is set automatically to the current time when the record is created

## Other responses

- `401`: Unauthorized
- `404`: Not Found
- `422`: Unprocessable Entity - `per_page` must be a positive integer.

## Changes

- **2026-11-03** `511d88b30aea`: 5 info
  - added the new optional `query` request parameter `per_page`
  - for the `path` request parameter `course_id`, the type was generalized from `integer` to `string`
  - added the non-success response with the status `422`
  - added the optional property `hint` to the response with the `401` status
  - …1 more

[Operation history](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/changes/courses/:course_id/lesson_completions/get.md)

---

[API](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api.md) - [All operations](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/llms.txt) - [OpenAPI document](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/revisions/511d88b30aea?raw)
