Developers

Reorder exam questions

PUT/products/{product_id}/exams/{exam_id}/questions/order

Sets the order in which the exam questions are presented.

The request must contain exactly the set of questions currently in the exam, excluding questions in the trash. If the supplied set does not match, the request is rejected with order_set_mismatch and the existing order remains unchanged.

To avoid overwriting a newer version, send the exam ETag from the exam retrieve operation in the If-Match header.

Discover the required set through GET /products/{product_id}/exams/{exam_id}/questions, following every cursor page without narrowing filters such as status, kind or search. A fully paginated list is still limited by credential visibility; verify that the credential can read the entire required set before reordering. On order_set_mismatch, re-read the set and check scope and visibility instead of blindly retrying stale IDs.

The response returns the complete reordered collection in a single response, including collections larger than 200 items. This reorder response is not paginated.

AuthorizationBearer <token>

Credential: the API credential secret, sent as a bearer token. Credential secrets are identified by a fixed prefix.

In: header

Path Parameters

product_id*string

Public ID of the product, prefixed with prd_.

exam_id*string

Public ID of the exam, prefixed with exm_.

Header Parameters

Idempotency-Key?string

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.

If-Match?string

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.

X-Client-Request-Id?string

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.

Lengthlength <= 64

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

application/json

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/products/string/exams/string/questions/order" \  -H "Content-Type: application/json" \  -d '{    "ids": [      "string"    ]  }'
{  "data": [    {      "alternatives": [        {          "correct": true,          "id": "string",          "text": "string"        }      ],      "created_at": "2019-08-24T14:15:22Z",      "deleted": true,      "exam_id": "string",      "format": "multiple_choice",      "id": "string",      "image": "string",      "object": "exam_question",      "position": 0,      "revision": "string",      "text": "string",      "updated_at": "2019-08-24T14:15:22Z"    }  ],  "page": {    "limit": 1,    "next_cursor": "string",    "prev_cursor": "string"  }}