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, a monthly AI credit allowance (a separate pool, see AI Credits), a team seat limit, and a rate limit. Dodo Payments is the Merchant of Record, so taxes/VAT are handled at checkout.
Plans
| Plan | API requests / mo | AI credits / mo | Seats | Rate limit | Price | Over-usage |
|---|---|---|---|---|---|---|
| Free | 1,000 | 100 | 3 | 60 / min | $0 | None (hard cap) |
| Starter | 50,000 | 1,000 | 10 | 120 / min | $9 / mo | $0.05 / 1,000 |
| Growth | 500,000 | 5,000 | Unlimited | 600 / min | $29 / mo | $0.04 / 1,000 |
| Growth Plus | 2,000,000 | 20,000 | Unlimited | 3,000 / min | $79 / mo | $0.04 / 1,000 |
| Business | 10,000,000 | 50,000 | Unlimited | 6,000 / min | $199 / mo | $0.03 / 1,000 |
| Enterprise | Custom | Custom | Unlimited | 12,000+ / min | from $499 / mo | Custom |
Features by plan: MCP access is included on every plan (Free included). Priority support is included from Growth up. OIDC SSO and audit logs are included on Business and Enterprise. Enterprise adds a custom SLA and dedicated support.
Historical data: paid plans can query the full rate history. Free is limited to
the last 30 days, requesting an older ?date= on a Free plan returns 403 forbidden
(the latest rates always work). Upgrade for full history.
The AI endpoint (GET /v1/ai) draws on a separate AI credit pool, it does
not count toward your monthly API request limit. Each AI request consumes
1 AI credit. When your monthly credits run out, calls use any
purchased add-on credits; when those are gone too, AI requests
are blocked with 429 until the next cycle (or you buy more). See
AI Credits for the full model.
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 Free plan’s rate limit.
Over-usage (soft cap)
Paid plans carry an over-usage rate, billed per 1,000 requests above your monthly limit: Starter $0.05, Growth & Growth Plus $0.04, Business $0.03 per 1,000. On those plans, traffic beyond your monthly limit is allowed and billed at that rate instead of blocked, your API keeps serving.
- Only whole thousands are billed. Overage is charged for every completed 1,000 requests over your limit; a partial block isn’t billed. For example, 900 requests over your limit costs nothing; 1,000 over is one unit; 1,900 over is still one unit; 2,000 over is two.
- Billed on your subscription. Over-usage is metered and added to your Dodo Payments subscription invoice automatically each billing cycle (Dodo is the Merchant of Record, so tax is handled at checkout).
- API requests only. AI credits never bill over-usage, they run on a separate, hard-capped pool; when exhausted you top up with add-on credits.
- Free has no over-usage: once its limit is reached, further requests return
429. Enterprise over-usage is custom, set with your account team.
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.
- Free is already a hard cap at its included quota, so this setting doesn’t apply there.
Team seats
Each plan includes a number of team seats, Free allows 3, Starter allows 10, and Growth and up are unlimited. A seat is consumed by every active member and every pending invitation (the owner counts as a seat). When all seats are in use, new invitations are blocked until you remove a member, cancel a pending invite, or upgrade. Resending an existing invitation does not consume an extra seat.
Upgrading & downgrading
- Upgrade / new subscription, pick a plan on the dashboard Billing page; checkout runs through Dodo. The new limits (requests, AI credits, seats, features) apply as soon as the subscription is active.
- Downgrade / cancel, scheduled for the end of the current billing period. You keep your current plan, limits, and live keys until then, after which the org reverts to Free. You can resume before it takes effect.
- Quota resets, your monthly API request count and monthly AI credit allowance reset at the start of each billing cycle. Purchased AI credits are never removed on a reset, upgrade, or downgrade, see AI Credits.
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.