---
title: "Get Or Create Draft"
method: POST
path: "/copy-reviews"
tags: ["Copy Reviews"]
---

# Get Or Create Draft

`POST /copy-reviews`

## Request

- Base URL: `https://api.excellence-ai.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.excellence-ai.com/copy-reviews`
- Auth: OAuth 2 (password, token URL `api/login`)

The caller's draft, created when they have none (one per student).

## Response `200`

Successful Response

- CopyReviewResponse
  - `id` string, required
  - `status` 'draft' | 'processing' | 'ready' | 'error', required
  - `step` 'reading' | 'rubric' | 'grading' | 'remediation', nullable
  - `error` string, nullable
  - `exam_title` string, nullable
  - `copy_pages` string[], required
  - `subject_pages` string[], required
  - `answer_key_pages` string[], required
  - `has_subject` boolean, nullable
  - `pdf_upload` PdfUploadProgressResponse
    - `part` 'copy' | 'subject' | 'answer_key', required
    - `status` string, required
    - `pages_done` integer, required
    - `pages_total` integer, nullable
    - `error` string, nullable
  - `created_at` string, date-time, required
  - `started_at` string, date-time, nullable

## Changes

> 55 revisions in range; 1 not diffed.

- **2026-10-15** `7925dd21e4d0`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/excellence-ai/apis/excellence-learning/changes/copy-reviews/post.md)

---

[API](https://skmtc.dev/excellence-ai/apis/excellence-learning.md) - [All operations](https://skmtc.dev/excellence-ai/apis/excellence-learning/llms.txt) - [OpenAPI document](https://skmtc.dev/excellence-ai/apis/excellence-learning/revisions/379e4a57dee8?raw)
