> ## Documentation Index
> Fetch the complete documentation index at: https://developer.vclasses.net/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /api/v3/quiz/pdf-quizzes/{id} — Get Quiz Details

> Retrieve a single PDF quiz by ID, including its question PDF metadata and the full list of student submission records. Requires an admin Bearer token.

Retrieve detailed information about a single PDF quiz, including its question PDF metadata and the complete list of student submission records associated with it.

## Endpoint

```
GET /api/v3/quiz/pdf-quizzes/{id}
```

## Required Role

**Admin** — you must authenticate with an admin-scoped Bearer token.

## Required Headers

| Header          | Value              |
| --------------- | ------------------ |
| `Authorization` | `Bearer <token>`   |
| `Accept`        | `application/json` |

## Path Parameters

<ParamField path="id" type="integer" required>
  The unique ID of the PDF quiz you want to retrieve.
</ParamField>

## Example Request

```bash theme={null}
curl -X GET https://app.example.com/api/v3/quiz/pdf-quizzes/1 \
  -H "Authorization: Bearer your-token" \
  -H "Accept: application/json"
```

## Response

### 200 OK

```json theme={null}
{
  "data": {
    "id": 1,
    "title": "Math Quiz PDF",
    "questions_pdf_url": "https://example.com/media/quiz-questions.pdf",
    "questions_count_of_quiz_pdf": 10,
    "total_grade_for_quiz_pdf": 100,
    "submissions": [
      {
        "id": 15,
        "student_name": "John Doe",
        "grade": 95,
        "total_grade": 100,
        "is_marked": 1,
        "pdf_answer_url": "https://example.com/media/answer-15.pdf"
      }
    ]
  }
}
```

### Response Fields

<ResponseField name="data" type="object">
  A single PDF quiz object containing full details and all associated student submissions.

  <Expandable title="Quiz object fields">
    <ResponseField name="id" type="integer">
      The unique identifier for the quiz.
    </ResponseField>

    <ResponseField name="title" type="string">
      The display title of the quiz.
    </ResponseField>

    <ResponseField name="questions_pdf_url" type="string | null">
      The URL to the uploaded PDF containing the quiz questions. Returns `null` if no PDF has been attached.
    </ResponseField>

    <ResponseField name="questions_count_of_quiz_pdf" type="integer | null">
      The number of questions defined in the quiz PDF. Returns `null` if not specified.
    </ResponseField>

    <ResponseField name="total_grade_for_quiz_pdf" type="float | null">
      The total grade achievable for this quiz. Returns `null` if not configured.
    </ResponseField>

    <ResponseField name="submissions" type="array">
      All student submission records for this quiz.

      <Expandable title="Submission fields">
        <ResponseField name="id" type="integer">
          The unique submission ID (also used as `grade_id` when grading this submission).
        </ResponseField>

        <ResponseField name="student_name" type="string">
          The full name of the student who submitted.
        </ResponseField>

        <ResponseField name="grade" type="numeric | null">
          The grade awarded to the student. Returns `null` if the submission has not yet been graded.
        </ResponseField>

        <ResponseField name="total_grade" type="numeric | null">
          The maximum possible grade for this submission. Returns `null` if not yet set.
        </ResponseField>

        <ResponseField name="is_marked" type="integer">
          Grading status flag. `1` indicates the submission has been graded; `0` indicates it is pending review.
        </ResponseField>

        <ResponseField name="pdf_answer_url" type="string | null">
          The URL to the student's uploaded answer PDF. Returns `null` if no file was submitted.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

## Error Responses

| Status | Message             | Cause                                                   |
| ------ | ------------------- | ------------------------------------------------------- |
| `403`  | Unauthorized Access | The token provided does not belong to an admin account. |
| `404`  | Not Found           | No quiz exists with the specified `id`.                 |
