---
title: "Upload file"
method: POST
path: "/v1/upload"
tags: ["upload"]
---

# Upload file

`POST /v1/upload`

Generate a signed URL for uploading media files to use as input for video generation.

Returns a pre-signed URL that can be used to upload files directly to cloud storage.
Use the returned `storage_uri` in subsequent video generation requests (e.g., `image_uri` or `video_uri` parameters).
The URL expires after 1 hour.

## Headers

- `Authorization` string, required

## Response `200`

Upload URL generated successfully

- UploadResponse
  - `upload_url` string, required — Pre-signed URL for uploading the file. Use PUT request to upload your file to this URL. The URL includes all necessary authentication and expires after 1 hour.
  - `storage_uri` string, required — Storage URI that can be used to reference the uploaded file in subsequent API requests. Use this value in image_uri or video_uri parameters. The uploaded file will be available for 24 hours.
  - `expires_at` string, date-time, required — ISO 8601 timestamp indicating when the signed URL expires (1 hour from creation).
  - `required_headers` object, required — Headers that must be included in the upload request to cloud storage. These headers enforce upload constraints like file size limits.

## Other responses

- `401` — Authentication failed
- `500` — An unexpected error occurred
- `503` — Service temporarily unavailable

---

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