Free exchange rates API
Official reference rates for 151 currencies, as published by the European Central Bank and Banca d'Italia on every working day since 1999.
No key, no signup. Any currency can be the base.
| Currency | 1 EUR | Change | Last 30 days | By |
|---|---|---|---|---|
| USD US dollar | 1.1193 | −0.11% | ECB | |
| GBP Pound sterling | 0.83728 | −0.05% | ECB | |
| JPY Japanese yen | 175.51 | −0.26% | ECB | |
| CHF Swiss franc | 0.9227 | +0.17% | ECB | |
| CNY Chinese yuan renminbi | 7.466 | −0.17% | ECB | |
| INR Indian rupee | 106.272 | +0.02% | ECB | |
| CAD Canadian dollar | 1.5665 | −0.38% | ECB | |
| AUD Australian dollar | 1.5939 | −0.26% | ECB | |
| AED UAE dirham | 4.1106 | −0.11% | BdI | |
| NGN Nigerian naira | 1504.7869 | +0.62% | BdI |
Where every number comes from
Every rate is the figure a central bank published for that day. Rates for other bases are calculated from them.
European Central Bank
Euro reference rates for 29 currencies, published in Frankfurt around 16:00 CET each working day.
- First day
- 4 January 1999
- Latest
- 23 October 2026
Banca d'Italia
Daily rates against the euro for 121 more currencies, published in Rome after the ECB.
- First day
- 4 January 1999
- Latest
- 23 October 2026
1,118,424 published rates on 7,121 working days. Where both banks publish a currency, the ECB's figure is used.
Try a request
Two endpoints cover everything. Both return JSON and take the same two parameters.
GET /api/latest- The newest day both banks have published.
GET /api/2025-06-02- Any day since 1999. Weekends and holidays return the previous working day.
Add base=USD to quote against another currency and symbols=GBP,JPY to return only some. Read the full reference.
GET https://theratesapi.com/api/latest?base=USD&symbols=EUR
curl "https://theratesapi.com/api/latest?base=USD&symbols=EUR"
const res = await fetch('https://theratesapi.com/api/latest?base=USD&symbols=EUR')
const data = await res.json()
import requests
data = requests.get('https://theratesapi.com/api/latest?base=USD&symbols=EUR').json()
151 currencies, each one a possible base
Every currency on the latest day. Retired ones, such as the Cypriot pound, still answer for the days they were published.
- AED UAE dirham
- AFN Afghan afghani
- ALL Albanian lek
- AMD Armenian dram
- AOA Angolan kwanza
- ARS Argentine peso
- AUD Australian dollar
- AWG Aruban florin
- AZN Azerbaijani manat
- BAM Bosnia and Herzegovina convertible mark
- BBD Barbados dollar
- BDT Bangladeshi taka
- BHD Bahraini dinar
- BIF Burundian franc
- BMD Bermudian dollar
- BND Brunei dollar
- BOB Bolivian boliviano
- BRL Brazilian real
- BSD Bahamian dollar
- BTN Bhutanese ngultrum
- BWP Botswana pula
- BZD Belize dollar
- CAD Canadian dollar
- CDF Congolese franc
- CHF Swiss franc
- CLP Chilean peso
- CNY Chinese yuan renminbi
- COP Colombian peso
- CRC Costa Rican colón
- CUP Cuban peso
- CVE Cape Verdean escudo
- CZK Czech koruna
- DJF Djiboutian franc
- DKK Danish krone
- DOP Dominican peso
- DZD Algerian dinar
- EGP Egyptian pound
- ERN Eritrean nakfa
- ETB Ethiopian birr
- EUR Euro
- FJD Fiji dollar
- FKP Falkland Islands pound
- GBP Pound sterling
- GEL Georgian lari
- GHS Ghanaian cedi
- GIP Gibraltar pound
- GMD Gambian dalasi
- GNF Guinean franc
- GTQ Guatemalan quetzal
- GYD Guyanese dollar
- HKD Hong Kong dollar
- HNL Honduran lempira
- HTG Haitian gourde
- HUF Hungarian forint
- IDR Indonesian rupiah
- ILS Israeli shekel
- INR Indian rupee
- IQD Iraqi dinar
- ISK Icelandic krona
- JMD Jamaican dollar
- JOD Jordanian dinar
- JPY Japanese yen
- KES Kenyan shilling
- KGS Kyrgyz som
- KHR Cambodian riel
- KMF Comorian franc
- KRW South Korean won
- KWD Kuwaiti dinar
- KYD Cayman Islands dollar
- KZT Kazakhstani tenge
- LAK Lao kip
- LBP Lebanese pound
- LKR Sri Lankan rupee
- LRD Liberian dollar
- LSL Lesotho loti
- LYD Libyan dinar
- MAD Moroccan dirham
- MDL Moldovan leu
- MGA Malagasy ariary
- MKD Macedonian denar
- MMK Myanmar kyat
- MNT Mongolian tugrik
- MOP Macanese pataca
- MRU Mauritanian ouguiya
- MUR Mauritian rupee
- MVR Maldivian rufiyaa
- MWK Malawian kwacha
- MXN Mexican peso
- MYR Malaysian ringgit
- MZN Mozambican metical
- NAD Namibian dollar
- NGN Nigerian naira
- NIO Nicaraguan córdoba
- NOK Norwegian krone
- NPR Nepalese rupee
- NZD New Zealand dollar
- OMR Omani rial
- PAB Panamanian balboa
- PEN Peruvian sol
- PGK Papua New Guinean kina
- PHP Philippine peso
- PKR Pakistani rupee
- PLN Polish zloty
- PYG Paraguayan guaraní
- QAR Qatari riyal
- RON Romanian leu
- RSD Serbian dinar
- RWF Rwandan franc
- SAR Saudi riyal
- SBD Solomon Islands dollar
- SCR Seychellois rupee
- SDG Sudanese pound
- SEK Swedish krona
- SGD Singapore dollar
- SHP Saint Helena pound
- SLE Sierra Leonean leone
- SOS Somali shilling
- SRD Surinamese dollar
- SSP South Sudanese pound
- STN São Tomé and Príncipe dobra
- SVC Salvadoran colón
- SYP Syrian pound
- SZL Swazi lilangeni
- THB Thai baht
- TJS Tajikistani somoni
- TMT Turkmenistani manat
- TND Tunisian dinar
- TOP Tongan pa'anga
- TRY Turkish lira
- TTD Trinidad and Tobago dollar
- TWD New Taiwan dollar
- TZS Tanzanian shilling
- UAH Ukrainian hryvnia
- UGX Ugandan shilling
- USD US dollar
- UYU Uruguayan peso
- UZS Uzbekistani som
- VES Venezuelan bolívar soberano
- VND Vietnamese dong
- VUV Vanuatu vatu
- WST Samoan tala
- XAF Central African CFA franc
- XCD East Caribbean dollar
- XCG Caribbean guilder
- XDR IMF special drawing rights
- XOF West African CFA franc
- XPF CFP franc
- YER Yemeni rial
- ZAR South African rand
- ZMW Zambian kwacha
- ZWG Zimbabwe gold
Questions
Where do the rates come from?
From two central banks. The European Central Bank publishes euro reference rates for about 30 currencies, and Banca d'Italia publishes daily rates against the euro for about 120 more. Where both publish a currency, the ECB's figure is used. Rates for any other base are calculated from these and rounded to 6 decimal places.
How often are the rates updated?
Once every working day. The ECB publishes around 16:00 CET and Banca d'Italia publishes after it; a new day appears in the API once both have published. Weekends and holidays return the previous working day.
Do I need an API key?
No. There is no signup and no key: send a plain HTTPS GET request and read the JSON. CORS is open, so it works from browser JavaScript too.
Can I use it in my project for free?
Yes. The service is free. Please cache responses and don't request more often than you need. The rates are reference rates for information only, so read the terms of use before relying on them for payments.
Why is my bank's rate different?
Banks and payment providers add a margin and quote separate buy and sell prices. These are central bank reference rates, close to the market middle rate when they were set, so they won't match a bank's rate exactly.
How far back does the history go?
To 4 January 1999, the euro's first working day. Currencies that were later replaced, such as the Cypriot pound or the old Venezuelan bolivar, are available for the days they were published.