OpenRouter Pricing: Token Costs, Credit Fees and BYOK

Every fee OpenRouter charges: the 5.5% card fee ($0.80 minimum), the BYOK tail now metered in dollars not requests, and why "no markup" holds per token.

OpenRouter Pricing: Token Costs, Credit Fees and BYOK

TL;DR — OpenRouter’s “no markup on inference” claim holds: the per-token catalog rates match each provider’s published rates, verified 2026-08-31, including Claude Opus 5 at $5/$25. The real money lives in two places most teams miss — a 5.5% credit-card platform fee ($0.80 minimum, so small top-ups effectively pay 10-20%) and a 5% BYOK fee, which is no longer metered per request but per dollar: free through $25,000 of list-price inference a month, then 5% of the excess. Calculate the fee that applies to your payment method and BYOK usage; token rates alone do not determine the total.

OpenRouter has spent the last year arguing it doesn’t mark up model prices. That’s mostly correct, mostly defensible, and almost beside the point. The fees you actually pay never show up on a per-token basis. They get pulled out of your wallet at top-up time, or at the request-count tail end of BYOK, or in the fine print of a Stripe transaction that converts your EUR to USD before OpenRouter ever sees it.

This guide runs the breakdown the marketing page doesn’t: every fee re-verified against openrouter.ai/pricing and the OpenRouter FAQ on 2026-08-31, plus the scenarios where the published rates lie to you by omission.

What OpenRouter actually charges (the real fee stack)

These charges have different triggers. A credit purchase fee and a BYOK overage are not three layers automatically stacked on every dollar; use the applicable rows below.

LayerFeeTriggerSource
Platform fee (credit card)5.5%, $0.80 minimumEvery time you top up credits with a cardopenrouter.ai/pricing
Platform fee (crypto)5%Every time you top up with cryptoopenrouter.ai/announcements/simplifying-our-platform-fee
Inference (per token)Passthrough at provider’s published rateEvery API callopenrouter.ai/pricing
BYOK overage5% of equivalent OpenRouter priceOnly above $25,000 of list-price inference per month (pay-as-you-go), or $200,000 on Enterpriseopenrouter.ai/pricing

The inference passthrough is the one OpenRouter defends loudest, and it’s the one they actually deliver. The two platform fees are where they make money. They’re transparent about that, but transparent in the way utility companies are transparent: documented, just buried.

The $0.80 minimum is the fee that hurts indie devs

Here’s what nobody tells you about the platform fee: it has a $0.80 floor. So if you top up $5 to test a project, you pay $0.80 in fees — that’s 16%, not 5.5%. Top up $10? Still $0.80, so 8%. The fee doesn’t normalize to 5.5% until you’re loading roughly $15+ at a time.

If your workflow is “deposit a fiver, see how far it goes,” OpenRouter is charging you a lot more than the marketing page implies. The fix is boring: load $50 or $100 at a time and stop thinking about it.

The “Claude has 100% markup” claim is no longer true

If you’ve Googled OpenRouter pricing in the last twelve months you’ve probably hit a forum post or blog claiming Claude carries a 100% markup on OpenRouter — $6/$30 versus $3/$15 direct. That number was real once. It isn’t anymore.

Pulled from OpenRouter’s own /api/v1/models endpoint on 2026-08-31: Claude Opus 5 at $5 per million input tokens, $25 per million output. That is the exact rate Anthropic publishes directly. Opus 4.8 and Opus 4.7 sit at the same $5/$25, Sonnet 5 at $2/$10, Haiku 4.5 at $1/$5. Passthrough holds across the whole family.

One nuance the catalog exposes and the marketing page does not: the -fast variants are priced separately. claude-opus-5-fast lists at $10/$50, double the standard route. That is a different served product, not a markup, but if you route by name-prefix matching you can pick it up by accident.

The “100% markup” lore comes from an earlier era when OpenRouter’s Anthropic provider didn’t pass through the full enterprise rate. It got fixed quietly. Treat any pricing analysis written before late 2025 as archaeologically interesting, not actionable.

There’s an asterisk worth knowing about. OpenRouter routes between multiple providers per model. If a provider raises their rate, OpenRouter’s listed rate moves too. The promise is “no markup,” not “lowest possible price.” You’re getting the published rate, not necessarily the best available rate.

BYOK: the meter changed, and almost nobody noticed

Most write-ups on this page — including earlier versions of this one — say BYOK is free for the first 1 million requests per month. That is no longer how it works, and the current FAQ goes out of its way to say so:

BYOK has a plan-dependent free allowance measured by list-price inference cost, not request count. Pay-as-you-go includes $25,000 per month with no BYOK fee, while Enterprise includes $200,000. Usage above the allowance has a fee of 5% of what the same model and provider would normally cost on OpenRouter.

Two consequences, and they point in opposite directions from the old advice.

