MNB, NBP & CNB Exchange Rates: Hungary, Poland, Czechia
Pricing
from $0.50 / 1,000 rate records
MNB, NBP & CNB Exchange Rates: Hungary, Poland, Czechia
Official daily exchange rates from the Hungarian (MNB), Polish (NBP) and Czech (CNB) central banks: date ranges or 'rate for this invoice date' lookups, HUF/PLN/CZK, one clean dataset.
Pricing
from $0.50 / 1,000 rate records
Rating
0.0
(0)
Developer
Gabor Sziladi
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Get official daily exchange rates from three Central European central banks in one clean dataset: the Hungarian MNB (HUF), the Polish NBP (PLN) and the Czech CNB (CZK). Pick currencies and a date range, or paste your invoice dates and get exactly one official rate per date. It costs $0.50 per 1,000 rate records, and a default run returns about 30 records in under 10 seconds.
- ✅ MNB, NBP and CNB in one run, with one normalised record per bank, currency and day
- ✅ Invoice / lookup mode: one rate per date, with a clear "same day or previous" or "previous business day" rule
- ✅
ratePerUnitnormalises 100-unit quotes (JPY, HUF…) so the three banks are directly comparable - ✅ NBP table number (e.g.
201/A/NBP/2026), which Polish bookkeeping often has to record - ✅ Up to 10 years of history per run
- ✅ One failing bank never fails the run; errors are listed in the
OUTPUTsummary - ✅ Official public sources only. No API key, no login, no proxy.
| Bank | Country | Base currency | Data used |
|---|---|---|---|
| MNB (Magyar Nemzeti Bank) | Hungary | HUF | Official daily MNB rates (public rate table on mnb.hu) |
| NBP (Narodowy Bank Polski) | Poland | PLN | Table A mid rates from the official NBP API (api.nbp.pl) |
| CNB (Česká národní banka) | Czechia | CZK | Daily rates from the official CNB API (api.cnb.cz) |
Use it for bookkeeping, foreign-currency invoices, VAT and tax reporting, price lists, ERP or spreadsheet imports, dashboards, or as a tool for AI agents that need the official local rate rather than a market feed.
Two modes
-
Date range: every published rate for your currencies between
startDateandendDate. The default is the last 7 days. -
Lookup / invoice mode: give a list of
lookupDates(for example invoice or transaction dates) and get one rate per bank, currency and date using a clear rule:sameDayOrPrevious: the rate published on that day, or the latest earlier one (weekends and holidays).previousBusinessDay: the latest rate published strictly before that day.
Which rule your tax or accounting rules require depends on your country and situation, so please confirm with your accountant. This Actor only returns the official published numbers. Dates with no applicable rate (future dates, or a currency the bank does not quote) are listed in
OUTPUT.lookups_without_rateand are not charged.
Input
| Field | Type | Default | Notes |
|---|---|---|---|
sources | array | ["MNB","NBP","CNB"] | Any of MNB, NBP, CNB |
currencies | array | ["EUR","USD"] | ISO codes, e.g. EUR, USD, GBP, CHF, JPY. The bank's own currency is skipped |
startDate | string | end date minus 6 days | YYYY-MM-DD |
endDate | string | today (UTC) | YYYY-MM-DD |
lookupDates | array | none | Turns on lookup mode; the date range is then ignored |
lookupRule | string | sameDayOrPrevious | or previousBusinessDay |
requestDelaySecs | number | 0.5 | Politeness delay between requests |
Example (invoice mode):
{"sources": ["MNB", "NBP"],"currencies": ["EUR", "USD"],"lookupDates": ["2026-10-16", "2026-10-18"],"lookupRule": "previousBusinessDay"}
Output example (real run)
Range mode, one record per bank, currency and publication day:
{"source": "NBP","date": "2026-10-15","currency": "EUR","currencyName": "euro","unit": 1,"rate": 4.3691,"ratePerUnit": 4.3691,"tableNo": "201/A/NBP/2026","sourceUrl": "https://api.nbp.pl/api/exchangerates/tables/A/2026-10-15/2026-10-21/?format=json","baseCurrency": "PLN","fetchedAt": "2026-10-21T18:25:40+00:00"}
Lookup mode (previousBusinessDay, Sunday 18 October 2026, so the MNB rate of Friday 16 October is used):
{"source": "MNB","currency": "EUR","currencyName": "euro","unit": 1,"rate": 363.29,"ratePerUnit": 363.29,"tableNo": null,"baseCurrency": "HUF","requestedDate": "2026-10-18","lookupRule": "previousBusinessDay","rateDate": "2026-10-16","fetchedAt": "2026-10-21T18:25:47+00:00"}
rateis exactly as published, forunitunits of the foreign currency (MNB and CNB quote some currencies per 100).ratePerUnitis the rate for 1 unit, so the three banks can be compared directly.tableNois the NBP table number.sourceUrlis the exact official page or API call the number came from, for your audit trail.
Export as JSON, CSV, Excel or via the API, or connect it to Make, Zapier, n8n or Google Sheets with Apify integrations. A run summary (records per bank, failed banks, currencies without data, lookups without a rate) is saved in the OUTPUT record of the run's key-value store.
Pricing
Pay per event, no subscription:
| Event | Price |
|---|---|
| Rate record (one rate in the dataset) | $0.0005 ($0.50 per 1,000 records) |
| Actor start (per run) | $0.002 |
Examples: the default run (2 currencies × 3 banks × 1 week, about 30 records) costs about $0.017. A full year of EUR and USD from all three banks (about 1,500 records) costs about $0.75. A daily scheduled run for 5 currencies across the 3 banks costs about $0.01 per day. You can set a maximum cost per run, and the Actor stops cleanly when it is reached.
Use cases
- Accounting and invoicing: the official MNB, NBP or CNB rate for each foreign-currency invoice (Hungarian, Polish and Czech VAT and income-tax rules refer to central bank rates).
- ERP, spreadsheet and BI feeds: schedule a daily run and push new rates to Google Sheets, a database or a webhook.
- Multi-country finance teams that need HUF, PLN and CZK rates side by side in one consistent format.
- AI agents and MCP tools that need a trustworthy, citable exchange-rate source.
How it works and fair use
- Only official, public sources published for exactly this purpose. No logins, no personal data.
- Few requests: CNB one per month per currency, NBP one per 93 days, MNB one per year per currency. In lookup mode only the 14 days before each date are fetched. Requests are spaced by a polite delay and retried automatically.
Limitations
- Rates for a day appear only after the bank publishes them (usually early or mid afternoon local time). A same-day request made earlier returns the previous publication.
- Maximum range is about 10 years per run, and at most 5,000 lookup dates per run.
- This Actor is not affiliated with MNB, NBP or CNB. Data is provided as published; always check critical figures at the source.
FAQ
Which currencies are supported? Whatever each bank publishes. NBP table A has about 30 currencies, CNB about 30, and MNB about 30 current ones. Codes a bank does not quote return no rows and are listed in OUTPUT.sources[].currencies_without_data.
Can I schedule it? Yes. Use an Apify Schedule (for example every business day at 15:00 CET) and send the output to Google Sheets or a webhook.
Do you also have the ECB? Not yet. Open an issue if you need it.
Something broke? Open an issue on the Actor's Issues tab with your input, and I will fix it.