LLM Router

Send every request to the right AI model

Rules, decision models and fallbacks decide which of 700+ models serves each request, with compliance enforced before anything reaches a provider.

simplefallbackcomplexfallback
Start
dynamic / support
Decision model
Jev 1.13
2 outputs
Model
GPT OSS 120BCerebras
Model
Gemini 3.8 FlashGoogle
Model
Claude Opus 5.5Model routes
Model
GPT-6 AstraModel routes
End

Click a model to swap it. Your code keeps calling dynamic/support.

Trusted by 50k+ developers and companies serving 10M+ users

Aixia
evroc
GetTested
Instabridge
LexBox
Ping Payments
Steep
Svenska Bostäder

How routing works

Build a route once, call it like a model

Start with a model and its fallbacks, let a decision model pick the branch, order the providers, and keep every call inside your policy.

Call a route like any model

Put a model and its fallbacks in a dynamic route on Control Plane, and your code calls it as dynamic/<name> like any other model. Swap the models, test the route and publish a new version without touching your code.

  • Callable as dynamic/<name>
  • Test a route before you publish it, and roll back to any version
Read how dynamic routes work
fallbackfallback
Start
dynamic / support
Model
Claude Sonnet 5.5AWS Bedrock
Model
Claude Sonnet 5.5Google Cloud
Model
GPT-6.1 SolAzure
End

Let a decision model pick the route

A decision model like Kev, Jev or Clef reads each prompt and picks the branch, with a probability for every case, so simple prompts go to fast models and hard ones to frontier models. Around it, branch on request metadata, split traffic, rank a pool on price or speed, and score answers with an LLM judge.

  • 14 decision models to pick the branch, like Kev, Jev and Clef
  • Decisions from $0.01 per 1M input tokens
Compare decision models
simplefallbackcomplexfallback
Start
dynamic / support
Decision model
Jev 1.13
2 outputs
Model
GPT OSS 120BCerebras
Model
Gemini 3.8 FlashGoogle
Model
Claude Opus 5.5Model routes
Model
GPT-6 AstraModel routes
End

Fall back to another model when one fails

Send backup models with any Chat Completions call, in the same models field OpenRouter uses. If a model fails, the next one in the list answers. To change the chain without touching code, put it in a route instead.

  • Backup list on every plan
  • Only the successful attempt is billed
Read how fallbacks work
modelsbackup list · 3 models
aws/claude-sonnet-5-5
Primary
vertexai/claude-sonnet-5-5-eu
Fallback 1
openai/gpt-6.1-sol
Fallback 2
If a model fails, the next one in the list answers

Call a model by name and any provider that serves it can answer

Call a model by its bare name and Opper fails over across every provider that serves it. A routing rule on Control Plane sets who goes first: round robin by default, or cheapest, fastest, highest throughput, or a weighted blend. A conversation stays on its provider while the prompt cache is warm, and every response names the provider that served it and why.

  • Failover to the next provider on every plan
  • Provider order on Control Plane
See how the routing rule works
RoutingDocs ↗
without a ruleround robin
pool ordercheapest first
on failurenext provider
↳batch-jobshighest throughput

Block any request that breaks your EU or retention rules

A model access rule on Control Plane restricts where requests may go: EU-only providers, specific regions or countries, or zero data retention providers only. Anything that breaks it is rejected at the gateway before it reaches a provider, so residency requirements are enforced rather than documented. The gateway runs in Stockholm and Opper is certified against ISO/IEC 27001:2022.

  • EU-only, by country, or zero data retention only
See the model access rule
Model accessDocs ↗
data policyzero data retention
inferenceEU
storageEU
↳supportanthropic, openai

Route across 700+ models with one API key, pay as you go with no subscription.

Decision models to pick the route

Small models that answer a typed question with a probability, so a route picks its branch quickly and at a fraction of a chat model's price.

View all decision models →
LexBox: litigation AI with 30× throughput headroom

Case Study

LexBox: litigation AI with 30× throughput headroom

LexBox moved from one provider's quota to pooled capacity across providers and EU regions on Opper: 200,000 tokens per minute became 6 million, with the data sovereignty guarantees law firms ask for.

FAQ

LLM router FAQ

What is an LLM router?

+
An LLM router is the layer between your application and model providers that decides which model, and which provider behind it, serves each request. Routing decisions can weigh cost, latency, quality, availability, region, or task type, so applications stop hardcoding a single model. Opper routes across 700+ models with explicit primitives: decision models, fallbacks, routing rules and model access rules.

