Replace lesson content
/products/{product_id}/lessons/{lesson_id}/contentReplaces the lesson body and, when video is included, the lesson video. The inherited field returned by the retrieve operation is accepted and ignored, so retrieved content can be sent back as is.
raw blocks are not accepted, embed blocks must use a recognized provider, and quiz lessons do not accept a video. The request body must not exceed 1 MiB.
The content of a connected lesson belongs to its source lesson and cannot be changed; such requests fail with state_conflict. Replicated lessons are read-only, and requests to change them return replica_readonly.
Send the lesson's current ETag in the If-Match header to avoid overwriting a newer version.
Autonomous mode: the API credential secret, sent as a bearer token. Credential secrets are identified by a fixed prefix.
In: header
Path Parameters
Header Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PUT "https://example.com/products/string/lessons/string/content" \ -H "Content-Type: application/json" \ -d '{}'{ "data": { "body": { "blocks": [ {} ], "inherited": true }, "embed": { "url": "string" }, "format": "standard", "lesson_id": "string", "live": { "url": "string" }, "object": "lesson_content", "revision": "string", "video": { "provider": "string", "url": "string" } }}Retrieve lesson content GET
Returns the lesson body in Editor.js block format, along with its video and embed settings. For connected lessons, the content comes from the source lesson and `inherited` is `true`. The response includes an `ETag` representing the current revision of the lesson. Send this value in the `If-Match` header when changing the lesson to avoid overwriting a newer version.
Duplicate a lesson POST
Starts an asynchronous operation that copies the lesson into the product given by `target_product_id`, optionally into a specific module and under a new name. The copy is always created as a draft. This operation requires an `Idempotency-Key` header. The response returns the operation, and the `Location` header points to it; retrieve the operation to track its progress and obtain the new lesson once it completes. Requires the `lessons.create` permission on the destination product. Replicated lessons cannot be copied, and lessons cannot be copied into replicated products; both cases return `replica_readonly`.