---
title: "Grade Practice"
method: POST
path: "/v1/interactives/practice/grade"
---

# Grade Practice

`POST /v1/interactives/practice/grade`

## Request body

- GradeFRQRequest
  - `problem` PracticeProblem, required
    - `problem_type` 'mcq' | 'frq' | 'selectall', required
    - `problem_statement` string, required
    - `correct_answer` union
      - string
      - string[]
    - `difficulty` 'easy' | 'medium' | 'hard'
    - `answer_choices` object, nullable
    - `explanation` string, nullable
    - `scoring_details` string, nullable
    - `include_graph` boolean
    - `graph_description` string, nullable
    - `graph_url` string, nullable
    - `user_answer` union
      - string
      - string[]

## Response `200`

Successful Response

- GradeFRQResponse
  - `success` boolean, required
  - `timestamp` string, required
  - `score` integer, required
  - `explanation` string, required
  - `max_score` integer, required
  - `percentage` number, required

## Other responses

- `401` — Invalid API key or unauthorized access
- `402` — Insufficient credits
- `422` — Validation Error
- `429` — Rate limit exceeded
- `500` — Internal server error

---

[API](https://skmtc.dev/opennote/apis/opennote-api-platform.md) · [All operations](https://skmtc.dev/opennote/apis/opennote-api-platform/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/opennote/opennote-api-platform/revisions/a9989220cb93/schema)
