API Reference
Billing & Limits
How CurrencyCore plans, monthly usage limits, rate limits, and over-usage pricing work — including exactly which requests count toward your limit.
CurrencyCore bills per organization. Each org is on one plan, which sets a monthly request limit and a rate limit. Dodo Payments is the Merchant of Record, so taxes/VAT are handled at checkout.
Plans
| Plan | Monthly requests | Rate limit | Price | Over-usage |
|---|---|---|---|---|
| Hobby (free) | 10,000 | 60 req / min | $0 | — (hard cap) |
| Pro | 250,000 | 600 req / min | $29 / mo | $0.40 / 10k |
| Scale | 2,000,000 | 3,000 req / min | $99 / mo | $0.25 / 10k |
| Business | 10,000,000 | 6,000 req / min | $299 / mo | $0.15 / 10k |
| Enterprise | Custom | 12,000+ req / min | Custom | Contact us |
What counts toward your monthly limit
Only successful requests count. A request is metered against your monthly limit only when it returns HTTP 2xx. Any request that errors (4xx/5xx) is not counted.
Counted (2xx) — including these “no data” responses, which still succeed:
- A normal conversion.
- A conversion where a target’s PPP couldn’t be applied (
ppp.errorset on that target — the FX result is still returned). - A request whose
datehas no FX data (emptyresults+ a top-levelmessage).
Not counted (errored):
400 invalid_input— bad/missing params, or a futuredate.400 unknown_currency— an unrecognizedfrom/tocurrency.400 missing_ppp_countries—ppp=truewithout a country on every currency.401/403— auth problems.429— rate-limited or monthly quota exceeded.
Rate limits
Rate limits cap how many requests you can make per 60-second window, per the
table above. Unlike the monthly limit, the rate limit applies to every request
regardless of status — errored calls and retries still consume your window
budget. When you exceed it you get 429 rate_limited with a Retry-After
header. Test keys always use the Hobby rate limit.
Over-usage (soft cap)
Paid plans carry an over-usage rate (for example, $0.25 per 10,000 requests
on Scale). On those plans, traffic beyond your monthly limit is billed at
that rate instead of blocked — your API keeps serving. The Hobby plan has no
over-usage rate: once its limit is reached, further requests return 429.
Hard usage cap
On paid plans, over-usage is billed automatically — convenient, but it means a traffic spike can run up your bill. A hard usage cap lets you set a ceiling so that, once you reach it, further requests are blocked for the rest of the billing period instead of being billed as over-usage.
- Off by default. Turn it on from the Billing page in your dashboard (owners and admins only).
- You choose the number. It defaults to your plan’s monthly request limit — keep it there to allow no over-usage at all, or set it higher to allow a bounded amount of over-usage before requests stop.
- When you hit the cap, requests return
429(the same status as an exceeded quota) until the period resets at the start of the next month. - Heads-up emails. We email you when you reach 80% and 100% of your cap.
- Hobby is already a hard cap at its included quota, so this setting doesn’t apply there.
Need a custom plan?
For higher volume, custom rate limits, annual commitments, SLAs, or anything that doesn’t fit the tiers above, we’ll tailor a plan to your usage. Contact us and we’ll set you up — your custom plan then appears on your dashboard’s Plans page, visible only to your organization.