Skip to main content
POST
Upload a reference file

Authorizations

X-Api-Key
string
header
required

Your team API key (starts with al_live_).

Headers

Idempotency-Key
string

Stripe-style idempotency key (1-256 chars). Same key + same purpose + metadata returns the cached response with Aurous-Idempotent-Replayed: true. Same key against a different route (e.g. previously used on /v1/images) returns 409 invalid_request / idempotency_key_in_use. Replay window is 24 hours. Absent header is treated as non-idempotent (each call processes anew).

Aurous-Version
string

Optional API version pin (YYYY-MM-DD). Defaults to your team's pinned version, or the system default 2026-07-16 for unauthenticated requests.

Pattern: ^\d{4}-\d{2}-\d{2}$
Example:

"2026-07-16"

Body

multipart/form-data
file
file
required

The file bytes. Image purposes: PNG / JPEG / WebP, max 10MB, max 4096px. reference_video: MP4 / MOV, max 50MB, 2–15 s. reference_audio: WAV / MP3, max 15MB, 2–15 s.

purpose
enum<string>
required

How the file will be used downstream. Must match the uploaded bytes (a WAV under reference_video is rejected).

Available options:
reference,
first_frame,
last_frame,
reference_video,
reference_audio
metadata
string

JSON-encoded metadata object. Optional.

Response

File stored

id
string
required

Opaque file ID.

Example:

"file_01HXMQ7Z3K8Y2NABCDEFGHJKMN"

object
string
required

Object discriminator.

Example:

"file"

purpose
enum<string>
required

How the file is used downstream. Image purposes: reference, first_frame, last_frame. Media purposes (PR-4): reference_video / reference_audio for the /v1/videos BYO reference fields.

Available options:
reference,
first_frame,
last_frame,
reference_video,
reference_audio
Example:

"reference"

mime_type
enum<string>
required
Available options:
image/png,
image/jpeg,
image/webp,
video/mp4,
video/quicktime,
audio/mpeg,
audio/wav
Example:

"image/jpeg"

size_bytes
number
required

File size in bytes.

Example:

1247892

width_px
object | null
required

Decoded image width in pixels (max 4096).

Example:

1024

height_px
object | null
required

Decoded image height in pixels (max 4096).

Example:

768

url
string
required

Time-limited signed URL valid for ~1h. Re-mint a fresh URL by re-fetching GET /v1/files/:id. Do NOT cache long-term — the underlying bucket is private.

Example:

"https://...?token=..."

expires_at
string
required

Hard 24h TTL — the file is automatically purged at this timestamp.

Example:

"2026-05-04T14:00:00Z"

created_at
string
required

Creation timestamp.

Example:

"2026-05-03T14:00:00Z"

duration_s
number | null

Clip duration in seconds — populated for media uploads (reference_video / reference_audio, parsed at upload time), null for images.

Example:

7.4

metadata
object

Echoed metadata.

Example: