Update an exam
/products/{product_id}/exams/{exam_id}Updates an exam. settings is applied partially: omitted keys keep their current values, and null in a numeric setting removes the limit.
To avoid overwriting a newer version, send the ETag from the retrieve operation in the If-Match header.
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
curl -X PATCH "https://example.com/products/string/exams/string" \ -H "Content-Type: application/json" \ -d '{}'{ "data": { "attempts_count": 0, "created_at": "2019-08-24T14:15:22Z", "deleted": true, "description": "string", "id": "string", "lesson_ids": [ "string" ], "object": "exam", "product_id": "string", "questions_count": 0, "revision": "string", "settings": { "duration_minutes": 0, "min_grade": 0, "questions_count": 0, "retake": { "allowed": true, "only_if_failed": true, "wait_minutes": 0 }, "show_answer_key": { "approved": true, "failed": true }, "show_answers": true, "show_grade": true, "shuffle_alternatives": true, "shuffle_questions": true }, "title": "string", "updated_at": "2019-08-24T14:15:22Z" }}Retrieve an exam GET
Retrieves an exam by its public ID. The response never includes the correct alternatives; use the answer key operation, which requires the `exams.read_answer_key` permission. The response includes an `ETag` representing the current revision. Send this value in the `If-Match` header when modifying the exam to avoid overwriting a newer version.
Delete an exam DELETE
Moves the exam and its questions to the trash. Recorded attempts do not prevent deletion. An exam that is displayed by a lesson, required to unlock a certificate, or required by a release rule cannot be deleted. In that case the API returns `state_conflict`, and `details[].reason` indicates the dependency: `lesson`, `certificate`, or `release_rule`.