Update a module
/products/{product_id}/modules/{module_id}Updates a module. Only the fields included in the request are changed.
Changing status requires the modules.publish permission. Setting target_product_id moves the module to another product and requires the modules.update permission on that product; if the target product is not accessible with the current credentials, the API returns 404 Not Found. Setting deleted to false restores a module from the trash.
position is 1-based among the module's siblings, in the destination when the module is moved; a value greater than the number of siblings places the module at the end. A module moved to another group or product without position is placed at the end.
Replicated modules accept only status. Requests that include any other field return the replica_readonly error code.
Send the ETag from the retrieve operation 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
Public ID of the product, prefixed with prd_.
Public ID of the module, prefixed with mod_.
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. * matches the current revision. Any other value fails with 400 and the if_match_invalid 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
application/json
application/json
application/json
curl -X PATCH "https://example.com/products/string/modules/string" \ -H "Content-Type: application/json" \ -d '{}'{ "data": { "created_at": "2019-08-24T14:15:22Z", "deleted": true, "id": "string", "image": "string", "kind": "group", "lessons_count": 0, "name": "string", "object": "module", "parent_id": "string", "position": 0, "product_id": "string", "revision": "string", "settings": { "type": "module" }, "status": "published", "updated_at": "2019-08-24T14:15:22Z" }}Retrieve a module GET
Retrieves a module by its public ID, including its typed `settings`. The response includes an `ETag` representing the current revision. Send this value in the `If-Match` header when updating the module or reordering its contents to avoid overwriting a newer version.
Delete a module DELETE
Moves the module to the trash, together with its submodules and lessons. Copies of the module in replicated accounts are also moved to the trash. Restoring the module through the update operation does not restore those copies. Replicated modules cannot be deleted. Attempts to delete them return the `replica_readonly` error code.