---
title: "POST /lessons/{lessonID}"
method: POST
path: "/lessons/{lessonID}"
tags: ["courses"]
---

# POST /lessons/{lessonID}

`POST /lessons/{lessonID}`

Update a lesson

## Path parameters

- `lessonID` string, uuid, required

## Request body

- object
  - `title` string — The title of the lesson
  - `content` string — The content of the lesson (in Markdown)
  - `hero` object, nullable
    - `type` 'VIDEO'
    - `content` union
      - object
        - `type` 'NATIVE_VIDEO'
        - `videoID` string, uuid — The id of the Heartbeat video that should be displayed in the hero section
      - object
        - `type` 'EXTERNAL_VIDEO_EMBED'
        - `url` string, uri — The URL of an external video to display in the hero section. Youtube, Vimeo & Loom links are supported.
  - `publishStatus` union
    - object
      - `type` 'DRAFT'
    - object
      - `type` 'PUBLISH'
    - object
      - `type` 'DRIP'
      - `numDays` integer — The lesson will become available to users this many days after they start the course
    - object
      - `type` 'SCHEDULE_PUBLISH'
      - `date` string, date-time
    - object
      - `type` 'SET_AS_FREE'
  - `communityEmbedCards` object[]
    - `title` string, required
    - `description` string, required
    - `content` union, required
      - object
        - `type` 'CHANNEL', required
        - `channelID` string, uuid, required — Unique identifier for the channel.
      - object
        - `type` 'POST', required
        - `postID` string, uuid, required — Unique identifier for the post.
      - object
        - `type` 'EVENT', required
        - `eventID` string, uuid, required — Unique identifier for the event.
      - object
        - `type` 'DOCUMENT', required
        - `wikiPostID` string, uuid, required — Unique identifier for the wiki post.
      - object
        - `type` 'USERS', required
        - `userIDs` string[], required — List of unique identifiers for users.
        - `promptDirectMessage` boolean, required — Whether course members should be given the option to DM these users
      - object
        - `type` 'MATCHUPS', required

## Response `200`

Successful response

- Lesson
  - `id` string, uuid — Unique identifier for the lesson
  - `createdAt` string, date-time — Timestamp of when the lesson was created.
  - `createdBy` string, uuid — User ID of the person who created the lesson.
  - `title` string — Title of the lesson.
  - `content` string — Content of the lesson.
  - `communityEmbedCards` CommunityEmbedCard[]
    - `id` string, uuid — Unique identifier for the community embed card.
    - `title` string — Title of the community embed card.
    - `description` string — Description of the community embed card.
    - `content` union
      - object
        - `type` 'CHANNEL', required
        - `channelID` string, uuid, required — Unique identifier for the channel.
      - object
        - `type` 'POST', required
        - `postID` string, uuid, required — Unique identifier for the post.
      - object
        - `type` 'EVENT', required
        - `eventID` string, uuid, required — Unique identifier for the event.
      - object
        - `type` 'DOCUMENT', required
        - `wikiPostID` string, uuid, required — Unique identifier for the wiki post.
      - object
        - `type` 'USERS', required
        - `userIDs` string[], required — List of unique identifiers for users.
        - `promptDirectMessage` boolean, required — Whether course members should be given the option to DM these users
      - object
        - `type` 'MATCHUPS', required

## Other responses

- `400` — Invalid request body
- `401` — API Key is missing or invalid

---

[API](https://skmtc.dev/heartbeat/apis/heartbeat-api.md) · [All operations](https://skmtc.dev/heartbeat/apis/heartbeat-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/heartbeat/heartbeat-api/revisions/6c3cf537d508/schema)
