---
title: "Upload a media file"
method: POST
path: "/v1/uploads"
tags: ["Uploads"]
---

# Upload a media file

`POST /v1/uploads`

## Request

- Base URL: `https://api.hotapi.ai`
- URL: `https://api.hotapi.ai/v1/uploads`
- Auth: HTTP bearer

Upload a local image, video, or audio file and receive a public HTTPS URL for use as a reference input. Send `multipart/form-data` with a single `file` field. Accepts JPEG, PNG, WebP up to 10 MB, and MP4, MOV, WebM, MP3, M4A, WAV, OGG, or FLAC up to 25 MB; the URL expires after 24h.

## Response `200`

A stored upload, ready to use as a supported image, video, or audio input.

- UploadResult: A stored upload, ready to use as a supported image, video, or audio input.
  - `url` string, required: Public HTTPS URL of the stored image, video, or audio file on HotAPI's CDN. Pass it directly to a supported reference input field.
  - `expires_at` integer, required: Unix seconds after which the upload is deleted. Submit your task before this.
  - `content_type` string, required
  - `size` integer, required: File size in bytes.
  - `width` integer: Image width in pixels; present for images only.
  - `height` integer: Image height in pixels; present for images only.

## Other responses

- `400`: Standard error envelope returned by every error response (OpenAI-style).
- `401`: Standard error envelope returned by every error response (OpenAI-style).
- `429`: Standard error envelope returned by every error response (OpenAI-style).

---

[API](https://skmtc.dev/hotapi/apis/hotapi-gateway.md) · [All operations](https://skmtc.dev/hotapi/apis/hotapi-gateway/llms.txt) · [OpenAPI document](https://skmtc.dev/hotapi/apis/hotapi-gateway/revisions/9b6578b0c389?raw)
