compare / openrouter

OpenRouter routes on its keys.
SBproxy routes on yours.

OpenRouter solved a real problem and solved it well. One account, one balance, and you can call a model you have no contract for, thirty seconds after you decide you want it. That convenience is worth paying for and plenty of teams should. The question is what happens when the workload stops being an experiment: every prompt still crosses infrastructure you do not run, and using your own provider keys costs you a percentage anyway.

summary
Stack
Hosted SaaS, credit ledger in front of provider APIs
Licence
Closed source, hosted only
Shape
Model aggregator and billing layer
Install
Sign up, buy credits, change one base_url
where the products diverge
Whose keys, whose bill
OpenRouter

Buy OpenRouter credits and they pay the provider. Bring your own key and OpenRouter still charges 5% of what the call would have cost on their platform, waived under 1M BYOK requests a month.

sbproxy

Your keys, your provider contracts, your negotiated rates. SBproxy is never in the money path and takes no percentage of anything.

Where the prompt goes
OpenRouter

Every request crosses OpenRouter’s infrastructure. Data policies let you restrict which providers you reach, not whether the traffic transits a third party.

sbproxy

Runs in your VPC, your region, or fully air-gapped. Prompts, embeddings, and guardrail classifiers stay on hardware you control. Nothing phones home.

Catalog reach
OpenRouter

Their site claims 400+ models across 70+ providers, reachable with no procurement. Genuinely the widest instant catalog available, and wider than ours.

sbproxy

72 native provider adapters, 200+ models, and the model field passes straight through so anything a provider ships works without waiting on us. You do need a key for each provider you use.

What else it governs
OpenRouter

Outbound model calls. Not an API gateway, not an MCP gateway, and nothing for traffic arriving at your services.

sbproxy

One runtime for API, MCP, and AI traffic. TLS, WAF, auth, rate limits, and transforms in the same config as routing and budgets.

Running your own weights
OpenRouter

Routes to hosted providers only.

sbproxy

A serve: block resolves the weights, fits a quantization to the GPU you actually have, and supervises vLLM or llama.cpp under the same keys, budgets, and guardrails as any hosted model.

Inbound traffic
OpenRouter

None. OpenRouter sits in front of the calls you make.

sbproxy

Also in front of the calls you receive: signed-agent verification over RFC 9421, metered crawlers with HTTP 402, MCP tools behind OAuth2.

When OpenRouter wins

You are moving fast, you want a model you have no contract for, and you would rather pay a convenience fee than manage provider relationships. For prototypes and small teams that is often the right call.

When sbproxy wins

The traffic is production, the prompts are sensitive, procurement wants direct provider pricing, or you need the same gateway to cover your APIs and MCP tools instead of only your model calls.

sources
  • OpenRouter homepage, July 2026 (400+ models, 70+ providers)
  • OpenRouter BYOK documentation: 5% fee, first 1M BYOK requests per month waived
  • sbproxy docs/providers.md, 72 native adapters
06 / talk to us

Want to talk
before you install?

The gateway is on GitHub under Apache 2.0 and you can install it right now, so nothing here is gated behind a sales call. Use this form for deployment questions, migration scoping, or anything you would rather not file as a public issue.

01
Share your stack. A few details on providers, scale, and the gateway you might be replacing.
02
Talk to engineering. A real conversation about whether SBproxy fits the deployment shape you have in mind. No demo theatre.
03
Get a straight answer. Including when the answer is that SBproxy is the wrong fit and you should run something else.