An API call was refused
For requests that reach the gateway, OpenAI-compatible routes return{ error: { message, type, code } }. /v1/messages and /v1/messages/count_tokens return the Anthropic error envelope. Both styles include a request id.
402 Payment Required
402 Payment Required
Read the billing reason before changing settings:
insufficient_credits: the balance cannot cover the call. Use Add funds at Settings > Billing. If a settlement drove the balance below zero, your next top-up offsets it first. See Pricing and credits.spend_limit_reached: the key reached the monthly spending limit its owner set. Raise or remove it at Settings > API keys, or wait forresets_at.account_frozen: resolve the billing issue, or add credits. Credits do not lift a payment dispute hold: contact support.plan_limit_reached: the plan is at a limit and neither credits nor Standby can serve this request. Follow the next step in its message orfixes, or wait for the stated reset or refill. It carriesx-should-retry: falseand noRetry-After. See Coding plan limit.
403 Forbidden
403 Forbidden
A deactivated key returns
403 with the message API key is deactivated. On OpenAI-compatible routes, error.code is auth_error. Replace it with an active key.A terminal key from runinfra login has the same rp_ prefix as a workspace API key but cannot call the API. Use a workspace API key from Settings > API keys and select the model with the model field. See Authentication.An HTML security checkpoint needs a pause before retrying. See HTML 403 security checkpoint.404 Not Found
404 Not Found
model_not_found: the model id does not resolve for your key. Model ids are not OpenAI names, and they are not the title on a model card. Read the live list and pass one of those ids:unknown_endpoint: the path is not a gateway endpoint, usually a doubled /v1 in base_url. The message names the base_url to set.429 Too Many Requests
429 Too Many Requests
Read
Retry-After, wait that long, then send the same request again. The headers name the limit you hit:X-RateLimit-Remaining: 0, noX-Hosted-Limit-Scope: your key’s requests per minute, over a rolling 60-second window. A key with no custom limit follows the workspace default, so a workspace change applies without rotating the key. A custom per-key limit stays in place, clamped to the workspace maximum.X-Hosted-Limit-ScopeandX-Hosted-Limit-Value: hosted admission, concurrency or workspace tokens per minute. It is set by the model’s capacity and by whether the workspace has bought credit, and it applies once the model is busy. The current number is inX-Hosted-Limit-Valueorerror.limit.
429 on a key that has never authenticated before is the connection gate, which bounds how fast new credentials can be presented; roll a new key out on one request before fanning out. See Rate limits.Your first credit purchase raises the request rate and your share of a busy model. Further purchases raise the token tier. See Pricing and credits.Coding plans have separate usage windows and Standby capacity rules. A plan-limit billing refusal is a 402; a temporary Standby capacity refusal is a 429. See Coding plans and Standby.Still stuck
Use Send feedback, the RunInfra logo button at the bottom right of the dashboard, or email support with theX-Request-Id from the failing response.
Related
Errors
Every status and code, with the caller action.
Rate limits
The four layers that can refuse you.
Idempotent retries
Retry without a second charge.