Lifecycle
Every request moves through the same stable lifecycle.
The request object is the durable record for work submitted to the API. Clients can poll it safely until they reach a terminal state.
queued
The request was accepted and written to the Cannon Studio request store.
processing
The request is running or a downstream generation task has already been accepted.
succeeded
The request reached a terminal success state and the output payload is available.
failed
The request reached a terminal failure state. The request object includes an error message.
Polling model
- Submit once through `POST /api/v1/requests`.
- Poll
GET /api/v1/requests/{requestId}using the same API key. - Stop polling when the status becomes `succeeded` or `failed`.
- If a webhook URL is supplied, Cannon Studio will attempt terminal delivery to that endpoint.
- API-originated input and output logs stay available for seven days on the request object and in the console.
Response fields
{
"id": "req_123",
"operation": "image.generate",
"status": "processing",
"billableCredits": 28,
"createdAtMs": 1762479300000,
"startedAtMs": 1762479301200,
"completedAtMs": null,
"errorMessage": null,
"output": {
"task_id": "img_123",
"status": "processing",
"provider": "kie",
"model": "seedream/5-lite-text-to-image"
}
}