Endpoints
Latest rate
GET https://exchangerates.com/api/index.php?action=public_rate&from=USD&to=EUR
Returns the current mid-market rate for one pair. Cached for a minute.
{"base":"USD","rates":{"EUR":0.9212},"date":"2026-09-11","source":"twelvedata"}
Daily history
GET https://exchangerates.com/api/index.php?action=public_series&from=GBP&to=EUR&days=30
Daily closes for the last 1 to 365 days, keyed by date. Weekends and holidays are absent for fiat pairs, because markets are.
{"base":"GBP","rates":{"2026-08-12":{"EUR":1.1580},"2026-08-13":{"EUR":1.1602}}}
Limits
- 60 requests per minute per IP address. Over that you get HTTP 429 and a
Retry-Afterheader. - Responses carry
Access-Control-Allow-Origin: *, so browser code can call them directly. - Currency codes are three to five upper-case letters. Unknown codes return HTTP 400.
Attribution
Free use requires a visible link to ExchangeRates.com wherever the data is shown, with the words "Rates by ExchangeRates.com" or similar. Every response also carries an X-Attribution header saying the same. That link is the whole price.
Where the numbers come from
The same provider chain that powers this site: TwelveData, Open Exchange Rates, the European Central Bank via Frankfurter, and cross-rates through USD or EUR when a pair is not quoted directly. Each response names its source. Full detail in our methodology.
What this is not
Mid-market rates are the midpoint between buy and sell on the interbank market. Nobody outside a bank trades at exactly that rate. Do not present these numbers as a price your users will get; present them as the benchmark that a fair price is measured against. Our converter shows what the difference costs.
Prefer something ready-made? The embeddable converter and chart need no code at all.