Intelliverse

Errors

Structured error codes that tell you the next step — no guessing from generic status codes.

Error shape

Errors are structured: the body carries a machine-readable error.metadata.reason alongside the human message, so your handler can branch without string-matching.

JSON
{
  "error": {
    "code": 402,
    "message": "Credit balance exhausted. Top up or enable metered overage.",
    "metadata": { "reason": "credit_exhausted" }
  }
}

Error reference

StatusReasonWhat to do
402credit_exhaustedBalance is zero. Top up under Dashboard → Credits or enable metered overage (paid plans). See Credits & billing.
402overage_cap_exhaustedPrepaid balance and metered cap both used. Raise the cap under Dashboard → Apps or top up.
403tier_requiredCapability needs a higher plan (e.g. Fusion on Pro+). Upgrade from Pricing.
403guardrail_blockRequest blocked by a key or app guardrail. Check Dashboard → Guardrails.
429key_rate_limitThis key exceeded its plan's requests/minute. Honor Retry-After or upgrade — see Rate limits.
429ip_rate_limitThe shared 120/min per-IP ceiling was hit across keys on your egress IP. Honor Retry-After; for shared-office NAT, ask about dedicated throughput.

Rate-limit errors

Every 429 carries a Retry-After header (seconds until the sliding window frees up) and names which limit you hit in error.metadata.reason:

HTTP
HTTP/1.1 429 Too Many Requests
Retry-After: 42

{
  "error": {
    "code": 429,
    "message": "Rate limit exceeded. Slow down or upgrade your plan for a higher RPM cap.",
    "metadata": { "reason": "key_rate_limit", "retry_after": 42 }
  }
}

The full budget table and fair-use policy live in Rate limits & fair use.

Did this doc help you?
Help us improve these docs