---
title: "Confirm Project Document Upload"
method: POST
path: "/api/v1/projects/{project_id}/documents/confirm-upload"
tags: ["project-documents"]
---

# Confirm Project Document Upload

`POST /api/v1/projects/{project_id}/documents/confirm-upload`

## Path parameters

- `project_id` string, uuid, required

## Request body

- ConfirmProjectDocumentUploadRequest
  - `document_id` string, uuid, required
  - `r2_key` string, required

## Response `201`

Successful Response

- ProjectDocumentResponse — User-facing project PDF metadata. Redaction fields are intentionally omitted. Users only need to know whether their original PDF is uploaded and available.
  - `id` string, uuid, required
  - `project_id` string, uuid, required
  - `file_name` string, required
  - `file_size` integer, required
  - `content_type` string, required
  - `status` 'uploading' | 'uploaded' | 'validated' | 'failed', required — Lifecycle for project-level supporting PDF documents.
  - `failure_reason` string, nullable
  - `uploaded_by_user_id` string, uuid, nullable
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `download_url` string, nullable

## Other responses

- `422` — Validation Error

---

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