The one-line pick: Take OpenRouter if you want one account and one bill for hundreds of models with zero ops. Take LiteLLM if you want budgets, virtual keys, and logs you run over the provider accounts you already own. Take Cloudflare AI Gateway if you want to wrap the providers you already call with caching, retries, and analytics at the edge — without handing anyone your billing.

Three tools keep landing on the same "LLM gateway" comparison page, and all three answer a different question. One sells you access. One gives you a control plane to run. One sits in front of what you already have and makes it faster and observable. Pick the wrong axis and you'll pay a marketplace fee for governance, or self-host a proxy when all you needed was a cache.

Why route at all#

You rarely call one model for one thing forever. You want a cheap model for classification and a frontier model for the hard turn. You want a fallback when a provider 5xxes mid-agent. You want to know what you spent, cap what a rogue loop can burn, and cache the prompt you send a thousand times an hour. That's routing — and where you put it decides who owns your keys, your bill, and your logs. (For the routing-logic layer itself, see Build a cost-aware model router for your agent.)

The distinction that matters isn't feature count. It's buy a marketplace, run a proxy, or wrap with an edge gateway.

OpenRouter — buy the marketplace#

OpenRouter is a hosted aggregator. You point OpenAI-compatible requests at one endpoint and it fans out to hundreds of models across dozens of providers behind a single key and a single invoice. It does provider failover automatically, and it passes provider token pricing straight through — no per-token markup. The money comes from the edges: roughly a 5.5% fee on credit purchases (a touch less on crypto), and a small per-request fee on bring-your-own-key traffic after a free monthly allowance.

The non-obvious part: you're not paying for tokens, you're paying to never sign the contracts. One relationship instead of seventy. The trade is that the control plane is theirs — your spend caps, key rotation, and activity log all live in their dashboard, on their terms. For a solo build or an early prototype, that's the feature. (It's also why the long tail of models lives here first — see Chinese AI models on OpenRouter: token share vs revenue.)

LiteLLM — run the proxy#

LiteLLM is something you stand up. It's an open-source Python SDK and a self-hostable proxy that gives you one OpenAI-format interface to 100+ providers using your keys. It has a router with retries, fallbacks, and load balancing — but the reason teams deploy it is the control plane: virtual keys scoped per team or app, budgets and rate limits on those keys, caching, and logging piped to Langfuse, LangSmith, or OpenTelemetry.

The software is free; you pay for the compute you host it on and the tokens you consume, with a commercial enterprise tier for SSO and support. The insight here is ownership: LiteLLM doesn't get you access — you already have access. What it gives you is the sentence "this team's key has a $200/month ceiling, that app overflows to a cheaper model, and every call lands in our logs," enforced over contracts that are yours. OpenRouter can't do that over your own Azure or Bedrock commit, because those contracts aren't with OpenRouter. For the crowded field of self-hosted gateways, see Bifrost vs LiteLLM vs Portkey.

Cloudflare AI Gateway — wrap with an edge#

Cloudflare AI Gateway is the odd one out, and the one most people misfile. It doesn't aggregate a catalog and it doesn't resell tokens. It sits at Cloudflare's edge in front of the 20+ providers you already call — change your base URL, keep your provider key — and layers on caching, rate limiting, request retries, model fallback, analytics on tokens and cost, request/error logging, and guardrails (content moderation and DLP scanning). The core features are free; you pay only for extras like persistent logs beyond quota.

Crucially, with bring-your-own-keys you pay the provider directly — Cloudflare never touches your billing. There's a new Unified Billing option that pays third-party usage through your Cloudflare invoice for a ~5% fee, but it's opt-in; the default posture is observe-and-accelerate, not resell. (This is the "free LLM proxy" reputation — unpacked in Cloudflare AI Gateway as a free LLM proxy.) One tell of its true role: OpenRouter is listed as one of its supported providers. It wraps marketplaces; it isn't one.

The decision, by team shape#

These aren't rivals so much as layers — the common 2026 stack runs all three: Cloudflare at the edge, LiteLLM in the middle, OpenRouter as one upstream underneath. Pick by what's actually missing:

The "vs" is a category error. This piece extends the two-way OpenRouter vs LiteLLM with the third axis most stacks are missing. The honest question was never which one wins — it's which layer you're short, and the answer is often more than one.