Lifecycle
A run moves through these states:queued: accepted and waiting to start.running: generation is in progress.completed: output is ready.failed: generation failed and the reservation was released.canceled: canceled by the caller.
Submit
Send a flat JSON body toPOST /v1/run/{model_id}. The model entry defines
which fields the body accepts.
Idempotency-Key when a request may be retried. Reusing the key with the
same request returns the original run. Reusing it with a different request
returns a conflict.
Media inputs
Models that accept images, video, or audio can take:- An
asset_...ID returned byPOST /v1/assetsor a previous run. - A public HTTPS URL.
- A data URI.
GET /v1/models/{model_id} before building the request.
Poll status
Use the lightweight status endpoint while the run is active:queue_position is available while a run is queued and may
be null after it starts.
Retrieve a result
outputs array contains the full result. When there is exactly one video
output, the response also includes it in video for convenience.
Cancel
409 if you try to cancel them.
List runs and events
List recent runs:Next
Models
Read model capabilities and request fields.
Errors
Handle rate limits, conflicts, and failed requests.

