{"openapi":"3.1.0","info":{"title":"Czech National Bank (CNB) FX API","version":"1.0.0","description":"Live official Czech foreign-exchange fixing, served straight from the Czech National Bank's open API — no key, nothing cached. The CNB declares one official rate per currency every working day. The rates endpoint returns the whole daily fixing — around 30 world currencies against the koruna (CZK), each with the country, the unit amount it is quoted per and the rate — and accepts a date so you can pull the official fixing for any past working day. The currency endpoint returns one currency's rate, normalised to the koruna value of a single unit, for the latest day or a chosen date — the US dollar fixed around 21 koruna in mid-2026. The convert endpoint turns an amount from any currency into any other, crossed through the koruna at the official fixing, on the latest day or a historical date. The history endpoint returns a currency's official rate over the last several working days. Everything is the central bank's own published fixing, live, nothing stored. This is the Czech koruna FX layer for any forex, payments, e-commerce, accounting or treasury app operating in Czechia and Central Europe — and a clean source of historical FX by date. Distinct from the ECB, Fed, Bank of Canada, Norges Bank, Bank of England, Brazil and Poland central-bank APIs — this is the koruna and the CNB daily fixing, queryable by date. 5 endpoints, no key on our side.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/cnb-api","description":"oanor gateway"}],"tags":[{"name":"CNB"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/convert":{"get":{"operationId":"get_v1_convert","tags":["CNB"],"summary":"Convert between currencies via CZK","description":"","parameters":[{"name":"from","in":"query","required":true,"description":"Source currency","schema":{"type":"string"},"example":"USD"},{"name":"to","in":"query","required":true,"description":"Target currency","schema":{"type":"string"},"example":"EUR"},{"name":"amount","in":"query","required":false,"description":"Amount (default 1)","schema":{"type":"string"},"example":"100"},{"name":"date","in":"query","required":false,"description":"YYYY-MM-DD (optional)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"to":"EUR","via":"CZK","from":"USD","note":"crossed through CZK at the CNB official fixing","rate":0.866749,"amount":100,"result":86.674917,"source":"Česká národní banka","to_czk":24.24,"from_czk":21.01,"valid_for":"2026-06-08"},"meta":{"timestamp":"2026-06-09T11:38:19.897Z","request_id":"a1ca005d-507e-4c87-b5cf-a40c18f716c8"},"status":"ok","message":"Conversion retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/currency":{"get":{"operationId":"get_v1_currency","tags":["CNB"],"summary":"One currency rate (latest or by date)","description":"","parameters":[{"name":"code","in":"query","required":true,"description":"Currency code","schema":{"type":"string"},"example":"USD"},{"name":"date","in":"query","required":false,"description":"YYYY-MM-DD for a past working day","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"base":"CZK","code":"USD","note":"USD in CZK: 1 USD = unit_rate CZK","rate":21.01,"amount":1,"source":"Česká národní banka","country":"USA","currency":"dollar","unit_rate":21.01,"valid_for":"2026-06-08"},"meta":{"timestamp":"2026-06-09T11:38:20.037Z","request_id":"c9db97bc-2480-491e-84a9-a4c2c3d6833c"},"status":"ok","message":"Currency retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/history":{"get":{"operationId":"get_v1_history","tags":["CNB"],"summary":"A currency rate over recent days","description":"","parameters":[{"name":"code","in":"query","required":true,"description":"Currency code","schema":{"type":"string"},"example":"USD"},{"name":"days","in":"query","required":false,"description":"Calendar days back (1-21, default 7)","schema":{"type":"string"},"example":"7"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"base":"CZK","code":"USD","count":4,"source":"Česká národní banka","history":[{"date":"2026-06-03","unit_rate":20.829},{"date":"2026-06-04","unit_rate":20.81},{"date":"2026-06-05","unit_rate":20.759},{"date":"2026-06-08","unit_rate":21.01}]},"meta":{"timestamp":"2026-06-09T11:38:20.388Z","request_id":"0f4b171d-0795-4f15-bc97-6e191fedc1db"},"status":"ok","message":"History retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/rates":{"get":{"operationId":"get_v1_rates","tags":["CNB"],"summary":"CNB daily fixing (all currencies)","description":"","parameters":[{"name":"date","in":"query","required":false,"description":"YYYY-MM-DD for a past working day","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"base":"CZK","note":"rate = CZK per `amount` units of the currency; unit_rate = CZK per 1 unit","count":30,"rates":[{"code":"AUD","rate":14.856,"amount":1,"country":"Australia","currency":"dollar","unit_rate":14.856},{"code":"BRL","rate":4.082,"amount":1,"country":"Brazil","currency":"real","unit_rate":4.082},{"code":"CAD","rate":15.079,"amount":1,"country":"Canada","currency":"dollar","unit_rate":15.079},{"code":"CNY","rate":3.098,"amount":1,"country":"China","currency":"renminbi","unit_rate":3.098},{"code":"DKK","rate":3.243,"amount":1,"country":"Denmark","currency":"krone","unit_rate":3.243},{"code":"EUR","rate":24.24,"amount":1,"country":"EMU","currency":"euro","unit_rate":24.24},{"code":"HKD","rate":2.681,"amount":1,"country":"Hongkong","currency":"dollar","unit_rate":2.681},{"code":"HUF","rate":6.815,"amount":100,"country":"Hungary","currency":"forint","unit_rate":0.06815},{"code":"ISK","rate":16.88,"amount":100,"country":"Iceland","currency":"krona","unit_rate":0.1688},{"code":"XDR","rate":28.757,"amount":1,"country":"IMF","currency":"SDR","unit_rate":28.757},{"code":"INR","rate":21.951,"amount":100,"country":"India","currency":"rupee","unit_rate":0.21951},{"code":"IDR","rate":1.156,"amount":1000,"country":"Indonesia","currency":"rupiah","unit_rate":0.001156},{"code":"ILS","rate":7.202,"amount":1,"country":"Israel","currency":"new shekel","unit_rate":7.202},{"code":"JPY","rate":13.134,"amount":100,"country":"Japan","currency":"yen","unit_rate":0.13134},{"code":"MYR","rate":5.158,"amount":1,"country":"Malaysia","currency":"ringgit","unit_rate":5.158},{"code":"MXN","rate":1.206,"amount":1,"country":"Mexico","currency":"peso","unit_rate":1.206},{"code":"NZD","rate":12.243,"amount":1,"country":"New Zealand","currency":"dollar","unit_rate":12.243},{"code":"NOK","rate":2.221,"amount":1,"country":"Norway","currency":"krone","unit_rate":2.221},{"code":"PHP","rate":34.052,"amount":100,"country":"Philippines","currency":"peso","unit_rate":0.34052},{"code":"PLN","rate":5.713,"amount":1,"country":"Poland","currency":"zloty","unit_rate":5.713},{"code":"RON","rate":4.623,"amount":1,"country":"Romania","currency":"leu","unit_rate":4.623},{"code":"SGD","rate":16.316,"amount":1,"country":"Singapore","currency":"dollar","unit_rate":16.316},{"code":"ZAR","rate":1.275,"amount":1,"country":"South Africa","currency":"rand","unit_rate":1.275},{"code":"KRW","rate":1.375,"amount":100,"country":"South Korea","currency":"won","unit_rate":0.01375},{"code":"SEK","rate":2.229,"amount":1,"country":"Sweden","currency":"krona","unit_rate":2.229},{"code":"CHF","rate":26.379,"amount":1,"country":"Switzerland","currency":"franc","unit_rate":26.379},{"code":"THB","rate":64.088,"amount":100,"country":"Thailand","currency":"baht","unit_rate":0.64088},{"code":"TRY","rate":45.577,"amount":100,"country":"Turkey","currency":"lira","unit_rate":0.45577},{"code":"GBP","rate":28.066,"amount":1,"country":"United Kingdom","currency":"pound","unit_rate":28.066},{"code":"USD","rate":21.01,"amount":1,"country":"USA","currency":"dollar","unit_rate":21.01}],"source":"Česká národní banka","valid_for":"2026-06-08"},"meta":{"timestamp":"2026-06-09T11:38:20.538Z","request_id":"f313033e-0219-4ad6-8cb8-35d7af64c5bb"},"status":"ok","message":"Rates retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"source":"Česká národní banka cnbapi (live)","service":"cnb-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/rates":"The CNB daily fixing — all currencies vs CZK (date=YYYY-MM-DD for a past day).","GET /v1/convert":"Convert between any two currencies via CZK (from=USD&to=EUR&amount=100&date=).","GET /v1/history":"A currency's official rate over recent working days (code=USD&days=7).","GET /v1/currency":"One currency's rate (code=USD, date= optional)."},"description":"Live official Czech foreign-exchange fixing from the Czech National Bank's open API: the whole daily fixing of ~30 world currencies against the koruna (CZK), queryable for any past working day by date; one currency's rate normalised to the koruna value of a single unit; currency conversion between any two currencies crossed through the koruna, on the latest or a historical date; and a currency's official rate over recent working days. Live, no key, nothing stored. Distinct from the ECB, Fed, Bank of Canada, Norges Bank, Bank of England, Brazil and Poland central-bank APIs — this is the koruna and the CNB daily fixing, queryable by date.","upstream_status":"ok"},"meta":{"timestamp":"2026-06-09T11:38:20.660Z","request_id":"4edd7740-6eaa-486f-bb3f-f8e1f7365bba"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":2000,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":900,"monthly_call_quota":30000,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2300,"monthly_call_quota":170000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5600,"monthly_call_quota":900000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/cnb-api"}