PUT /api/v1/me/lessons/{lessonId}/note
Creates your private note on a lesson the first time, then replaces its whole
body on every later call. To add to an existing note, read it first and send
the merged text. The lesson must be one you can read in Cohorte.
| Role in the organization | This endpoint |
|---|
OWNER | Allowed — writes the key holder's own note only |
ADMIN | Allowed — writes the key holder's own note only |
MEMBER | Allowed — writes the key holder's own note only |
| Requirement | Rule for this endpoint |
|---|
| Business role | None |
| Resource scope | A lesson of the program of one of your enrollments |
| Participation | At least one of your enrollments makes the lesson readable (not suspended, cohort open, step unlocked) |
| Resource state | Published lesson in a visible course |
The school's owners, admins and the coach assigned to your enrollment can read
the note in Cohorte. Nobody else can.
| Parameter | Type | Required | Description |
|---|
lessonId | UUID | yes | A lesson you can read |
| Header | Required | Description |
|---|
x-api-key | yes | Your personal API key for this school |
Idempotency-Key | yes | Stable key for one save intention; the same key returns the first result |
X-Correlation-Id | no | Caller correlation id, returned or generated |
Request body
| Field | Type | Required | Nullable | Description |
|---|
body | string | yes | no | Markdown, trimmed, 1 to 10,000 characters. An empty body is refused: delete the note instead |
curl -X PUT "$COHORTE_API_BASE_URL/api/v1/me/lessons/$LESSON_ID/note" \
-H "x-api-key: $COHORTE_API_KEY" \
-H "Idempotency-Key: note-$(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"body": "## To remember\n\nAsk three questions before the price."}'
201 Created — the note did not exist and was created.
200 OK — the note existed and its body was replaced.
400 Bad Request — missing Idempotency-Key, invalid JSON, empty body or more than 10,000 characters.
401 Unauthorized — missing, unknown or expired key.
404 Not Found — a lesson you cannot read (locked, draft, another program, suspended enrollment), or another school's.
Same fields as Get my lesson note:
lessonId, body, attachments[], createdAt, updatedAt.
{
"success": true,
"data": {
"lessonId": "0f1e2d3c-4b5a-4968-8778-695a4b3c2d1e",
"body": "## To remember\n\nAsk three questions before the price.",
"attachments": [],
"createdAt": "2026-10-07T09:12:00.000Z",
"updatedAt": "2026-10-07T09:12:00.000Z"
},
"correlationId": "c0ffee00-1111-4222-8333-444455556666"
}
- Idempotency: retrying with the same
Idempotency-Key returns the note as
the first call left it, without writing again. Use a new key for a new edit.
- Files cannot be attached through the API; attach them in Cohorte.
- No notification or email is sent.