---
title: "Create Upload"
method: POST
path: "/uploads"
---

# Create Upload

`POST /uploads`

## Request

- Base URL: `https://www.clipzyn.com/v1`
- URL: `https://www.clipzyn.com/v1/uploads`
- Auth: HTTP bearer

Mint {upload_id, storage_path, put_url, token_expires_at, max_bytes} for one source.

Costs nothing quota-wise. Call before POST /v1/runs when a local file must be uploaded,
then execute the signed PUT directly and probe readiness. Recover from
unsupported_media_type by re-encoding to an allowed extension, upload_too_large by using
a supported source_url, and validation_error by fixing the named field. Retry
service_unavailable after retry_after_sec.

## Request body

- UploadRequest
  - `filename` string, required
  - `size` integer
  - `content_type` string
  - `content_sha256` string, nullable

## Response `201`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/clipzyn/apis/clipzyn-api.md) · [All operations](https://skmtc.dev/clipzyn/apis/clipzyn-api/llms.txt) · [OpenAPI document](https://skmtc.dev/clipzyn/apis/clipzyn-api/revisions/a0f30a836536?raw)
