Errors & rate limits

A consistent error envelope and predictable status codes.

Envelope

Every error response has the same shape:

json
{ "error": { "code": "payment_required", "message": "Insufficient credits.", "details": null } }

Status codes

StatusCodeMeaning
400bad_requestValidation failed; see details.
401unauthorizedMissing or invalid token.
402payment_requiredNot enough credits, or server limit reached.
403forbiddenAdmin-only endpoint, or insufficient key scope.
404not_foundNo such server/instance, or not yours.
409conflictNo node has capacity for the request.
429rate_limitedToo many requests.
502upstream_errorAn upstream panel returned an error.
500internal_errorUnexpected server error.

Rate limits

The API allows 240 requests per minute per client. Exceeding it returns 429. Health checks and the OpenAPI document are exempt. Back off and retry with jitter on a 429.

Validation details

400 responses include a details object from the schema validator listing the offending fields, so you can surface precise messages to users.

Errors & rate limits | Enzonic Cloud API