The trap mostly disappeared for normal teams. Under the request-count rule, a coding-agent workload could blow past a million cheap calls without spending much money, and get billed for it. Under the dollar rule, cheap calls are cheap. A thousand developers hammering a $0.15/M model all month will not come close to $25,000 of list-price inference. If you built a request-count alarm off an older guide, it is now measuring the wrong thing.

It got sharper at the top. List price is OpenRouter’s price for the same model and provider, not what your negotiated enterprise contract charges you. A team on a discounted direct Anthropic agreement can be well under $25,000 in real spend while the list-price meter says otherwise — the allowance is computed at rack rate. Check the meter, not your invoice.

The practical move is the same either way: instrument it. /api/v1/usage is still the endpoint, but track the dollar figure, not the call count.

Hidden costs you won’t see in the calculator

The platform fee and BYOK fee are documented. These are the ones that aren’t.

Stripe FX conversion (non-USD cards)

If you top up from a non-USD card, your bank’s Stripe conversion adds 1-3% on top of the 5.5% platform fee. OpenRouter doesn’t quote prices in any currency other than USD, and the conversion happens before the platform fee, so you’re paying ~7-8% all-in to load credits from a EUR or JPY card.

This isn’t OpenRouter’s fault, it’s how Stripe works, but the marketing page won’t show it to you. Watch your statement, not the OpenRouter dashboard.

Failed routing retries (rare but real)

OpenRouter’s failover routes between providers when one returns an error. If the first provider charged you partial tokens before failing (some do), you’re billed for both attempts. The retry behavior is documented in the OpenRouter FAQ, but the bill aggregation isn’t obvious. You see one combined charge.

In practice this costs less than 0.5% over a month of normal traffic. Not a scam, just not zero, and it doesn’t show on the per-token quoted rate.

Free models that route to paid providers

OpenRouter lists “free” variants of some open-source models. These call a sponsored provider under a hard daily cap, and the cap is tied to whether you have ever paid: 50 free-model requests per day with no purchased credits, 1,000 per day once you have bought at least $10 of credits. The pricing page states the same 50/day figure in its Free column. There is also an openrouter/free router model that picks a free backend for you, which inherits the same limits.

Two numbers still circulate from older guides — “20 req/min, 200 req/day” — and neither matches what OpenRouter documents today. When limits get hit, calls may queue, drop, or (if you have configured fallback) silently re-route to a paid provider at full rate.

If you build production traffic on free-tier routes, monitor the actual provider returned in the response headers. The cost difference between “free” and “fallback paid” can be 100x.

Concrete cost scenarios (the bills that matter)

Let’s run real numbers. Prices re-verified 2026-08-31; assumes Claude Opus 5 at $5/M input + $25/M output.

Scenario 1: Solo dev, $50/month Claude Code usage

  • Token cost: $50.00
  • Platform fee on $50 top-up (5.5%): $2.75
  • Total: $52.75
  • Effective overhead: 5.5%

This is the case OpenRouter’s marketing is built around, and it’s honest. You pay roughly what you’d pay direct, plus convenience tax.

Scenario 2: Indie hacker testing 5 models, $5 top-ups each

  • 5 separate $5 top-ups, $0.80 minimum each: $4.00 in fees
  • Token usage: $25.00
  • Total: $29.00 for $25 of compute
  • Effective overhead: 16%

The lesson: don’t top up small. Consolidate to one $25+ load.

Scenario 3: Startup with 50 devs running agents, BYOK with Anthropic

  • Token cost billed by Anthropic: $4,200/month
  • List-price equivalent on OpenRouter: ~$4,200 (same model, same provider, passthrough)
  • Against the $25,000 pay-as-you-go allowance: 17% consumed
  • BYOK fee: $0
  • Total: $4,200/month

This is where OpenRouter is genuinely free. You are paying Anthropic for compute and using OpenRouter for routing and observability at no marginal cost.

Scenario 4: Same startup at 3x growth

  • Token cost billed by Anthropic: $12,600/month
  • List-price equivalent: ~$12,600, still under $25,000
  • BYOK fee: $0
  • Total: $12,600/month

Under the old request-count rule this scenario cost $320/month in BYOK fees. Under the dollar rule it costs nothing. If you are budgeting from a guide written before the change — again, including earlier versions of this one — you are provisioning for a fee you will not be charged.

Scenario 5: The size you actually have to be

To pay a BYOK fee worth noticing on pay-as-you-go, you need list-price inference past $25,000/month, and the 5% applies only to the excess:

  • $30,000/month list price → 5% of $5,000 → $250/month
  • $100,000/month list price → 5% of $75,000 → $3,750/month

At that scale the conversation is an Enterprise plan (allowance $200,000) rather than an optimization. The trap that is left is the one nobody labels: the allowance is metered at OpenRouter list price, not at your negotiated rate. A team with a serious direct discount can be spending $18,000 and metering $28,000.

When OpenRouter pricing wins, and when it loses

