If you invoice in euros, file EU VAT OSS returns or just want "≈ £42" next to a price, you eventually need exchange rates you can defend. The European Central Bank publishes official euro reference rates every business day, but as XML, only against the euro, and with gaps on weekends and holidays. CurrencyKit turns that into clean JSON you can re-base to any currency.
curl -G "https://currencykit-ecb-exchange-rates-currency-converter.p.rapidapi.com/convert" \
-d amount=250 -d from=USD -d to=GBP -d date=2024-03-29 \
-H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
-H "X-RapidAPI-Host: currencykit-ecb-exchange-rates-currency-converter.p.rapidapi.com"
29 March 2024 was Good Friday, so the ECB published no rate that day. The response says so: requested_date is 2024-03-29, date is 2024-03-28 (the fixing it used), and you get the rate, the inverse rate and the result.
Endpoints
-
/latest?base=GBP&symbols=USD,EUR: today's reference rates, re-based to any of about 30 currencies. -
/convert?amount=100&from=EUR&to=JPY: convert at the latest rate, or at the rate for a pastdate. -
/historical?date=2008-09-15&symbols=USD,EEK: any day back to 4 January 1999, including legacy currencies such as the Estonian kroon. -
/timeseries?start=2026-09-01&end=2026-09-30&symbols=USD: daily rates for charts and month-end revaluation, up to a year per call. -
/currencies: every supported code with its English name.
Rates come straight from the ECB's reference feed and are cached briefly. They're published for information, not for trading, so this is for pricing, invoicing and reporting rather than FX dealing.
MCP
For agents, the MCP server is at https://currencykit-ecb-exchange-rates-currency-converter.p.rapidapi.com/mcp.
There's a free plan. CurrencyKit on RapidAPI
Exchange rate data: European Central Bank.
Top comments (1)
Checked your Good Friday example against the ECB's SDMX feed (EXR/D.USD.EUR.SP00.A): it has 2024-03-28 at 1.0811 and nothing for 03-29, and also nothing for 04-01, so Easter Monday is a second gap with the same fallback to 03-28. 2024-04-02 is the next fixing (1.0749). Worth a line in the docs that
datecan sit several days behindrequested_dateover Christmas and Easter (TARGET closing days), not just on weekends.Two edge cases I'd test: (1)
timeseriesover a month-end that falls on a holiday, since month-end revaluation is the use case you name and callers will want to know whether the last point is carried forward or simply missing; (2) cross rates, e.g. GBP to JPY via two EUR-based fixings, rounded once or twice. The ECB publishes 4 decimals for most currencies, so rounding each leg before dividing moves the 4th decimal on small amounts. Which one does/convertdo?