QuizReviewQuestion
A request or response body; the type column links to the schemas it refers to.
QuizReviewQuestion
| 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 | — |
| 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. |
| explanation | string | null | yes | — |
| correct_boolean | boolean | null | yes | — |
| correct_number | number | null | yes | — |
| tolerance | number | null | yes | — |
| options | array of ReviewQuestionOption | yes | In presentation order for choice and matching questions; in *authored* (correct) order for ordering questions; the accepted answers for short_answer, and for fill_in_blank with each one's blank_index. |
| 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 | When the taker last answered the question; null when they never did. |
| is_correct | boolean | null | yes | As graded at submit time; unanswered questions were graded incorrect. On a manually graded question, null until marked, then whether full marks were awarded. |
| points_possible | integer | yes | What the question was worth when the paper was built. |
| points_awarded | integer | null | yes | Points earned — the machine's at submit, or the marker's; null while ungraded. |
| manually_graded | boolean | yes | Whether a marker awards this question's points, per the paper's snapshot. |
| auto_result | boolean | null | yes | Markers only: on a manually graded machine-checkable question, the machine's verdict as a suggestion. Null for long answers, on unflagged questions, and for takers. |
| rubric_markdown | string | null | yes | The marking scheme: always for markers and quizzes:read holders, and for the taker only when its author chose to show it. at most 50000 characters |
| feedback_markdown | string | null | yes | The marker's note to the taker, as markdown; null when none was left. |
| graded_at | string (date-time) | null | yes | When a marker last recorded points for this question; null otherwise. |
{
"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,
"explanation": "string",
"correct_boolean": true,
"correct_number": 0,
"tolerance": 0,
"options": [
{
"id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
"label": "string",
"is_correct": true,
"match_label": "string",
"blank_index": 0
}
],
"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",
"is_correct": true,
"points_possible": 0,
"points_awarded": 0,
"manually_graded": true,
"auto_result": true,
"rubric_markdown": "- 2 points: names both hazards\n- 1 point: names one\n- 0: neither",
"feedback_markdown": "string",
"graded_at": "2026-01-01T00:00:00.000Z"
}