# exchangerate.dev Developer API for foreign exchange rates. Major currency pairs update every ~60 seconds on trading days — most other pairs too — across 465 currency pairs over a clean REST API, with ECB/FRED daily reference for the rest. Every response carries source, market_session, and a timestamp so you always know how fresh a rate is. ## Why this exists Most FX APIs freeze at each daily central-bank fix and return that stale value for hours. exchangerate.dev updates its actively-traded currencies intraday — about every 60 seconds through the trading week — alongside ECB and FRED reference rates for the rest. The result is the same clean REST surface developers already know, with honest freshness metadata (source + market_session) on every call. ## What we serve - 465 unique currency pairs from the 31 currencies /v1/currencies returns (31×30 = 930 directional crosses), triangulated through USD where not natively quoted; 168+ curated pair pages on the website - Full pair table: https://exchangerate.dev/coverage - Live intraday updates (~60s) on trading days for actively-traded currencies; ECB/FRED daily reference for the rest — the per-currency `sources` map on every response says which is which - Daily reference rates from ECB (eurozone fix) and FRED (currencies not on ECB) - Historical daily series back to 1999-01-04 (ECB series start) - Per-pair decimal precision (JPY at 2–3 dp; majors at 4–5 dp) - Derived crosses flagged with derived:true and a derivation_bps_max field - Frankfurter-compatible request parameters for zero-rewrite migration - MCP server (HTTP + stdio) on every plan including Free ## Who this is for - Developers building fintech apps, payment tools, or dashboards that need intraday-fresh rates with explicit market_session context - AI agent builders who want MCP-native FX context without writing a REST client - Quantitative researchers backtesting strategies over historical daily series - Indie developers prototyping fast — free tier, no credit card required ## Pricing - Free: $0/mo — 10,000 calls/month, 12 req/min, live intraday rates for actively-traded currencies + ECB/FRED daily-reference for the rest, all 465 pairs, MCP included - Basic: $10/mo — 100,000 calls/month, 120 req/min, same live intraday freshness (~60s on trading days) as every other tier - Pro: $30/mo — 1,000,000 calls/month, 500 req/min, live rates, priority email support Annual billing saves ~20% (Basic $8/mo, Pro $24/mo billed yearly). ## SLA No formal uptime guarantee or credits at v1 launch. Status page at exchangerate.dev/status. ## Data sources Reference tier (safe to attribute): ECB daily fix and FRED daily reference rates. These are the clean, central-bank-published series, updated once per business day. Live tier: aggregated market data + public reference rates. Updates on short intervals (~60s) through the trading week; on weekends the live field carries the last intraday consensus, and market_session: weekend says so. The source field in every response tells you which tier a rate comes from (live, ecb_daily, or fred_daily) — never a vendor name. All rates are indicative — not for settlement, regulated trading, or use as a source of record. The market_session field (open / weekend / interbank_closed) makes session context explicit on every call. ## Commercial use Free: internal use only (dashboards, backtests, personal bots). Basic and Pro: commercial use permitted. Redistribution of our feed as your own feed is not permitted on any plan. ## MCP server Native Model Context Protocol server — HTTP at api.exchangerate.dev/v1/mcp, or a stdio bridge. Five tools: list_currencies, get_rate, convert, get_range, search_docs. Available on every plan including Free. Add to Claude Desktop or Cursor in about 30 seconds. Install: npx exchangerate-dev-mcp Source on GitHub: https://github.com/nusantara-ventures/exchangerate-dev-mcp MCP config: { "mcpServers": { "exchangerate": { "command": "npx", "args": ["exchangerate-dev-mcp"], "env": { "EXCHANGERATE_API_KEY": "YOUR_KEY" } } } } ## API REST over HTTPS. Base URL: https://api.exchangerate.dev. Versioned at /v1/. No key required for data endpoints — an unauthenticated call is served at the Free tier's rate (12 req/min, IP-bucketed). Send Authorization: Bearer YOUR_KEY to authenticate as your own account and get your tier's limit + usage attributed to your quota. The one exception is /v1/account, which needs a Supabase session token (a different auth path), not an API key. Key endpoints: GET /v1/latest/{BASE} Latest rates for all pairs or a filtered subset GET /v1/{YYYY-MM-DD}/{BASE} Historical snapshot for a given date GET /v1/convert/{FROM}/{TO}/{AMT} Single currency conversion POST /v1/convert Batch conversions (N pairs = N calls) GET /v1/rate/{slug} Single-pair quote by slug (e.g. eur-usd) GET /v1/range Daily time-series over a date window (keyset pagination) GET /v1/currencies Full pair list with name, decimals, derived flag GET /v1/account Your quota, tier, and monthly reset timestamp (needs a session token, not an API key) Example: curl https://api.exchangerate.dev/v1/latest/USD \ -H "Authorization: Bearer YOUR_KEY" { "result": "success", "base": "USD", "source": "live", "market_session": "open", "timestamp": "2026-06-16T14:02:11Z", "rates": { "EUR": 0.92450, "GBP": 0.78910, "JPY": 157.32 }, "sources": { "EUR": "live", "GBP": "live", "JPY": "live" } } OpenAPI spec: https://api.exchangerate.dev/openapi.json Docs: https://exchangerate.dev/docs Auth reference (agent-readable): https://exchangerate.dev/auth.md Pricing: https://exchangerate.dev/pricing ## Agent Skills Six Agent Skills teaching correct FX-rate usage patterns (weekend/holiday gaps, forward-fill, portfolio translation, multi-currency pricing, accounting rate-of-record, dashboard widgets) — install with `npx skills add nusantara-ventures/exchangerate-skills`. Repo: https://github.com/nusantara-ventures/exchangerate-skills Discovery index: https://exchangerate.dev/.well-known/agent-skills/index.json ## Tutorials Step-by-step integration guides (copy-pasteable code, free-tier-fit notes) at https://exchangerate.dev/learn: - Live exchange rates in Excel (Power Query M) — https://exchangerate.dev/learn/excel-exchange-rates - Live exchange rates in Google Sheets (=FXRATE via Apps Script) — https://exchangerate.dev/learn/google-sheets-exchange-rates - Currency conversion in JavaScript and Node.js — https://exchangerate.dev/learn/javascript-currency-conversion - Exchange rates in Python — https://exchangerate.dev/learn/python-exchange-rates - FX rates over MCP for LLM agents — https://exchangerate.dev/learn/fx-rates-mcp-server-llm-agents - Beat a random walk at FX forecasting (Python out-of-sample test) — https://exchangerate.dev/learn/beat-the-random-walk-fx-forecasting - We tested it on five currency pairs (results and reproducibility) — https://exchangerate.dev/learn/we-tried-to-beat-the-random-walk ## Comparisons Honest, fact-based, last-reviewed comparisons of exchangerate.dev vs each alternative FX rate API: - vs Frankfurter — https://exchangerate.dev/vs/frankfurter - vs Fixer — https://exchangerate.dev/vs/fixer - vs Open Exchange Rates — https://exchangerate.dev/vs/openexchangerates - vs Currencylayer — https://exchangerate.dev/vs/currencylayer - vs ExchangeRatesAPI — https://exchangerate.dev/vs/exchangeratesapi - vs ExchangeRate-API — https://exchangerate.dev/vs/exchangerate-api - vs ExchangeRate.host — https://exchangerate.dev/vs/exchangerate-host ## Related developer APIs - goldprice.dev — gold, silver, and copper pricing API for developers: spot + futures, per-country physical dealer prices, and an options x prediction-markets probability surface for gold and silver. goldprice.dev consumes exchangerate.dev's live FX cross-rates to price physical gold in local currencies. ## Full product manual (for LLM ingestion) https://exchangerate.dev/llms-full.txt