TL;DR
What it does: Official daily exchange rates from the Czech National Bank (CNB). All rates in CZK (Czech koruna) in JSON format. Updated every working day after the Prague fixing.
Quick start: curl "https://api.cnb.cz/cnbapi/exrates/daily"
No API key needed - just call the URL
Overview
The Czech National Bank (Česká národní banka) provides official exchange rates for the Czech koruna (CZK) through a free JSON API. This is the authoritative source for forex rates used by banks, businesses, and accounting systems across the Czech Republic and Central Europe. The API covers major global currencies including EUR, USD, GBP, CHF, and many regional currencies like PLN, HUF, and RON. As the central bank of Czechia (an EU member state), CNB publishes rates daily after the foreign exchange market fixing in Prague. All rates are expressed in CZK with an optional amount multiplier for currencies where the raw rate would be very small.
Live Example
Here's the exact URL to call and the real response you'll get:
The actual response you get:
{
"rates": [
{"validFor":"2026-06-12","country":"Austrálie","currency":"dolar","amount":1,"currencyCode":"AUD","rate":14.705},
{"validFor":"2026-06-12","country":"EMU","currency":"euro","amount":1,"currencyCode":"EUR","rate":24.170},
{"validFor":"2026-06-12","country":"Kanada","currency":"dolar","amount":1,"currencyCode":"CAD","rate":14.938},
{"validFor":"2026-06-12","country":"Polsko","currency":"zlotý","amount":1,"currencyCode":"PLN","rate":5.690},
{"validFor":"2026-06-12","country":"Švýcarsko","currency":"frank","amount":1,"currencyCode":"CHF","rate":26.224},
{"validFor":"2026-06-12","country":"USA","currency":"dolar","amount":1,"currencyCode":"USD","rate":20.894},
{"validFor":"2026-06-12","country":"Velká Británie","currency":"libra","amount":1,"currencyCode":"GBP","rate":28.000},
{"validFor":"2026-06-12","country":"Japonsko","currency":"jen","amount":100,"currencyCode":"JPY","rate":13.043},
{"validFor":"2026-06-12","country":"Maďarsko","currency":"forint","amount":100,"currencyCode":"HUF","rate":6.848}
]
}
What does this data mean?
The CNB API returns a JSON array of exchange rates. Here's what each field means, using the EUR and JPY rates as examples:
- validFor
- Date these rates are valid for:
2026-06-12(updated each working day in Prague) - country
- Country or region name in Czech:
EMU(Eurozone),USA,Japonsko(Japan) - currency
- Local currency name in Czech:
euro,dolar,jen(yen),koruna,libra - currencyCode
- ISO 4217 currency code:
EUR,USD,JPY,GBP,CHF,PLN,HUF - amount
- How many units the rate is for:
1for most currencies, but100for JPY, HUF, PHP, etc. So 100 JPY = 13.043 CZK (about 0.13 CZK per yen) - rate
- The exchange rate in CZK. For EUR with amount=1: 1 EUR = 24.170 CZK. For JPY with amount=100: 100 JPY = 13.043 CZK
How to use this API
JavaScript Example
fetch('https://api.cnb.cz/cnbapi/exrates/daily')
.then(res => res.json())
.then(data => {
data.rates.forEach(rate => {
console.log(`${rate.currencyCode}: ${rate.rate} CZK (per ${rate.amount})`);
});
});
Python Example
import requests
url = "https://api.cnb.cz/cnbapi/exrates/daily"
response = requests.get(url)
data = response.json()
for rate in data['rates']:
print(f"{rate['currencyCode']}: {rate['rate']} CZK (per {rate['amount']})")
cURL Example
curl "https://api.cnb.cz/cnbapi/exrates/daily" | jq '.rates[] | {code: .currencyCode, rate: .rate, amount: .amount}'
Frequently Asked Questions
- Is the CNB exchange rate API free?
- Yes, the Czech National Bank provides this data for free with no registration or API key required. The JSON endpoint at
api.cnb.czis publicly accessible. - How often are rates updated?
- Every working day (Monday to Friday) after the foreign exchange fixing in Prague, typically around 11:00 AM local time. Weekend and public holiday rates reflect the last available working day.
- What is the base currency?
- All rates are in CZK (Czech koruna). For example,
1 EUR = 24.170 CZK. Some currencies use an amount multiplier (e.g., 100 JPY) for cleaner numbers. - What currencies are available?
- Over 30 currencies including EUR, USD, GBP, CHF, JPY, AUD, CAD, SEK, NOK, DKK, PLN, HUF, RON, TRY, CNY, KRW, INR, and others relevant to the Czech and Central European economy.
- Why do some currencies have amount > 1?
- For currencies with very small per-unit values (like JPY, HUF, KRW), the rate is quoted per 100 or 1000 units to provide a more readable number. Always check the
amountfield. - Can I use this commercially?
- Yes. CNB data is public and free to use for any purpose. Many Czech banks, e-shops, and accounting software rely on these official daily rates.
API Details
- Base URL
https://api.cnb.cz/cnbapi/exrates/daily- Documentation
- cnb.cz
- Category
- Finance
- Authentication
- None required - completely free and open
- Geographic Coverage
- Czech Republic (Prague), European Union, global currencies - over 30 currencies quoted against CZK
- Rate Limit
- No strict limit advertised, but be reasonable with frequent polling. Rates only change once per working day.
- CORS
- Enabled - works directly from browser fetch calls