OK
application/json · video-list-payload
5 fields
-
object
string
list
-
data
array of objects
18 fields
-
id
string
required
-
object
string
required
video
-
model
string
required
-
status
string
required
OpenAI's SDKs (requests with X-Stainless-Lang) see queued for pending, and cancelled and expired as failed with that reason as error.code; everyone else sees the states below.
pending: queued; see queue_position.
in_progress: rendering; see progress.
completed: the video is ready at unsigned_urls until expires_at. The only billed status.
failed: see error. Not billed.
cancelled: cancelled with DELETE /v1/videos/{id}. Not billed.
expired: a completed job past its 7-day retention; the video is deleted.
pendingqueuedin_progresscompletedfailedcancelledexpired
-
progress
integer
required
Estimated percent complete while rendering.
-
created_at
integer
required
-
completed_at
integer
-
expires_at
integer
When the video is deleted.
-
polling_url
string
required
-
seconds
string
-
size
string
-
queue_position
integer
Jobs ahead of this one for the same model, while pending.
-
unsigned_urls
array of strings
Where to download each output (send your API key).
-
output
object
6 fields
-
duration
number
-
fps
number
-
width
integer
-
height
integer
-
has_audio
boolean
-
count
integer
-
warnings
array of objects
What the request sent that was not read. Always present; an empty list says nothing was ignored.
3 fields
-
code
string
unknown_parameter: not a video request field, so it was not read. Codes are open: ignore one you do not know.
-
field
string
-
message
string
-
usage
object
6 fields
-
cost
number
-
output_seconds
integer
Seconds of video requested.
-
billed_seconds
integer
Seconds billed at the model's price; more than output_seconds for the standard (3x) and max (5x) quality tiers and for base num_inference_steps (steps / 6, capped at the next tier up).
-
input_image_count
integer
-
input_video_seconds
number
-
input_audio_seconds
number
-
error
string or object
Why a failed job failed. A string beside error_code; for OpenAI's SDKs an object with code and message.
One of 2
-
error_code
string
invalid_request: an input could not be used, for example a media URL that could not be fetched or a file of the wrong type. Fix the request before sending it again.
payload_too_large: a media input was over its size limit.
timeout: the render took too long.
provider_error: the render failed or was interrupted on our side. Sending the same request again is safe.
server_error: the job could not run, for example because its model or API key was removed.
invalid_requestpayload_too_largetimeoutprovider_errorserver_error
-
first_id
string
-
last_id
string
-
has_more
boolean
The API key is missing, unknown or not active. Send it as Authorization: Bearer <key>.
application/json · error-payload
1 field
-
error
object
required
4 fields
-
code
integer
required
-
message
string
required
-
type
string
required
OpenAI-style error type, kept for OpenAI SDK compatibility.
-
metadata
object
required
1 field
-
error_type
string
OpenRouter's typed error code. Chat also uses media_processing_failed for media a model cannot accept.