Status codes
Notes
- 402 is a pre-check. The gateway verifies a positive balance before calling the provider, so an empty balance fails fast and costs nothing.
- 502 carries the upstream message. When a provider rejects a request (e.g. its
own rate limit or billing), the gateway forwards the provider’s message under
error.messagewithtype: upstream_error. - Streaming errors. If an error happens mid-stream, the gateway emits a final SSE event describing it and then closes the stream.
/v1/messagesuses Anthropic’s error shape. The Messages surface returns{"type": "error", "error": {...}}with Anthropic error types instead of the table above —not_found_errorfor an unknown model,api_errorfor upstream/provider failures — andmax_tokensis required there (400if missing).
Not supported yet
- The documented endpoints only. The gateway implements Chat Completions,
Responses, Messages, Gemini-native
generateContent, image generation, embeddings, and audio transcription. Other OpenAI / Anthropic endpoints (assistants, batches, fine-tuning, files, text-to-speech, etc.) are not implemented, and models do not produce speech or file output. - Audio and video input is modality-gated. Only models that declare the modality accept it — today the Gemini family; see Audio & video input.
- No reranking endpoint.
- A fixed model catalog on the shared (operator) key path. See Models & pricing for what’s live. You can route any supported model through your own credential instead — see BYOK.
- No rate limiting. The gateway does not impose request or token rate limits;
your effective limits are the upstream providers’ (surfaced as
502 upstream_error). Spend is bounded by your credit balance.

