---
title: "Retry Review"
method: POST
path: "/copy-reviews/{review_id}/retry"
tags: ["Copy Reviews"]
---

# Retry Review

`POST /copy-reviews/{review_id}/retry`

## 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/{review_id}/retry`
- Auth: OAuth 2 (password, token URL `api/login`)

## Path parameters

- `review_id` string, required

## 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

## Other responses

- `400`: A student's review refused the action (too many pages, not a draft, nothing to start from); `detail` is the French message to show
- `404`: Resource not found
- `422`: Validation Error

## 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/:review_id/retry/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)
