Skip to main content
Generation endpoints return a consistent response structure. Use this page to understand what you get back, what expires, and what to store on your side.

Response structure

Every completed generation includes these fields:

Sync vs async

Images return HTTP 200 with status: "completed" and the full response body immediately. Videos return HTTP 202 with status: "pending" and only an id when you submit the generation. Poll GET /v2/videos/generations/{id} until the status changes to completed or failed. See Generate videos for the full flow.

The data array

Each item in data represents a generated file. Image items: Video items include additional fields:

Download URLs

The url in each data item is a signed download URL to the generated media.
Download URLs expire at the deletes_at timestamp.
If your integration needs the file later, download it immediately and store it in your own system. That keeps your delivery flow predictable.

Usage and billing

The usage object contains billing details for the generation.