Compare · unhardcoded vs OpenRouter
compareunhardcoded vs OpenRouter.
OpenRouter is one key to a huge model catalog. unhardcoded is the model decision layer — it routes over your own provider keys by a policy you send with each call, and proves the choice with a trace.
Access to many models, or an enforced model decision.
OpenRouter is about breadth of access through one account. unhardcoded is about where the routing decision lives, whose keys it runs on, and whether you can audit it later.
| unhardcoded | OpenRouter | |
|---|---|---|
| Where the route is decided | Sent with the call (policy_ir) | Provider preferences (OpenRouter picks) |
| Provider keys & billing | Your keys, your pricing | Its own account & pricing |
| Choosing a model | Cheapest that clears your rules | Cheapest route |
| Quality floor | Enforced per call, fails loud | Not enforced |
| Decision audit | Replayable by fingerprint | Generation logs |
| Open & self-host | Open policy_ir, self-host free | Closed |
Figures and routing outcomes elsewhere on this page are illustrative. See the full landscape on the compare hub.
One key to a very wide catalog.
OpenRouter is convenience. One account and one key reach a large multi-provider catalog with automatic route selection. For breadth of access and one-key simplicity, it is hard to beat — you try a new model by changing a string.
One account, many providers
A single key reaches a broad catalog spanning multiple providers — no per-provider onboarding to start experimenting.
Automatic provider selection
OpenRouter picks a route for you, and you can express provider preferences per request when you want a say.
Breadth for prototyping
Swap among many models behind one endpoint while you are still figuring out which one your workload needs.
Your keys, an enforced floor, a replayable decision.
The axis isn't access — it's where the routing decision lives. OpenRouter picks a route through its own account and pricing. unhardcoded runs the decision you sent, over your provider keys and pricing.
Your keys, your pricing
Inference runs on your provider accounts at your negotiated rates. unhardcoded prices per run, not per token, and never resells inference.
An enforced quality floor
A cheapest-route optimizer can land beneath your bar. unhardcoded filters on the bench_intelligence score (a 0..1 catalog field), fails loud when nothing clears it, and never silently downgrades.
A decision you can audit
The routing decision is an open object you control — not a log you read after the fact. Every run leaves a replayable trace: candidates, the rejecting rule, the winner, fallback.
Breadth to explore, policy to decide.
Reach for OpenRouter when one-key access to the widest catalog is the priority and you are still discovering which model a workload needs. Reach for unhardcoded in production — when the app must run on your own keys and pricing, enforce a floor that fails loud, and prove which model answered and why. They aren't exclusive: explore on OpenRouter, then express the production decision as a policy over your own keys, enforced and traced.
See where the model decision lives across the field on the compare hub, or watch spend drop on cut model spend.
Keep the access. Own the decision.
Route over your own provider keys, enforce the quality floor, and replay every model decision from its fingerprint. Join the waitlist and we'll get you set up.