Skip to main content
Every generation request creates a job that runs asynchronously. Track it by polling GET /jobs/{job_id} until it reaches a terminal state.

Status values

The job creation response always returns status: "queued". The status surfaced by GET /jobs/{job_id} uses processing (not queued) while actively generating.

Polling

Poll GET /jobs/{job_id} until status is done or failed. A short interval (e.g. 2 seconds) is typical.
When status is done, result.image_url is a presigned URL valid for 24 hours. It is regenerated on every poll — always use the freshest value rather than caching an old one.
To avoid polling entirely, register a webhook and we’ll notify you when the job reaches a terminal state.
See the full Get job reference for the response schema.