TakerQuestion
A request or response body; the type column links to the schemas it refers to.
TakerQuestion
| Field | Type | Required | Description |
|---|---|---|---|
| question_id | string (uuid) | yes | — |
| position | integer | yes | — |
| kind | string | yes | true_false: answered true or false. multiple_choice: exactly one correct option. multi_select: several options may be correct, scored all-or-nothing. ordering: the options are items whose authored order is the answer. short_answer: the options are the accepted spellings of a typed answer. numeric: a number within a tolerance of correct_number. matching: each option is a label/match_label pair the taker reunites. fill_in_blank: the prompt's runs of three or more underscores are blanks, and the options are the accepted answers, each naming its blank_index. long_answer: a free-text essay answer with no accepted spellings, always graded by hand. drawing: the taker draws on a canvas, over drawing_starting_image when one is attached, always graded by hand. one of "true_false" | "multiple_choice" | "multi_select" | "ordering" | "short_answer" | "numeric" | "matching" | "fill_in_blank" | "long_answer" | "drawing" |
| prompt | string | yes | — |
| prompt_format | string | yes | plaintext: the prompt renders verbatim. markdown: the same prompt text renders as Markdown. pdf: an uploaded PDF carries the question; the prompt text is the instruction shown above it. one of "plaintext" | "markdown" | "pdf" |
| prompt_pdf_file_name | string | null | yes | Original name of the attached PDF, for pdf prompts; null otherwise. Fetch the file through the attempt's question pdf endpoint. |
| prompt_pdf_prefer_inline_display | boolean | yes | Whether the attached PDF is drawn beside the question or offered as a download only (`00051`). A one-page scenario belongs on screen; a long reference the taker works from on paper only buries the answers beneath it. Ignored on prompts with no PDF. |
| points | integer | yes | What this question is worth on this paper, as snapshotted when it was built. minimum 1 · maximum 1000 |
| manually_graded | boolean | yes | Whether a marker will award this question's points by hand — the attempt's score waits for them. |
| rubric_markdown | string | null | yes | The marking scheme, when its author chose to show it to takers; null otherwise. at most 50000 characters |
| options | array of TakerQuestionOption | yes | Choices, ordering items or the left column of a matching question, in the order this attempt presents them — correctness stripped. Empty for true_false, short_answer, numeric, fill_in_blank, long_answer and drawing questions. |
| match_options | array of TakerQuestionOption | yes | The right column of a matching question in its own shuffled order, each entry identified by the option whose match_label it is. Empty for every other kind. |
| drawing_starting_image | string | null | yes | drawing questions: the image the taker draws over, as a data URL; null for a blank canvas, and on every other kind. at most 3000000 characters · matches ^data:image\/(png|jpeg|webp|gif);base64,[A-Za-z0-9+/]+=*$ |
| response_boolean | boolean | null | yes | — |
| selected_option_ids | array of string (uuid) | null | yes | Chosen options of a choice question, or every item of an ordering question in the taker's arrangement. |
| response_text | string | null | yes | A short_answer or long_answer response. |
| response_number | number | null | yes | A numeric response. |
| response_matches | array of ResponseMatch | null | yes | The pairs made so far on a matching question. |
| response_blanks | array of string | null | yes | A fill_in_blank response: one string per blank in prompt order, empty where the taker left a blank unfilled. |
| response_drawing | string | null | yes | A drawing response: the taker's canvas as one image data URL, the starting image beneath their strokes. at most 4000000 characters · matches ^data:image\/(png|webp|jpeg);base64,[A-Za-z0-9+/]+=*$ |
| answered_at | string (date-time) | null | yes | — |
{
"question_id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
"position": 0,
"kind": "true_false",
"prompt": "string",
"prompt_format": "plaintext",
"prompt_pdf_file_name": "string",
"prompt_pdf_prefer_inline_display": true,
"points": 1,
"manually_graded": true,
"rubric_markdown": "- 2 points: names both hazards\n- 1 point: names one\n- 0: neither",
"options": [
{
"id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
"label": "string"
}
],
"match_options": [
{
"id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
"label": "string"
}
],
"drawing_starting_image": "data:image/png;base64,iVBORw0KGgo…",
"response_boolean": true,
"selected_option_ids": [
"1b671a64-40d5-491e-99b0-da01ff1f3341"
],
"response_text": "string",
"response_number": 0,
"response_matches": [
{
"option_id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
"match_option_id": "1b671a64-40d5-491e-99b0-da01ff1f3341"
}
],
"response_blanks": [
"string"
],
"response_drawing": "string",
"answered_at": "2026-01-01T00:00:00.000Z"
}