Skip to main content

Compare · API keys and rate limits

Limitr vs Unkey.

Unkey counts requests per key at its edge. Limitr decides what each customer's call is allowed and worth, in dollars and tokens, against their plan and contract.

The short answer
Unkey

Open-source API keys, rate limiting, and usage credits.

Limitr

Decides every call in your app, with prices, costs, limits, and contract terms, then bills it.

Side by side

What happens when…

The moments that decide it, answered from each product's own docs and pricing.

When…UnkeyLimitr
An agent loop runs away at 2 a.m.Rate limits and credit counts per key, in requests.The call that would break the budget never runs. Task, customer, and org budgets are checked in your app first.
A customer costs more than they payNot part of it.Margin per account is live, and a cap on what an account can cost you stops it before it turns unprofitable.
A customer upgrades their planUpdate the limits on the customer's keys or identity.The plan changes once, and every limit follows.
The service is unreachableVerification happens at Unkey's edge.Nothing to reach. Decisions run in your process and keep working offline.
Open sourceOpen source and self-hostable.The engine and policy format, Apache 2.0.

Checked November 10, 2026. Sources: Unkey docs · Unkey rate limiting. Something out of date? Tell us.

Architecture

Where the decision happens.

The difference most comparisons skip: where a call is allowed, priced, and capped, and when.

Unkey
A call to their service

Your app asks their API before acting, over the network, and decides what to do when that call fails.

Your app
over the network
Their APIanswers or fails
then
Model or APIthe cost
Limitr
Inside your app, before the call

The engine runs natively in your process and decides every call in about a millisecond: allowed, priced at your cost and your price, and held to the contract. Usage goes to Limitr Cloud in the background.

Your appLimitr engine inside
decided first
Model or APIthe cost
in the background
Limitr Cloudledger and invoices

The gap

What you'd still build on Unkey.

Teams pair Unkey with code of their own. With Limitr, that part is the product.

With Unkey, you still build
With Limitr, you get
Limits that know the plan and contract
Limits tied to the customer's plan and contract
Dollars and tokens, not only request counts
Limits in any unit: requests, tokens, dollars, seats
Pricing and billing each call
Metering, ledger, and invoices for your customers

Choose Unkey for issuing and verifying API keys.

Using both

Unkey checks the key. Limitr decides the call.

Verify who is calling with Unkey, then let Limitr decide what that customer may do and what it costs.

Unkey
  • Key issuing and verification
  • Edge rate limits
Limitr
  • Plan, contract, and budget checks
  • Pricing and billing each call

Switching

From Unkey to Limitr.

No migration day. Limitr runs next to what you have until the numbers match.

Keep Unkey for issuing and verifying API keys.
Run Limitr in observe mode next to Unkey and compare the numbers on real traffic.
Switch enforcement on. Customers come over as they appear, with no migration day.

Common questions

Limitr vs Unkey, answered.

Yes. Burst and steady rate limits per customer are part of the policy, next to caps, budgets, and a global backstop.

Unkey counts requests per key at its edge. Limitr decides what each customer's call is allowed and worth, in dollars and tokens, against their plan and contract. Choose Unkey for issuing and verifying API keys.

Unkey: a call to their service. Your app asks their API before acting, over the network, and decides what to do when that call fails. Limitr: inside your app, before the call. The engine runs natively in your process and decides every call in about a millisecond: allowed, priced at your cost and your price, and held to the contract. Usage goes to Limitr Cloud in the background.

Keep Unkey for issuing and verifying API keys. Run Limitr in observe mode next to Unkey and compare the numbers on real traffic. Switch enforcement on. Customers come over as they appear, with no migration day.

See it on your own pricing.

npm i @formata/limitr