CNB Czech Exchange Rate Fixings by Date avatar

CNB Czech Exchange Rate Fixings by Date

Pricing

from $0.00005 / actor start

Go to Apify Store
CNB Czech Exchange Rate Fixings by Date

CNB Czech Exchange Rate Fixings by Date

Export official CNB CZK exchange rates for requested dates. Keep actual fixing dates, currency amounts and missing-currency coverage, including weekend carry-forwards.

Pricing

from $0.00005 / actor start

Rating

0.0

(0)

Developer

Michal Pšenčík

Michal Pšenčík

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Security

Limited permissions

Share

Export the Czech National Bank's official CZK exchange-rate fixing for the dates you choose: one dataset row per requested date, with the rates for your currencies, the date the fixing is actually valid for, and the CNB's own amount denominator. It reads CNB's official keyless API (api.cnb.cz), so a bookkeeping export, a monthly reconciliation or a small integration can get dated CZK rates on a schedule without maintaining the parsing.

This is CNB fixing data, not bank buy/sell rates, conversions, trading signals or accounting advice. The actor does not compute per-unit rates, cross rates or averages, and it does not watch for changes between runs. It is independent of the CNB and not endorsed by it.

Input

{
"dates": ["2026-10-22"],
"currencies": ["EUR", "USD", "GBP"],
"maxItems": 31
}
  • dates: 1 to 31 calendar dates (YYYY-MM-DD) from 2020-01-01 through today in Europe/Prague. Duplicates are merged and dates sorted. Leave it out for yesterday (Prague time), which always has a fixing to return.
  • currencies: 1 to 30 distinct three-letter codes; spaces are trimmed and letters uppercased. Default EUR, GBP, USD. A code the CNB does not publish that day is listed in missingCurrencies, never substituted.
  • maxItems: stop after this many date bundles are stored, 1 to 31 (default 31). Every date is still checked and reported in the free summary.

Unknown fields, wrong types, impossible or future dates fail the run before any request, with the reason in SUMMARY.

Output

One row per requested date that has at least one of your currencies:

{
"schemaVersion": 1,
"id": "cnb-fx:2026-10-22:EUR,GBP,USD",
"requestedDate": "2026-10-22",
"validFor": "2026-10-22",
"sourceOrder": 204,
"baseCurrency": "CZK",
"quotes": [
{ "currencyCode": "EUR", "country": "EMU", "currencyName": "euro", "amount": 1, "rateCzk": "24.265" },
{
"currencyCode": "GBP",
"country": "United Kingdom",
"currencyName": "pound",
"amount": 1,
"rateCzk": "28.961"
},
{ "currencyCode": "USD", "country": "USA", "currencyName": "dollar", "amount": 1, "rateCzk": "21.651" }
],
"missingCurrencies": [],
"observedAt": "2026-10-22T22:24:53.293Z",
"sourceUrl": "https://api.cnb.cz/cnbapi/exrates/daily?date=2026-10-22&lang=EN",
"sourceResponseSha256": "a1d51f47cb083832ffb408c57d3bf8d4c5290d2ab9d3654970b0fa62f333fdf0"
}
  • rateCzk is CZK per amount units of the currency, as an exact decimal string. HUF and JPY are quoted per 100 ("amount": 100); the actor never divides that out.
  • validFor is the CNB fixing date. A weekend or holiday request returns the last earlier fixing: requesting Sunday 2026-10-18 gives validFor 2026-10-16. It is never relabelled as the requested date.
  • sourceOrder is the CNB's sequence number of that fixing in its year.
  • id is stable for the same requested date and currency list, so a later run's row for the same date can be compared with an earlier one. Rows are appended in requested-date order within a run; sort by requestedDate if a resumed run appended an earlier date late.
  • observedAt is when the actor received the response, not a CNB publication time. sourceResponseSha256 is the SHA-256 of the raw response.

Dates with no table (an empty response), failed dates and missing currencies get no row and no charge; they are listed in SUMMARY.

Run summary (free)

Every run writes SUMMARY to its key-value store: status (complete, partial, empty or error), counts of requests and rows, sourceCoverage (successful, no-data and failed dates, validForByDate, missingCurrenciesByDate), errors, stopReason and nextAction (which dates to retry, or that a larger maxItems or spending limit would deliver more). A RECOVERY record lets a migrated run continue without storing a row twice.

Pricing

Pay per event, using only Apify's two built-in events:

  • Actor start: $0.00005 per run (one start unit at the 256 MB default).
  • Dataset item: $0.001 per stored date bundle. Unchanged values and weekend carry-forwards are billed like any other stored bundle, because each is a separate requested-date check. Three currencies on 31 dates cost $0.031 plus the start event.

Errors, missing currencies, empty dates and the summary are free. When your spending limit is reached the actor stops before storing the next row and says so in SUMMARY.

Limits and source behaviour

  • Requests are sequential with at least 1.2 s between them, at most 93 per run including retries, within 180 seconds. A 403, 429 or challenge page stops requests for the rest of the run and is reported; it is never worked around.
  • Coverage is what the CNB API returns for each date: about 30 currencies today, 33 on 2020-01-01. No historic revision or completeness guarantee is made.
  • Separate runs are independent and bill separately.