OpenRouter wins when you genuinely want multi-model access from one API key and your top-up volume is large enough to amortize the $0.80 minimum. For a typical mid-sized team running Claude + GPT + Gemini in parallel for different tasks, the 5.5% is a reasonable price for not maintaining three vendor relationships. BYOK is now free through $25,000/month of list-price inference, which covers most of these teams entirely.

OpenRouter loses when you’ve already standardized on one provider with a negotiated rate (you’re paying their list price + 5.5%), when your top-ups are small (the $0.80 floor eats you), when your BYOK meter runs at rack rate well above what you actually pay your provider, or when you need the absolute lowest per-token price and would rather route through a discount aggregator. OpenRouter optimizes for breadth and convenience. If you’re optimizing for cost-per-token at scale, the answer is usually a different aggregator or going direct.

Alternatives worth pricing against OpenRouter

Three aggregators commonly compared head-to-head on cost in 2026, aggregators being one of the four types of LLM API provider and each type charging for something different:

  • ofox.ai — Single-key, OpenAI-compatible aggregator. Per-model rates are published in the catalog and there is no fee on credit purchases, so what you load is what you can spend. The catalog runs 141 models as of 2026-08-31, including Claude Opus 5 and Sonnet 5, the GPT-5.6 Sol / Terra / Luna line, Gemini 3.7 Flash, DeepSeek V4 Pro and V4 Flash, Grok 4.6, Qwen3.8 Max, GLM-5.3, and Kimi K3.
  • Direct provider accounts — Cheapest on a per-token basis if you’re using one provider, zero overhead. Cost is the engineering time to maintain N billing relationships.
  • Cloud-vendor inference (AWS Bedrock, GCP Vertex) — Includes Claude/Llama/etc., with cloud-vendor billing and quota mechanics. Usually 10-20% more expensive per token but folds into existing cloud spend.

For a deeper comparison see our OpenRouter alternatives guide and is OpenRouter reliable for production? — both look at non-pricing axes that matter when the difference between aggregators isn’t dollars.

How to verify these numbers yourself

I lean toward making readers do their own math because pricing changes:

  1. Pull the current rate for any model from openrouter.ai/pricing (catalog) and confirm against the provider’s published price.
  2. Run a $10 test top-up and check the actual credit balance you receive. The difference is your real platform fee.
  3. Make 10 real calls and inspect the response headers. They show which underlying provider was hit. Calculate effective cost from your billing dashboard and compare to the quoted rate.
  4. If using BYOK, hit the /api/v1/usage endpoint and track list-price dollars, not request count, against the $25,000/month allowance. An alarm on call volume will not fire when the fee starts.

That’s the work. There’s no shortcut, no spreadsheet that survives a model-version bump, and no “true” overhead percentage that applies to every team.

Bottom line for 2026

OpenRouter’s pricing is honest, layered, and easy to misread. The marketing emphasizes the inference passthrough (which is real) and de-emphasizes the platform fee (which is also real, just non-zero). Calculate credit-purchase fees, minimums and any BYOK overage separately. “No markup on inference” does not mean every payment or routing service is free. It’s just the cost showing up in a different column than you expected.

The one thing to re-check if you read about OpenRouter fees more than a couple of months ago: BYOK is metered in dollars of list-price inference now, not in requests. Almost every guide on the open web, this one included until today, had it the other way round.

For broader cost framing across providers, see how to reduce AI API costs in 2026, the LLM API selection decision matrix, and the $30/month AI coding stack guide. All of which assume you’ve already done the homework this post laid out.

Sources

Platform fees are one of six ways an invoice diverges from a rate card. The others are here.

Frequently Asked Questions

Does OpenRouter mark up model prices on top of provider rates?
Officially no — the catalog rates match each provider's published rate. The cost OpenRouter does add lives in two places: a 5.5% platform fee on credit-card top-ups ($0.80 minimum), and a 5% BYOK fee once your bring-your-own-key usage passes $25,000 of list-price inference in a month on pay-as-you-go ($200,000 on Enterprise).
Is the 100% Claude markup story still true in 2026?
No. That claim circulates on older blog posts, but the OpenRouter listing for Claude Opus 5 is $5/M input and $25/M output, identical to Anthropic's direct API — same for Opus 4.7 and 4.8, still listed at the same rate. If you saw the 100% markup quoted anywhere written before late 2025, treat it as historical.
What's the cheapest way to top up an OpenRouter account?
Use crypto for a 5% platform fee instead of 5.5%, and top up in larger chunks because the $0.80 minimum gets brutal on small purchases — a $5 top-up effectively costs 16% in fees, not 5.5%.
When is OpenRouter actually more expensive than going direct?
Small top-ups (the $0.80 minimum dominates) and workloads that already have a single-provider account with negotiated rates. The BYOK tail used to belong on this list when it was metered per request; at a $25,000/month list-price allowance it now only bites genuinely large accounts. Compare applicable fees with your own integration and operating costs.