---
title: "CourseLessonInteraction Completed"
method: POST
path: "course_lesson_interaction.completed"
tags: ["Course lesson interactions"]
---

# CourseLessonInteraction Completed

`POST course_lesson_interaction.completed` (webhook)

Sent when a course lesson interaction is completed

Required permissions:
 - `courses:read`
 - `course_analytics:read`
 - `webhook_receive:courses`

## Headers

- `webhook-id` string, required — A unique identifier for this webhook request
- `webhook-signature` string, required — The signature of the webhook request with the webhook version prepended
- `webhook-timestamp` string, required — The timestamp in seconds since the Unix epoch that the webhook was sent at on the server

## Payload

- object
  - `api_version` 'v1', required — The API version for this webhook
  - `api_version_date` string, nullable, required — The dated API version (Api-Version-Date) the payload is serialized to
  - `company_id` string, nullable — The account ID that this webhook event is associated with
  - `data` CourseLessonInteraction, required — A record of a user's progress on a specific lesson, tracking whether they have completed it.
    - `completed` boolean, required — Whether the user has finished this lesson.
    - `course` object, required — The course that contains the tracked lesson.
      - `experience` object, required — The parent experience that this course belongs to.
        - `id` string, required — The unique identifier for the experience.
      - `id` string, required — The unique identifier for the course.
      - `title` string, nullable, required — The display name of the course shown to students. Null if no title has been set.
    - `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.
  - `id` string, required — A unique ID for every single webhook request
  - `timestamp` string, date-time, required — The timestamp in ISO 8601 format that the webhook was sent at on the server
  - `type` 'course_lesson_interaction.completed', required — The webhook event type

## Acknowledgement `200`

Return a 200 status to indicate that the data was received successfully

---

[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)
