QuizAttemptDetail

A request or response body; the type column links to the schemas it refers to.

QuizAttemptDetail

FieldTypeRequiredDescription
idstring (uuid)yes—
quiz_idstring (uuid)yes—
scheduled_quiz_idstring (uuid) | nullyes

The sitting a live attempt was sat in; null on async attempts.

user_idstring (uuid)yes—
user_display_namestring | nullyes

Display name of the taker's user account, when the read joins it; else null.

attempt_numberintegeryes—
statusstringyes

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_atstring (date-time)yes—
deadline_atstring (date-time) | nullyes

When the attempt auto-submits as-is: started_at plus the time limit, capped by the sitting's close. Null when neither applies.

submitted_atstring (date-time) | nullyes—
auto_submittedbooleanyes

True when the deadline finalized the attempt rather than the taker.

question_countintegeryes—
correct_countinteger | nullyes

Questions awarded full marks; null until scored.

points_possibleintegeryes

The points of every presented question, summed when the paper was built.

points_awardedinteger | nullyes

Points earned across the paper; null until scored or while withheld.

score_percentagenumber | nullyes

points_awarded as a percentage of points_possible, to two decimals.

passedboolean | nullyes—
requires_manual_gradingbooleanyes

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_atstring (date-time) | nullyes

When a marker finalized the grading of a manually graded attempt.

results_released_atstring (date-time) | nullyes

The per-attempt release stamp; null until an administrator releases it.

results_visiblebooleanyes

Whether the caller may see this attempt's results. False nulls correct_count, points_awarded, score_percentage and passed.

questionsarray of TakerQuestionyes

The attempt's paper in presentation order, answers stripped.

jsonExample
{
  "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,
  "questions": [
    {
      "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"
    }
  ]
}