Getting started
The job object
Every endpoint returns a job. This is its shape and lifecycle.
A job is created immediately and moves through a small state machine. Only succeeded, failed and cancelled are terminal.
Lifecycle
| Status | Meaning |
|---|---|
| queued | Accepted and waiting for capacity. Usually under two seconds. |
| running | Rendering. The progress field moves from 0 to 100. |
| succeeded | Finished. images or video is populated. |
| failed | Terminal failure. See the error object for the reason. |
| cancelled | Cancelled by you before completion. Fully refunded. |
Fields
Job
idstringrequired- Unique identifier, prefixed job_.
objectstringrequired- Always "job".
typestringrequired- image, upscale, caption, prompt_analysis or video.
statusstringrequired- queued, running, succeeded, failed or cancelled.
progressintegerrequired- Completion percentage, 0 to 100.
promptstring- The prompt as submitted, before normalisation.
modelstring- The model that served the job.
paramsobject- Resolved generation parameters, including the seed actually used.
imagesarray- Result images, each with id, url, width and height.
videoobject- On video jobs: url, poster_url, duration_seconds, width and height.
errorobject- Present when status is failed. Carries code and message.
cost_usdnumberrequired- Charged for this job, in US dollars. Zero once a failed job is refunded.
metadataobject- Whatever you attached on the request, echoed back.
created_atstringrequired- RFC 3339 timestamp.
completed_atstring- RFC 3339 timestamp. Null until terminal.
A failed job is refunded automatically within a minute of failing. You are never charged for a result you did not receive.