Skip to content

Developer docs

Errors

The error envelope and every error code you can receive.

All errors share one shape:

json
{
  "error": {
    "code": "INSUFFICIENT_CREDITS",
    "message": "Not enough credits.",
    "details": { "required": 120, "balance": 40 },
    "requestId": "a1b2c3"
  }
}
HTTPcodeWhen
400VALIDATION_ERRORBad or missing field; message names it
401UNAUTHORIZEDMissing or invalid API key
402INSUFFICIENT_CREDITSBalance lower than the job price
403FORBIDDENKey cannot access this endpoint
403ADULT_VERIFICATION_REQUIREDUncensored model without verification
403NSFW_DISABLEDVerified, but uncensored models are off in Settings
404NOT_FOUNDUnknown id
409CONFLICTState does not allow the action (e.g. cancel a running job)
409ALREADY_SUBSCRIBEDBilling: already on that plan
422PROMPT_BLOCKEDPrompt violates the content policy
422CARD_REQUIREDBilling: no card on file
402PAYMENT_FAILEDBilling: card declined (details.code from the processor)
423MODEL_UNAVAILABLEModel paused or provider down
429RATE_LIMITEDMore than 60 requests/min on this key
429CONCURRENCY_LIMITToo many running jobs for your plan (details.limit)
502PROVIDER_ERRORUpstream failed synchronously
500INTERNALOur fault; include requestId when contacting support

Retry 429 and 5xx with exponential backoff. Never retry 4xx without changing the request.