---
title: "List course lesson interactions"
method: GET
path: "/course_lesson_interactions"
tags: ["Course lesson interactions"]
---

# List course lesson interactions

`GET /course_lesson_interactions`

Returns a paginated list of lesson interactions, filtered by lesson, course, user, or completion status.

Required permissions:
 - `courses:read`
 - `course_analytics: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.
- `user_id` string, nullable — The unique identifier of the user to filter lesson interactions for.
- `lesson_id` string, nullable — The unique identifier of the lesson to filter interactions for.
- `course_id` string, nullable — The unique identifier of the course to filter interactions for.
- `completed` boolean, nullable — Whether to filter for completed or in-progress lesson interactions.

## Response `200`

A successful response

- object — The connection type for LessonInteraction.
  - `data` CourseLessonInteractionListItem[], required — A list of nodes.
    - `completed` boolean, required — Whether the user has finished this lesson.
    - `created_at` string, date-time, required — The datetime the lesson interaction was created.
    - `id` string, required — The unique identifier for the lesson interaction.
    - `lesson` object, required — The lesson that this progress record belongs to.
      - `chapter` object, required — The parent chapter that contains this lesson.
        - `id` string, required — The unique identifier for the chapter.
      - `id` string, required — The unique identifier for the lesson.
      - `title` string, required — The display name of the lesson shown to students. Maximum 120 characters.
    - `user` object, required — The user whose progress is being tracked.
      - `id` string, required — The unique identifier for the user.
      - `name` string, nullable, required — The user's display name shown on their public profile.
      - `username` string, required — The user's unique username shown on their public profile.
  - `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/866821546d67/schema)
