Getting Started
Errors
What each status code means and what to do about it.
Errors carry a status code and a short message. The message is meant to be read by a person; branch on the status code, not on the text.
| Status | Meaning | What to do |
|---|---|---|
400 | The request was rejected — a missing or invalid field, or an assetId that is not a usable upload of yours. | Fix the request. Retrying it unchanged will not help. |
401 | No key, a malformed key, or an unknown key. | Check the Authorization header. All three cases answer identically. |
402 | Your balance is too low to start this generation. | Add funds. Nothing was reserved. |
404 | No such task or upload belonging to you. | Check the id. Another account's id answers the same way as one that does not exist. |
409 | The task cannot make that transition — cancelling one that has already started. | Read the task's current status. |
429 | Too many requests. The limit is 60 generations per minute per account. | Slow down and retry. |
503 | That configuration is not currently on sale, or the provider is unavailable. | Try another tier, or retry later. Nothing was reserved. |
Nothing is charged for a failed request
A rejected request reserves nothing. A generation that is accepted reserves its cost immediately, and that reservation is refunded in full if the work fails or is cancelled before it starts. You are only charged for a generation that produced a result.
Not found means not yours
An id belonging to another account and an id that never existed both return
404, with the same body. This is deliberate: otherwise the difference between
the two answers would reveal which ids are real.