Central Bank Exchange Rate API
Official central bank exchange rates via one API: 54 central banks including the US Federal Reserve, ECB, Bank of England, People's Bank of China, and Central Bank of Sri Lanka (CBSL), with history back to 1999. The published rates required for tax, customs, audits, and compliant invoicing.
Why official rates, not market rates?
Live mid-market rates are right for converters and price displays — that's what our core rates API serves. But tax filings, customs declarations, audits, statutory accounts, and invoicing rules in many countries don't ask what the market said: they require the official rate published by the central bank for a given date. That number is fixed, citable, and never changes after publication.
This API serves exactly those published tables — each response carries the bank's own publication date (rate_date), and anything computed rather than printed by the bank is explicitly flagged.
Covered central banks
Covered — click a country for its bank's rates API. The euro area links to the ECB reference rates.
Live coverage — this table is generated from the same database the API serves, so it always matches /api/v1/central-banks:
| Central bank | Country | Code | Currencies | History from | Latest rates |
|---|---|---|---|---|---|
| Banca d'Italia | Italy | bdi | 163 | January 2016 | 2026-08-11 |
| Dominican Republic | bcrd | 14 | January 1991 | 2026-08-11 | |
| Paraguay | bcp | 27 | January 2016 | 2026-08-11 | |
| Brazil | bcb | 162 | January 2016 | 2026-08-11 | |
| Guatemala | banguat | 4 | January 2004 | 2026-08-11 | |
| Mexico | banxico | 4 | January 1993 | 2026-08-11 | |
| Philippines | bsp | 31 | August 2026 | 2026-08-12 | |
| Indonesia | bi | 25 | January 2016 | 2026-08-11 | |
| Malaysia | bnm | 27 | January 2020 | 2026-08-11 | |
| Albania | boa | 20 | August 2026 | 2026-08-11 | |
| Canada | boc | 27 | January 2017 | 2026-08-11 | |
| United Kingdom | boe | 23 | January 2016 | 2026-08-10 | |
| Ghana | bog | 14 | July 2007 | 2026-08-11 | |
| Israel | boi | 25 | June 1975 | 2026-08-11 | |
| Japan | boj | 1 | January 1998 | 2026-08-07 | |
| South Korea | bok | 52 | May 1964 | 2026-08-12 | |
| Mongolia | bom | 38 | August 2026 | 2026-08-11 | |
| Russia | cbr | 54 | January 2016 | 2026-08-11 | |
| Bulgaria | bnb | 29 | January 2016 | 2026-08-11 | |
| Argentina | bcra | 36 | January 2000 | 2026-08-11 | |
| Azerbaijan | cbar | 51 | January 2016 | 2026-08-11 | |
| Bahrain | cbb | 33 | January 2016 | 2026-08-11 | |
| Bosnia and Herzegovina | cbbh | 18 | January 2016 | 2026-08-11 | |
| Egypt | cbe | 18 | August 2026 | 2026-08-11 | |
| Central Bank of Iceland | Iceland | cbi | 10 | January 2016 | 2026-08-11 |
| Kuwait | cbk | 10 | January 2008 | 2026-08-11 | |
| Nigeria | cbn | 13 | December 2001 | 2026-08-11 | |
| Sri Lanka | cbsl | 55 | May 2010 | 2026-08-11 | |
| Türkiye | tcmb | 24 | January 2020 | 2026-08-11 | |
| Central Bank of Uzbekistan | Uzbekistan | cbu | 75 | December 2015 | 2026-08-11 |
| Central Bank of the UAE | United Arab Emirates | cbuae | 75 | August 2026 | 2026-08-11 |
| Peru | bcrp | 2 | January 2016 | 2026-08-10 | |
| Czech Republic | cnb | 33 | January 2016 | 2026-08-11 | |
| Danmarks Nationalbank | Denmark | dnb | 33 | January 2016 | 2026-08-11 |
| Eurozone | ecb | 41 | January 1999 | 2026-08-11 | |
| Hong Kong | hkma | 22 | January 1981 | 2026-07-31 | |
| Magyar Nemzeti Bank | Hungary | mnb | 34 | January 2016 | 2026-08-11 |
| Singapore | mas | 21 | January 1988 | 2026-08-11 | |
| Poland | nbp | 35 | January 2016 | 2026-08-11 | |
| Cambodia | nbc | 29 | January 2016 | 2026-08-12 | |
| National Bank of Georgia | Georgia | nbg | 42 | August 2026 | 2026-08-12 |
| National Bank of Kazakhstan | Kazakhstan | nbk | 48 | January 2016 | 2026-08-11 |
| Romania | bnr | 40 | January 2005 | 2026-08-11 | |
| Ukraine | nbu | 45 | September 1996 | 2026-08-11 | |
| Norway | norges | 40 | January 2016 | 2026-08-11 | |
| China | pboc | 25 | January 2006 | 2026-08-12 | |
| Australia | rba | 20 | January 2023 | 2026-08-11 | |
| India | rbi | 6 | January 2003 | 2026-08-11 | |
| New Zealand | rbnz | 17 | January 1999 | 2026-08-11 | |
| South Africa | sarb | 23 | January 2000 | 2026-08-11 | |
| Superintendencia Financiera de Colombia | Colombia | sfc | 1 | December 1991 | 2026-08-12 |
| Sweden | riksbank | 33 | January 2016 | 2026-08-11 | |
| Switzerland | snb | 26 | January 1914 | 2026-07-31 | |
| United States | fed | 22 | January 2016 | 2026-08-07 |
More banks are on the roadmap, with a focus on South and Southeast Asian central banks that other providers skip. Need a specific bank? Tell us — coverage requests move banks up the queue.
Quick start
Same API keys and authentication as the rest of AllRatesToday. Ask for a pair with the familiar source/target parameters:
curl "https://allratestoday.com/api/v1/central-bank/cbsl/latest?source=USD&target=LKR" \
-H "Authorization: Bearer art_live_your_key" Response:
{
"bank": "cbsl",
"name": "Central Bank of Sri Lanka",
"rate_date": "2026-07-28",
"source": "USD",
"target": "LKR",
"rate": 336.2512,
"rate_type": "indicative",
"derived": false,
"method": "published"
} Or fetch the bank's full published table:
curl "https://allratestoday.com/api/v1/central-bank/ecb/latest" \
-H "Authorization: Bearer art_live_your_key" On paid plans, any historical date or time series — for example the ECB rate to apply for an invoice dated June 30:
curl "https://allratestoday.com/api/v1/central-bank/ecb/2026-06-30?source=USD&target=EUR" \
-H "Authorization: Bearer art_live_your_key" Published vs derived — always explicit
If a bank doesn't publish your pair directly, the API resolves it from the bank's own table: the inverse pair, or a cross rate via the bank's home currency (USD→JPY from the ECB's EUR→USD and EUR→JPY, for instance). Every such result returns "derived": true and the method used — so you always know whether a number was printed by the central bank or calculated from what it printed. For strict compliance work, use the pairs the bank publishes; the derived flag makes the difference impossible to miss.
Weekends and holidays behave the way auditors expect: the API returns the most recent published table with its true rate_date and a published_on_requested_date flag, because the applicable official rate on a Sunday is Friday's.
What's on which plan
- All plans (including the free tier):
/central-bankscoverage list and/latestfor every covered bank — full table or single pair - Paid plans: any historical date (
/{bank}/2026-06-30) and daily time series (/{bank}/history, up to 5,000 rows per request)
Every central-bank request counts as one API call against the same monthly quota as the core rates API (300/month on the free tier) — one key, one plan, one bill. Central bank rates change once per business day, so caching a day's table locally makes a small quota go a very long way.
Built for
- Invoicing & accounting — apply the official rate for the invoice date, automatically
- Tax & customs — cite the exact published rate authorities expect
- Audit & reporting — reproducible historical tables that never change after publication
- ERP integrations — one JSON API instead of scraping central bank websites
Frequently asked questions
What is a central bank exchange rate API?
An API returning the official rates central banks publish — the fixed daily reference numbers compliance rules cite — rather than live market prices.
How is this different from your live rates API?
The core API serves real-time mid-market rates that move continuously. This API serves the once-per-business-day tables the banks themselves publish. Many workflows need both — same key covers both.
Can I get the rate for a past date, like an invoice date?
Yes — request any date and you get the bank's official table for it, or a daily time series for one pair. Archives run deep: ECB back to 1999, Nigeria to 2001, India to 2003, Sri Lanka to 2010. Historical data is on paid plans; the latest table is free.
What about weekends and holidays?
You get the most recent published table with its true rate_date — the rate that legally applies on non-business days.
Can I get more banks added?
Yes — coverage is expanding, prioritized by request. Ask for the bank you need.
Official central bank rates, one API key
Latest rates on every plan. History back to 1999 on paid plans. Every request counts toward your monthly quota.
Get Free API Key Read the Docs