Comparing OpenRouter's Per-Model Pricing Against Direct Provider Rates
Use this cheatsheet when finance asks "are we paying a markup?" or when you choose among OpenRouter credits, BYOK, and direct provider SDKs.
Search across all documentation pages
Use this cheatsheet when finance asks "are we paying a markup?" or when you choose among OpenRouter credits, BYOK, and direct provider SDKs.
Token list prices on OpenRouter are designed to pass through underlying provider rates (no inference markup). Platform economics still differ because of credit purchase fees, BYOK fees after free allowances, and multi-provider price variance for the same open model.
All fee percentages and thresholds below are version-sensitive - verify at build on OpenRouter FAQ / pricing and provider price pages.
GET https://openrouter.ai/api/v1/models and the provider's price sheet before a board deck.| Claim | Typical reality (verify at build) | What to check |
|---|---|---|
| OpenRouter vs first-party Claude/GPT/Gemini list rate | Same pass-through rate for that provider endpoint | Model page + provider pricing |
| Same open model on many hosts | Diverges by host (and quantization) | Per-provider rows on the model page |
:floor / sort: "price" | Routes toward cheapest eligible host | Still same model capability band |
| Cached tokens / reasoning tokens | Separate line items when providers bill them | usage breakdown fields |
| Tools, web, file plugins | May add surcharges beyond base tokens | Activity / analytics component metrics |
| Cost component | OpenRouter credits | BYOK via OpenRouter | Direct provider only |
|---|---|---|---|
| Inference token price | Pass-through list | Provider bills you at your contract rate | Provider contract |
| Platform fee on funding | Card ~5.5% (min fee applies); crypto ~5% | You still hold OpenRouter credits for non-BYOK and BYOK fees | None (provider billing) |
| BYOK fee | N/A | First ~1M BYOK requests/month free on standard plans, then ~5% of equivalent OpenRouter list cost (enterprise allowances differ) | N/A |
| Multi-provider failover | Included in routing | Included | You build it |
| Unified invoice / analytics | Yes | Partial (provider + OpenRouter fee) | Per vendor |
| Data-policy routing controls | Yes (data_collection, zdr, privacy UI) | Yes | Per vendor knobs |
Example mental math (illustrative only):
| Scenario | Match or diverge? | Why |
|---|---|---|
| Single closed model, first-party host only | Match list | Pass-through |
| Closed model, Azure/Bedrock/Vertex vs first-party | May diverge | Different seller rates |
| Llama / Mixtral / Qwen multi-host | Diverge often | Hosts compete on price/speed |
| Your enterprise discount at OpenAI | Direct may win | Discount not always mirrored on gateway list |
| You need 4 vendors' models in one agent | OpenRouter often wins fully loaded | One integration + fallback |
| Ultra-high BYOK volume past free tier | Compare 5% fee vs building your own router | Fee vs eng cost |
| Choose | If you need |
|---|---|
| OpenRouter credits | Fast multi-model access, automatic provider failover, simple ops |
| OpenRouter + BYOK | Keep provider contracts/rate limits, still want unified API |
| Direct provider SDK | Single vendor, deepest discount, no gateway dependency |
| Hybrid | Direct for the 1 huge steady model; OpenRouter for long-tail + fallback |
import os
import requests
# Snapshot OpenRouter catalog prices (prompt/completion per token or per million - inspect payload)
r = requests.get("https://openrouter.ai/api/v1/models", timeout=60)
r.raise_for_status()
models = {m["id"]: m.get("pricing") for m in r.json().get("data", [])}
for slug in [
"openai/gpt-4o-mini",
"anthropic/claude-sonnet-4.5",
"meta-llama/llama-3.3-70b-instruct",
]:
print(slug, models.get(slug)) # compare to provider docs manuallyDo not automate scraping of provider marketing pages without permission. Maintain an internal table updated on a schedule.
| Pitfall | Effect | Mitigation |
|---|---|---|
| Multi-turn tool loops | Tokens multiply | Max turns + cheap-tier steps |
| Huge system prompts | Prompt dominates bill | Caching, trim tools |
| Fallback to pricier host | Unit price jumps mid-incident | Monitor provider field + cost |
| Small credit top-ups | Min fee inflates effective % | Larger, fewer top-ups or invoicing |
| Ignoring free-tier limits | 429s cause retries/waste | Paid cheap models in prod |
Documented position: inference is pass-through at provider list rates. Revenue comes from credit purchase fees and BYOK fees after free allowances (verify FAQ at build).
Funding fees, BYOK fees, plugin surcharges, cache write pricing, reasoning tokens, retries, and currency rounding all stack on top of base rates.
Only if your direct rate plus BYOK fees (after free requests) undercuts credit-based pass-through plus purchase fees - and you value the gateway features enough.
Yes if backup hosts have different rates for the same model. You pay for the endpoint that actually served the request.
Report three lines: token inference, OpenRouter platform/BYOK fees, and internal reliability value (outages avoided). Collapsing them hides trade-offs.
They are free of token charges but rate-limited (for example low daily request caps without sufficient credit history). Unsuitable as the sole production path for busy agents.
On the OpenRouter model page endpoint table and related APIs. Catalog /models gives model-level pricing; endpoint detail may require UI or endpoints APIs (verify at build).
Yes. Invoicing, fee discounts, higher BYOK free bands, and EU routing can move the fully loaded math. Re-run the comparison under your contract.
Related: Cost-Based Routing: Sending Cheap Tasks to Cheap Models
Related: Setting Spend Limits and Usage Caps per API Key
Related: Monitoring OpenRouter Spend and Usage in Real Time
Related: How OpenRouter's Provider Fallback Actually Protects Uptime
Stack versions: Pins from the category manifest (verify at build): OpenRouter (~315+ models, July 2026 pricing/fees); LangGraph 1.0+; CrewAI 1.14+; Microsoft Agent Framework 1.0; Vercel AI SDK 6; Pydantic AI (latest); LlamaIndex (latest); OpenAI Agents SDK (latest + MCP); MCP (Linux Foundation governance); A2A (HTTP+SSE+JSON-RPC 2.0); Solana
@solana/web3.js+@solana/spl-token.
Reviewed by Chris St. John·Last updated Jul 16, 2026