Add or update an attachment
/products/{product_id}/lessons/{lesson_id}/attachments/{file_id}Attaches a file to the lesson body, or updates the title and kind of an existing attachment for the same file. The operation is idempotent per file ID: it returns 201 when the attachment is added and 200 when an existing attachment is updated.
Send the lesson's current ETag in the If-Match header to avoid overwriting a newer version. Replicated lessons are read-only, and requests to change them return replica_readonly.
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
Client-generated key that makes the request safe to retry. Must be 1 to 128 characters from [A-Za-z0-9._:-]. Optional on this operation; when sent, a malformed key returns idempotency_key_invalid, and repeating the request with the same key and the same body returns the stored result with Idempotent-Replayed: true.
Expected revision of the resource, in the same format as the ETag header (W/"<type>:<id>:<revision>"). If the resource has changed since that revision, the request fails with 412 and the revision_mismatch error code. When omitted, the update is applied to the current revision.
Optional client-generated identifier of the request, up to 64 characters from [A-Za-z0-9._-]. Echoed back in the response and recorded in the request log; it never replaces the server-generated X-Request-Id.
length <= 64Request 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
application/json
curl -X PUT "https://example.com/products/string/lessons/string/attachments/string" \ -H "Content-Type: application/json" \ -d '{}'{ "data": { "file_id": "string", "kind": "file", "object": "lesson_attachment", "position": 0, "title": "string", "url": "string" }}List lesson attachments GET
Returns the files and images attached to the lesson. Attachments are the file and image blocks of the lesson body, so they also appear in the lesson content.
Remove an attachment DELETE
Removes the attachment from the lesson body. The underlying file is not deleted. Attachments without a `file_id` cannot be removed with this operation; remove them by replacing the lesson content instead. Replicated lessons are read-only, and requests to change them return `replica_readonly`.