When you are charged
- You pay only for images and videos that are delivered.
- Refused or failed jobs are not charged.
- The price is fixed by model and size tier for images, and by model, resolution and duration for video. See Models and pricing.
- A video job holds its full price when it starts. A failed job returns the hold.
- Your balance is prepaid. When it runs out, requests fail with
403until your manager tops it up.
Check what a request cost
Every response, success or error, carries a request ID header:cost_usd. An unknown ID, or a request that was not charged, returns:
Error format
Errors use the OpenAI shape. The message ends with the request ID:Error codes
Video jobs have their own error codes. A refused video ends with status
failed and a full refund. See Video errors.
Retry rules
- Retry
502and503with a backoff, for example 30 s, then 60 s, then 120 s. - Do not retry
400,401or403without fixing the cause. - Do not retry after a client timeout. See Response time and timeouts.