Error reference

All errors return a JSON body with an error field and usually a message.

HTTPerrorWhen
400missing_field / invalid_inboxMissing or invalid request body (e.g. inbox required)
401unauthorizedMissing or malformed API key
401key_revokedAPI key has been revoked
403forbiddenInbox not registered to this account
403plan_restrictionFeature not in current plan (OTP, WebSocket, custom domain)
403domain_not_verifiedCustom domain not verified in dashboard
404not_foundMessage or inbox not found
409already_registeredInbox already registered to this account
429rate_limit_exceededPer-second limit hit (Retry-After header)
429monthly_quota_exceededMonthly quota exhausted, no credits
500server_errorInternal server error

All errors include success: false and an error code. Example:

403Plan restriction (example)

json
{
  "success": false,
  "error": "plan_restriction",
  "message": "OTP extraction requires Developer plan or higher. Your current plan: free.",
  "upgrade_url": "https://freecustom.email/api/pricing"
}