Table of contents

If you’ve shipped anything on top of LLMs, you’ve probably heard ”proxy," and "router" used as if they mean the same thing.
They don't.
They solve two different problems, and knowing which one you’re actually reaching for saves you from adding a layer you don't need, or skipping one you do.
Here’s the short version: a proxy moves requests, a router decides where they go. Most production gateways bundle both, but the concerns are separable, and it’s worth telling them apart before you pick a tool.
A proxy sits between your application and one or more model providers and forwards requests.

An LLM proxy typically includes:
A proxy can be completely static by sending everything to one model through a clean, observable, and cacheable layer. It doesn’t decide which model is best for a given request.
You want a proxy when you’re calling more than one provider, when you can’t answer "why did our bill jump last week," or when a single provider outage can take down your product.
An LLM router answers a different question: given this specific request, which model should handle it? Routing is a decision layer, not a transport layer.
It generally comes in two flavors:

LLM routing exists because of economics.
Frontier models often cost ten to fifty times a capable small model, and a large share of production traffic is easy: classification, extraction, short answers. Route that share to a cheaper model and your bill drops without users noticing. Route it badly and quality drops instead, which is why routing is the part you roll out carefully and measure.
You want an LLM router when your traffic is genuinely mixed in difficulty and your spend is large enough that sending everything to the most expensive model is wasteful.
In practice, most tools you’ll evaluate do both.
A proxy that also picks the model per request is what most people mean by an LLM gateway.
Merge Gateway, for example, sits in the request path as a proxy (unified access, logging, budgets, policy controls) and routes by cost, latency, quality, or policy on top of that. LiteLLM is proxy-first with routing rules added. A predictive router is router-first and expects you to bring your own transport.
The useful mental model is layers, not products:
1. Transport layer (proxy): get the request to a provider, observably and resiliently.
2. Decision layer (router): choose which provider and model, per request.
A product can own one layer or both. And your architecture question is which layers you need, not which brand name you've heard most.
Here are some scenarios to help you decide: :
The order matters. You’ll generally want to put in the proxy first, get visibility, then use that visibility to design routing rules. Teams that try to build learned routing before they can even see their own traffic usually end up routing in the dark.
Both a proxy and a router are easier to design once you've watched a few models handle your real prompts side by side, and you don't need a budget to do that.
Most providers, and aggregators like OpenRouter's free tier or Merge Gateway's expose enough free open-weight models to prototype routing decisions before you spend anything.
Run the same hundred production prompts through a small model and a frontier model, compare the outputs, and your routing rules will mostly write themselves.
{{this-blog-only-cta}}
The LLM gateway combines proxy and router capabilities; it provides the transport/control layer for model access and routes requests across models based on cost, latency, quality, or policy.