Exchange rate API on Reddit: the developer questions, answered
The free-exchange-rate-API questions that come up on Reddit, answered straight: the free tier, how fresh the rates are, rate limits, auth, commercial use, and whether the data is good enough to build on.
If you have searched Reddit for a free exchange rate API, the same questions come up in r/webdev, r/forex, and r/node. The short version: there is a genuinely free tier, the first call needs no key, and every response tells you how fresh each rate is. Here are the rest, answered straight.
source and market_session, so you always know how fresh a rate is.What exchangerate.dev is, and what it is not
It is a developer API for foreign exchange rates: 465 pairs over a clean REST endpoint at https://api.exchangerate.dev. Every response carries source, market_session, and a timestamp, so your code always knows how fresh the number is rather than trusting a blanket "real-time" label.
It is not a dealing venue or a source of record. The rates are indicative, published for display and analytics. If you need an executable quote to settle a trade, no public FX API is the right tool, this one included.
Is there really a free tier?
Yes, and it does not need a card. Every plan gets the same data and the same freshness; they differ only by call volume and rate limit.
- Free — $0, 10,000 calls a month at 12 requests a minute. All 465 pairs, full history, MCP included. No card.
- Basic — $10/mo, or $8/mo billed annually. 100,000 calls a month at 120 requests a minute.
- Pro — $30/mo, or $24/mo billed annually. 1,000,000 calls a month at 500 requests a minute, with priority email support.
How fresh are the rates?
Actively traded currencies reprice live, roughly every 60 seconds on trading days; current coverage is reported by the API rather than a fixed marketing count. The rest are daily reference rates from the ECB and FRED. Two fields on every response tell you what you are looking at: source is the data class, and market_session is open, weekend, or interbank_closed.
What are the rate limits?
Twelve requests a minute on Free, 120 on Basic, 500 on Pro. For most apps a short client-side cache, matched to how often a rate actually moves, keeps you comfortably inside the free 10,000 calls. You can read your remaining quota and monthly reset any time with GET /v1/account.
How do I authenticate?
A bearer token. Keys are prefixed exr_live_ and go in the Authorization header. The first call works anonymously, capped per IP, so you can test before signing up. An X-API-Key header is also accepted for platforms that cannot set Authorization.
I already use another FX API
Most FX APIs return a similar base/rates JSON shape, so migrating is typically a base-URL swap plus a quick check of parameter names — not a full rewrite. Where this API differs, it is additive: source, market_session, and notice show up as new fields on the response, nothing existing gets removed.
Can I use it commercially?
Displaying the rates in a product you ship requires the Basic or Pro plan. The Free tier is for internal use — dashboards, backtests, and personal or internal tools — and redistributing the raw feed is not permitted on any tier. Whatever the plan, the rates are indicative: not a dealing quote, and not a regulated source of record. Every response says so in its notice field.
Can my LLM agent use it?
Yes. An MCP server lives at https://api.exchangerate.dev/v1/mcp with five tools — list_currencies, get_rate, convert, get_range, and search_docs — available on every plan including Free. Install it with npx exchangerate-dev-mcp and the agent fetches rates directly, no hand-rolled tool code. The MCP walkthrough has the setup detail.
The shortest call
No key, no dependencies:
You get back JSON with the rates, plus source and market_session so you know exactly how fresh each one is. That single call is enough to put live, honest FX into whatever you are building. A free key raises the limit to 10,000 calls a month and takes a minute.
notice field.