---
title: "Reserve a file Source and receive a scoped upload URL"
method: POST
path: "/v1/sources/uploads"
tags: ["Sources"]
---

# Reserve a file Source and receive a scoped upload URL

`POST /v1/sources/uploads`

## Request

- Base URL: `https://api.jellypod.com`
- URL: `https://api.jellypod.com/v1/sources/uploads`
- Auth: HTTP bearer

## Request body

- object
  - `file_name` string, required
  - `mime_type` string, required
  - `prepare_visuals` boolean: Deprecated compatibility field. Source preparation is automatic.
  - `size_bytes` integer, required
  - `title` string

## Response `201`

Upload slot reserved. PUT raw file bytes to upload.url with the returned headers, then POST complete_path. File content is processed asynchronously.

- object
  - `data` object, required
    - `complete_path` string, required
    - `source` object, required
      - `created_at` string, required
      - `error_message` string, nullable, required
      - `id` string, uuid, required
      - `metadata` unknown
      - `status` string, required
      - `title` string, nullable, required
      - `type` string, nullable, required
      - `updated_at` string, required
    - `upload` object, required
      - `expires_at` string, date-time, required
      - `headers` object, required
        - `content-type` string, required
      - `method` 'PUT', required
      - `url` string, uri, required

## Other responses

- `400`: Validation failed or malformed request.
- `401`: Missing or invalid API key.
- `403`: Authenticated, but this API key does not have access to this resource.
- `404`: Resource not found.
- `429`: Rate limit exceeded. Response includes `Retry-After`, `RateLimit`, and `RateLimit-Policy` headers (IETF draft).
- `500`: Internal server error.
- `502`: The API could not enqueue the downstream asynchronous workflow.

---

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