Skip to main content
POST
Complete an upload

Authorizations

Authorization
string
header
required

A Voyager API key from https://voyager.so/dashboard/api.

Headers

Idempotency-Key
string | null

A new UUID per logical request; resend it on retries to get the same file, never a duplicate.

Path Parameters

file_id
string
required

Response

Successful Response

id
string
required

file_…; pass it in a job's input (image, images, video, audio…).

status
enum<string>
required

pending until the upload completes, then ready (or failed).

Available options:
pending,
ready,
failed
file_name
string
required

The file's name.

content_type
string
required

The file's media type, e.g. image/png.

size_bytes
integer
required

Size in bytes.

expires_at
string<date-time> | null
required

When the file is deleted: references 7 days, outputs 30 days, Cast never; pending uploads 24 h.

object
string
default:file

Always "file".

Allowed value: "file"
type
string | null

image, video, audio, model3d or other (ready files).

url
string | null

Ready files: signed download link, valid one hour.

url_expires_at
string<date-time> | null

When url stops working (ISO 8601); read the object again for a fresh link.

retention
enum<string> | null

How long the file is kept.

Available options:
reference,
output,
cast,
pending
created_at
string<date-time> | null

When it was created (ISO 8601).

error
JobError · object | null

Why the upload failed, when status is failed.

width
integer | null

Width in pixels, when known.

height
integer | null

Height in pixels, when known.

duration_seconds
number | null

Length in seconds, when known.

upload_url
string | null

PUT the bytes here with headers, then complete.

method
string | null

The HTTP method to upload the bytes with, while pending.

Allowed value: "PUT"
headers
Headers · object | null

Headers to send with the upload, while pending.

upload_expires_at
string<date-time> | null

When upload_url stops accepting the bytes (ISO 8601).