What is the difference between an LLM router and an LLM gateway?

+
The router is the decision, which model serves this request, and the gateway is the broader layer around it that adds authentication, observability, and an audit trail. On Opper the router lives inside the LLM gateway, so a routing decision, its fallbacks, and its trace all share one API.

What is a semantic router?

+
The term covers two different things. The original semantic-router library routes requests to intents and tools rather than models, it embeds example utterances and picks the closest route by vector similarity without waiting for an LLM. The vLLM semantic-router project applies the idea to model selection instead, a programmable routing layer that picks a model path per request to improve quality, cost, and latency. On Opper you get both styles: rules and fallbacks for explicit routing, and a decision model that classifies the prompt itself, so every decision stays inspectable.

What is a model router?

+
A model router picks a suitable model for each prompt, usually to save cost on easy requests while keeping quality on hard ones. Microsoft Foundry ships one as a product, a trained language model you deploy that routes each prompt to the most suitable underlying model in real time. The alternative is explicit routes you can read, test, and audit. That is the approach Opper takes, with a decision model such as Kev or Jev picking the branch and returning a probability for it.

Can a decision model route my requests?

+
Yes. In a dynamic route, a decision model such as Kev, Jev or Clef reads the prompt, picks one of up to ten cases you describe, and the route sends the request down that branch. Decision models answer typed questions with a probability instead of writing text, so the classification is quick and inexpensive. You can also call them directly in the OpenAI Decisions or TypeSafe System One format and route in your own code.

Does an LLM router add latency?

+
Very little. A plain model call adds only the gateway hop, and a route with a decision model adds one short classification call before the model answers. Where the request lands matters more: the same open model can run at very different speeds on different providers, which is why a routing rule can put the fastest provider first.

How do fallback chains work?

+
Send backup models in the models field of a Chat Completions call, the same shape OpenRouter uses, or build the chain into a dynamic route on Control Plane and call the route by name. If a model fails, the next one in the list answers, and only the successful attempt is billed. Models served by more than one provider are pooled automatically, so a single name keeps working when one provider is busy, and measured any-route availability is published on our uptime page.

Can I split traffic between models?

+
Yes. A traffic split in a dynamic route sends a percentage of requests down each branch, with the weights adding up to 100, which is how you canary a new model or compare two. Each response's routing metadata names the route version and the model that answered.

Does a conversation stay on the same provider?

+
Yes, while it pays off. When a model is served by several providers, a conversation keeps going to the provider that served it while its prompt cache is warm, so cached prompts stay cheap. A routing rule's provider order applies to new conversations.

Can an LLM router enforce region or compliance rules?

+
Yes, on Opper this is a model access rule. You can restrict routing to EU-only providers, to specific regions or countries, or to zero data retention providers, and anything that breaks a rule is rejected at the gateway before it reaches a provider. That turns residency requirements into routing policy instead of a code review checklist.

Do I need a trained router model, or are rules enough?

+
Learned routers are real, RouteLLM reports up to 85% cost reduction while maintaining 95% GPT-4 performance by training a router between a strong and a cheap model, and they shine at high volume with stable traffic patterns. Most production teams still start with explicit rules and fallbacks because they are debuggable, auditable, and cheap to change. Opper follows that model and adds decision models to pick the branch, so a route can branch on the prompt without you training a router of your own.

How is an LLM router different from a load balancer?

+
A load balancer spreads identical requests across identical backends. An LLM router makes two extra decisions, which model should answer, and which provider serving that model should get the request. Opper does both, some models are served by more than one provider and the gateway balances across them, so a single model name keeps working even when one provider is busy.

Is there an open-source LLM router?

+
Several. RouteLLM trains a router between a strong and a cheap model, the vLLM Semantic Router is a programmable routing layer, and LiteLLM's router is the common self-hosted gateway choice. They fit when you want to run the infrastructure yourself. Opper is hosted in the EU, so decision-model routing, fallbacks and compliance rules come without a service to run.

Which LLM router is best?

+
It depends on what you optimize for. OpenRouter is a popular hosted router with a large catalog, LiteLLM is the common self-hosted choice if you can run the infrastructure, and RouteLLM fits teams that want learned cost-quality routing. Opper is built for production teams that want European hosting and explicit routing, decision models, fallbacks, routing rules and model access rules across 700+ models, with no markup on provider prices and a 3% fee on credit purchases.

Ready to route across 700+ models?

Start with one API call and keep every routing decision a config change

Get startedBrowse models