Skip to main content

What is ARouter?

ARouter is a unified LLM API gateway that sits between your application and upstream model providers. Use one API key to access OpenAI, Anthropic, Google Gemini, DeepSeek, Mistral, Groq, and many more — without changing your existing code.

Why ARouter?

Use the official OpenAI, Anthropic, or Gemini SDK you already know. Just change base_url and api_key — zero code changes.
Route requests to 14+ providers through a single endpoint using the provider/model format. No need to manage separate API keys and base URLs for each provider.
Pool multiple API keys per provider with weighted round-robin selection. Automatic health checking, circuit breaking, and failover across keys and providers.
Create scoped API keys with provider whitelists, model restrictions, spending limits, and expiry — all via the management API.
Deploy across multiple regions with intelligent request routing. Requests from latency-sensitive or network-restricted regions are automatically proxied through the nearest edge node to reach upstream providers.
Every request is metered with input/output tokens, latency, and status. Monitor usage per key, per model, per provider in real time.

Supported Providers

ProviderModelsNative SDK Support
OpenAIGPT-4o, GPT-4-Turbo, o1, o3-mini, …OpenAI SDK
AnthropicClaude Sonnet 4, Claude 3.5 Haiku, Claude 3 Opus, …Anthropic SDK
GoogleGemini 2.0 Flash, Gemini 1.5 Pro, …Gemini SDK
DeepSeekDeepSeek Chat, DeepSeek ReasonerOpenAI SDK
xAIGrok-2, Grok-2 MiniOpenAI SDK
MistralMistral Large, Codestral, …OpenAI SDK
GroqLlama 3.3 70B, Mixtral 8x7B, …OpenAI SDK
KimiMoonshot v1 8K/32K/128KOpenAI SDK
MiniMaxabab6.5s, abab6.5, abab5.5MiniMax SDK

How It Works

Your App (any SDK)


ARouter Gateway  ←── one API key, one base URL

    ├──→ OpenAI
    ├──→ Anthropic
    ├──→ Gemini
    ├──→ DeepSeek
    ├──→ Mistral
    └──→ ... more providers
ARouter parses the model field from your request, determines the target provider, selects a healthy API key from the pool, and proxies the request — including streaming responses. All of this happens transparently. Your application code stays exactly the same.