100MB FREEResidential proxiesClaim
Docs/Error Codes

Error Codes

Every error response has an HTTP status and, on most endpoints, an error message meant for humans. Newer endpoints also return a stable, machine-readable code field — check the status first if a response doesn't have one yet.

Response shape

{
  "error": "Minimum amount is $5",
  "code": "MIN_TOPUP_AMOUNT"
}

HTTP status codes

StatusMeaning
400Bad request — missing or malformed input
401Missing, invalid, or expired authentication (Bearer key or session)
402Insufficient balance for the requested operation
403Authenticated but not allowed — e.g. not a reseller, or accessing another account's resource
404Resource not found
409Conflict — e.g. email already registered, domain already claimed by another account
422Validation error — a field failed validation
429Rate limit exceeded — see the endpoint's documented limit in the API Reference
500Something went wrong on our end — safe to retry
502A dependency (DNS lookup, upstream provider) failed — safe to retry
503That feature is not configured / temporarily unavailable

Machine-readable code values

Prefer matching on code over parsing the error text — the text may be reworded, the code won't change.

CodeMeaning
UNAUTHORIZEDNo valid session or API key on the request
FORBIDDENAuthenticated, but not allowed to do this
USER_NOT_FOUNDThe authenticated user no longer exists
NOT_FOUNDGeneric resource-not-found
RATE_LIMITEDToo many requests — back off and retry after the window in X-RateLimit-Reset
INTERNAL_ERRORUnexpected server error — safe to retry, contact support if it persists
INSUFFICIENT_BALANCEYour balance doesn't cover this purchase
NO_NUMBERS_AVAILABLENo stock for that service+country combination right now
MIN_TOPUP_AMOUNTTop-up amount is below the minimum (varies by region — see the response for the exact figure)
CARD_NOT_CONFIGUREDCard payments are currently disabled — try crypto instead
CARD_CHECKOUT_FAILEDCreating the card checkout session failed — safe to retry
CRYPTO_INVOICE_FAILEDCreating the crypto invoice failed — safe to retry
CRYPTO_NOT_REFUNDABLEThis crypto transaction isn't eligible for a refund
RESET_PW_MISSING_FIELDSPassword reset request is missing a required field
RESET_PW_INVALID_TOKENThe reset token is invalid or has expired — request a new one
FORGOT_PW_SEND_FAILEDSending the reset email failed — safe to retry
CONTACT_MISSING_FIELDSContact form submission is missing a required field
CONTACT_CAPTCHA_FAILEDTurnstile verification failed on the contact form
CONTACT_SEND_FAILEDSending the contact message failed — safe to retry

Reseller-specific

The reseller API mostly uses HTTP status directly rather than a code field — see Reseller API Reference. One to note specifically:

StatusWhere
409PATCH /reseller/profile — the customDomain you're setting is already configured on a different account. See White-Label & Custom Domain.