Guide/Exchange rate API on Reddit
Guide

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.

MMexchangerate.dev·Jun 30, 2026·6 min read

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.

Key points
The free tier is 10,000 calls a month at 12 requests a minute, no card required.
Every response carries source and market_session, so you always know how fresh a rate is.
168 pairs, history back to 1999, and Frankfurter-compatible request params for a near-zero-rewrite migration.
Rates are indicative reference data, published for display and analytics, not a dealing quote.

What exchangerate.dev is, and what it is not

It is a developer API for foreign exchange rates: 168 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 168 pairs, full history, MCP included. No card.
  • Basic — $30/mo, or $24/mo billed annually. 100,000 calls a month at 120 requests a minute.
  • Pro — $50/mo, or $40/mo billed annually. 1,000,000 calls a month at 500 requests a minute, with priority email support.

How fresh are the rates?

Sixteen currencies reprice live, roughly every 60 seconds on trading days. The rest are daily reference rates from the ECB and FRED. You never have to guess which one you are looking at, because two fields on every response tell you: source is the data class, and market_session says whether the FX day is open, weekend, or between sessions.

Field valueWhat it meansWhen it moves
source: liveAggregated spot consensusIntraday (~60s), trading week
source: ecb_dailyOfficial reference fixOnce per business day
market_session: weekendInterbank market closedLive feed paused; reference carries Friday

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.

curl · latest USD ratescopy
curl https://api.exchangerate.dev/v1/latest/USD \
  -H "Authorization: Bearer exr_live_..."

I already use another FX API

The request parameters are Frankfurter-compatible, so for many projects the migration is a base-URL swap with no code rewrite. The migrating-from-Frankfurter guide covers the exact mapping, including where the response adds fields rather than removing them.

Can I use it commercially?

Displaying the rates in a product you ship requires the Pro plan. The Free and Basic tiers are 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:

curl · no keycopy
curl https://api.exchangerate.dev/v1/latest/USD

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.

Indicative, not for settlement
Rates are published for reference, analytics, and display. They are not a dealing quote and should not be used to settle a trade. Every response carries this in its notice field.
MM
exchangerate.dev
Integration guides for developers.

Keep reading

ComparisonFree exchange rate APIs comparedRead GuideMigrating from Frankfurter without a rewriteRead GuideAn FX rates MCP server for LLM agentsRead