Documentation / Errors & retries
GOOD TO KNOW

Get back
in the flow.

Predictable errors and a clear way to recover.

Every error includes error, code, and requestId. Share the request id when debugging; never share an API key or password.

Error response

{
  "error": "Project changed. Fetch its current revision before saving.",
  "code": "revision_conflict",
  "requestId": "request-uuid"
}

Status codes

StatusWhat to do
400 · invalid requestCheck fields against the endpoint documentation
401 · unauthorizedSign in again, or replace an invalid / revoked key
402 · plan or credits neededChoose a plan, or top up credits in Plan & usage
403 · forbiddenCheck scopes and the browser request origin
404 · not foundCheck the id and that it belongs to this account
409 · conflictRead current state and rebase your change
413 · too largeReduce payload size or free up media storage on your account
415 · media typeUse application/json for JSON endpoints
422 · checksum mismatchRe-upload the original media chunks
429 · rate limitedRespect Retry-After before retrying
500 / 503 · unavailableRetry reads with backoff; inspect before repeating writes

Retry without duplicate work

For project creation, send your own stable id and expectedRevision: 0. For updates, send the last observed revision. For live editor edits, retry the exact same command id and batch. Do not blindly retry a mutation with a new id when the result is uncertain.

Keep exploring the APIBuilt for work that stays editable.