---
title: "Upload File"
method: POST
path: "/v1/files"
---

# Upload File

`POST /v1/files`

Upload a file once and get back a `file_*` reference id you can reuse across generations.

The same reference can be passed to realtime `set_image` as `image_ref`, avoiding a re-upload of the underlying bytes on every call.

## Headers

- `x-api-key` string, required — API key for authentication
- `User-Agent` string, nullable

## Response `200`

Successful Response

- FileReferenceResponse
  - `id` string, required
  - `filename` string, nullable, required
  - `mime_type` string, required
  - `size_bytes` integer, required
  - `created_at` string, date-time, required
  - `expires_at` string, date-time, nullable, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/decart/apis/decart-api.md) · [All operations](https://skmtc.net/decart/apis/decart-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/decart/decart-api/versions/3f568c124e81/schema)
