Task Lifecycle
Every mutating API call (e.g. /imagine, /upscale-1x) returns a task ID immediately. The actual work happens asynchronously. You can track progress via /fetch or webhooks.
Status Flow
staged → pending → starting → processing → finished
↓
failedFailed tasks may be automatically retried up to 3 times before settling as failed.
Status Definitions
Task created but not yet submitted to the upstream model.
Task submitted and waiting to be picked up by the model.
The model has acknowledged the task and is initializing.
Image/video is being generated. The percentage field updates as progress is made.
Generation complete. Result URLs are available.
Generation failed. The error field contains the reason.
Progress Tracking
While a task is in the processing status, the percentage field updates to show progress as a string from "0" to "100".
{
"task_id": "550e8400-e29b-41d4-a716-446655440000",
"task_type": "imagine",
"status": "processing",
"percentage": "45"
}Typical Durations
| Task Type | Typical Duration |
|---|---|
| /imagine | 30-90 seconds |
| /upscale-1x | 15-45 seconds |
| /upscale-alt | 30-90 seconds |
| /variations | 30-90 seconds |
| /inpaint, /outpaint, /pan | 30-90 seconds |
| /blend | 30-90 seconds |
| /describe, /shorten | 10-30 seconds |
| /seed | 5-15 seconds |
| /faceswap | 15-45 seconds |
| /imagine-video | 1-5 minutes |
Durations depend on upstream model load. During peak hours, times may be longer.