---
title: "Add Pdf"
method: POST
path: "/copy-reviews/{review_id}/pdf"
tags: ["Copy Reviews"]
---

# Add Pdf

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

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

A PDF (or one JPG / PNG), streamed to a temp file and rendered page by
page in the background; `pdf_upload` on the review tells the progress.

## Path parameters

- `review_id` string, required

## Request body `multipart/form-data`

- BodyAddPdfCopyReviewsReviewIdPdfPost
  - `file` string, binary, required
  - `part` 'copy' | 'subject' | 'answer_key', required

## Response `202`

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
- `413`: File over the size cap for its kind
- `415`: File content is not an accepted type
- `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/pdf/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)
