---
title: "Create an isomorphic local or cloud upload session"
method: POST
path: "/v1/uploads"
tags: ["Assets"]
---

# Create an isomorphic local or cloud upload session

`POST /v1/uploads`

## Headers

- `Idempotency-Key` string, required

## Request body

- CreateUploadRequest
  - `filename` string, required
  - `media_type` string, required
  - `byte_size` integer, required
  - `execution_policy` 'local_only' | 'prefer_local' | 'cloud_allowed' | 'cloud_required', required

## Response `201`

Upload session

- UploadResponse
  - `request_id` string, required
  - `execution` Execution, required
    - `location` 'local' | 'cloud', required
    - `capability_id` string, nullable
    - `capability_version` string, nullable
  - `usage` Usage, required
    - `billable` boolean, required
    - `quantity` number, required
    - `unit` string, required
    - `credits` number
  - `warnings` string[], required
  - `data` UploadSession, required
    - `id` string, required
    - `asset_id` string, required
    - `method` 'PUT' | 'POST', required
    - `upload_url` string, uri, required
    - `expires_at` string, date-time, required

## Other responses

- `default` — Standard Cerul error envelope

## Changes

- **2026-07-27** `c15615d54993` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/cerul-ai/apis/cerul-api/changes/v1/uploads/post.md)

---

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