Skip to content

Errors & rate limits

Error shape

Errors share this shape:

json
{ "error": { "type": "<error_code>", "message": "<detail>" } }

When troubleshooting, record the X-TT-Request-ID response header — with it you can locate a single call's billing and error detail on the console "Requests" page.

Common error codes

HTTPtypeMeaningWhat to do
401unauthorizedMissing or invalid API keyCheck the Authorization header and that the key is correct / not disabled
402billing_shortfallWallet balance insufficientGo to Recharge
402api_key_quota_exceededOver this key's monthly limitRaise the limit, or use another key
403model_not_allowedModel not in the key's scopeAdjust key scope, or use an allowed model
403ip_not_allowedSource IP not permittedAdjust the key's IP restriction / source
404Path not foundCheck whether the base URL's /v1 is one too many / few; check the model path
429rate_limitedRate limitedRetry after Retry-After
5xxTemporary service errorRetry later; if it persists, contact support with the request id

Error details

When a call fails, the platform returns a structured error. message usually contains a readable reason; type is for programmatic checks. Retry retryable errors with backoff.

Rate limits

On a rate limit you get 429 with these response headers:

HeaderMeaning
Retry-AfterSuggested seconds to wait before retrying
X-RateLimit-LimitRequests-per-minute limit
X-RateLimit-RemainingRemaining calls in the current window
X-RateLimit-ResetWhen the quota resets

Recommendation: implement exponential backoff on the client and respect Retry-After.

When you aren't charged

  • Requests rejected before processing — auth failure (401), rate limit (429), bad params — are not charged.
  • Tasks that fail / cancel / expire are not charged; the hold is released.
  • Streaming requests, even if cut off mid-way, settle on real usage as best they can — see Recharge & Billing.

Still stuck?

Bring this info to support for a fast diagnosis:

  1. X-TT-Request-ID (response header).
  2. Approximate time, the model used, the API path.
  3. The full error response body (error.type + message).

Gateway: gateway.mindproxy.ai · Built with VitePress