Skip to main content

Overview

Many models accept media (images, video, audio) as input. To use your own files, upload them with this endpoint and pass the returned public_url to Create Prediction. Uploads happen in two steps:
1

Request a presigned URL

POST /v1/upload/presign with file metadata. The response contains a short-lived URL to upload to and a stable public_url.
2

Upload the file

PUT the raw file bytes to presigned_url, applying any required_headers exactly as returned.

Step 1 — Request a presigned URL

Endpoint

Request Body

Code Examples

Response

Response Fields

Step 2 — Upload the file

PUT the raw file bytes to presigned_url. Include every header from required_headers exactly as returned, plus a Content-Type matching the value sent in step 1.
A 200 OK from the PUT means the file is live. Use public_url as the input value when you create a prediction.

Limits

Error Responses

The presigned URL expires 15 minutes after it’s issued — this is separate from expires_at, which reports when the stored file is deleted (default 180 days), not the upload deadline. Upload soon after requesting; if the URL lapses, just request a new one.
Last modified on June 11, 2026