QuizAttempt
A request or response body; the type column links to the schemas it refers to.
QuizAttempt
| Field | Type | Required | Description |
|---|---|---|---|
| id | string (uuid) | yes | — |
| quiz_id | string (uuid) | yes | — |
| scheduled_quiz_id | string (uuid) | null | yes | The sitting a live attempt was sat in; null on async attempts. |
| user_id | string (uuid) | yes | — |
| user_display_name | string | null | yes | Display name of the taker's user account, when the read joins it; else null. |
| attempt_number | integer | yes | — |
| status | string | yes | in_progress while being sat; pending_grading once submitted with a manually graded question still to be marked or finalized; submitted once scored. one of "in_progress" | "pending_grading" | "submitted" |
| started_at | string (date-time) | yes | — |
| deadline_at | string (date-time) | null | yes | When the attempt auto-submits as-is: started_at plus the time limit, capped by the sitting's close. Null when neither applies. |
| submitted_at | string (date-time) | null | yes | — |
| auto_submitted | boolean | yes | True when the deadline finalized the attempt rather than the taker. |
| question_count | integer | yes | — |
| correct_count | integer | null | yes | Questions awarded full marks; null until scored. |
| points_possible | integer | yes | The points of every presented question, summed when the paper was built. |
| points_awarded | integer | null | yes | Points earned across the paper; null until scored or while withheld. |
| score_percentage | number | null | yes | points_awarded as a percentage of points_possible, to two decimals. |
| passed | boolean | null | yes | — |
| requires_manual_grading | boolean | yes | Whether the paper holds a manually graded question: such an attempt waits in pending_grading for a marker, and its results reach the taker only once released. |
| finalized_at | string (date-time) | null | yes | When a marker finalized the grading of a manually graded attempt. |
| results_released_at | string (date-time) | null | yes | The per-attempt release stamp; null until an administrator releases it. |
| results_visible | boolean | yes | Whether the caller may see this attempt's results. False nulls correct_count, points_awarded, score_percentage and passed. |
{
"id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
"quiz_id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
"scheduled_quiz_id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
"user_id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
"user_display_name": "string",
"attempt_number": 0,
"status": "in_progress",
"started_at": "2026-01-01T00:00:00.000Z",
"deadline_at": "2026-01-01T00:00:00.000Z",
"submitted_at": "2026-01-01T00:00:00.000Z",
"auto_submitted": true,
"question_count": 0,
"correct_count": 0,
"points_possible": 0,
"points_awarded": 0,
"score_percentage": 0,
"passed": true,
"requires_manual_grading": true,
"finalized_at": "2026-01-01T00:00:00.000Z",
"results_released_at": "2026-01-01T00:00:00.000Z",
"results_visible": true
}