NBP Exchange Rates Today: Narodowy Bank Polski Official PLN Rates API

Official Narodowy Bank Polski rates for 27 Oct 2026: 1 USD = 3.9542 PLN, 1 EUR = 4.4056 PLN. All 32 currencies published, history back to 2016. Free JSON API for tax, audits, and compliant invoicing.

By Madhushan, Founder & Lead Developer

Poland flagNarodowy Bank Polski: every PLN rate the bank publishes, as JSON. 32 currencies, archive back to 2016, latest table free on every plan. Get your API key.

About Narodowy Bank Polski

Narodowy Bank Polski is Poland's central bank. Its Table A of average foreign currency rates is published each business day around 12:00 Warsaw time and is the legally mandated rate for Polish accounting, tax, and customs.

Quick start

You need a free API key to run these. Register in under a minute — no card required.

Get a free API key Already registered? Copy your key from the dashboard.

One request for the pair you need — EUR to PLN at the official Narodowy Bank Polski rate:

curl "https://allratestoday.com/api/v1/central-bank/nbp/latest?source=EUR&target=PLN" \
  -H "Authorization: Bearer art_live_your_key"

What comes back — a real response built from the table in force (2026-10-27):

{
  "bank": "nbp",
  "name": "Narodowy Bank Polski",
  "rate_date": "2026-10-27",
  "source": "EUR",
  "target": "PLN",
  "rate": 4.4056,
  "rate_type": "middle",
  "derived": false,
  "method": "published",
  "age_days": 0,
  "stale": false,
  "cadence": "daily",
  "disclaimer": "Official rates as published by the named central bank. On weekends/holidays the most recent published rate_date is returned."
}

Or the bank's full published table:

curl "https://allratestoday.com/api/v1/central-bank/nbp/latest" \
  -H "Authorization: Bearer art_live_your_key"

The full-table response has the same envelope with every published row (first rows shown):

{
  "bank": "nbp",
  "name": "Narodowy Bank Polski",
  "rate_date": "2026-10-27",
  "age_days": 0,
  "stale": false,
  "cadence": "daily",
  "rates": [
    {"base":"AUD","quote":"PLN","type":"middle","value":2.7787},
    {"base":"BRL","quote":"PLN","type":"middle","value":0.7361},
    {"base":"CAD","quote":"PLN","type":"middle","value":2.8203},
    {"base":"CHF","quote":"PLN","type":"middle","value":4.7729},
    … 28 more rows
  ],
  "disclaimer": "Official rates as published by the named central bank. On weekends/holidays the most recent published rate_date is returned."
}

On paid plans, any historical date or a time series:

curl "https://allratestoday.com/api/v1/central-bank/nbp/history?source=EUR&target=PLN&from=2025-01-01" \
  -H "Authorization: Bearer art_live_your_key"

Latest published rates (2026-10-27)

Narodowy Bank Polski's newest published table, verbatim — the same rows the /latest endpoint returns at this moment. Values are PLN per 1 unit of each currency:

Download this table: Excel (.xlsx) CSV

Download history:
Choose currencies: USD
Excel (.xlsx) CSV

One row per currency per publication date. Up to one year per download. Billed as one API call per currency per month of data.

BaseQuoteTypeRate
AUD PLN middle 2.7787
BRL PLN middle 0.7361
CAD PLN middle 2.8203
CHF PLN middle 4.7729
CLP PLN middle 0.003998
CNY PLN middle 0.5931
CZK PLN middle 0.181
DKK PLN middle 0.5894
EUR PLN middle 4.4056
GBP PLN middle 5.2654
HKD PLN middle 0.5041
HUF PLN middle 0.012001
IDR PLN middle 0.00021786
ILS PLN middle 1.2905
INR PLN middle 0.041567
ISK PLN middle 0.032299
JPY PLN middle 0.025068
KRW PLN middle 0.002979
MXN PLN middle 0.2126
MYR PLN middle 0.9667
NOK PLN middle 0.4246
NZD PLN middle 2.251
PHP PLN middle 0.0616
RON PLN middle 0.8236
SEK PLN middle 0.397
SGD PLN middle 3.0855
THB PLN middle 0.1171
TRY PLN middle 0.0793
UAH PLN middle 0.0868
USD PLN middle 3.9542
XDR PLN middle 5.335
ZAR PLN middle 0.237

Node.js / TypeScript client

A dedicated zero-dependency npm package wraps these endpoints — nbp-exchange-rate:

npm install nbp-exchange-rate
import { getRate } from 'nbp-exchange-rate';

const pair = await getRate('EUR', 'PLN', { apiKey: 'art_live_...' });
console.log(pair.rate, pair.rate_date);

Zero dependencies, TypeScript types included, and it runs anywhere fetch exists — Node 18+, Bun, Deno, and edge runtimes.

Full reference — installation, all four functions, response shapes, error codes: nbp-exchange-rate documentation.

Why use the official Narodowy Bank Polski rate?

A market rate is a moving target; the rate Narodowy Bank Polski publishes is a fixed, citable figure that stays put once printed — which is why invoicing, customs, audit evidence, and statutory accounting in Poland lean on it rather than on a live feed. Every response from this API carries the bank's own rate_date, and on days with no publication you get the most recent published table — the one compliance rules tell you to apply.

Pairs the bank doesn't print directly are resolved from its table (inverse or cross via PLN) and explicitly flagged "derived": true — so what the bank printed and what was computed are never confused.

Endpoints

Full parameter reference in the API documentation. Every request counts toward your plan's monthly quota — rates change once per business day, so caching a published table locally makes a small quota go far.

Frequently asked questions

Does an exchange rate API exist for Narodowy Bank Polski data?

Yes. This endpoint returns Narodowy Bank Polski's official daily figures as JSON; the newest table is free on every plan.

How often are the rates updated?

Narodowy Bank Polski publishes once per business day; the API ingests each new table shortly after publication (latest: 2026-10-27).

Are these really Narodowy Bank Polski's official figures?

Yes. Every value comes from Narodowy Bank Polski's own publication and is served unmodified, carrying the bank's publication date; computed pairs are explicitly flagged derived.

Narodowy Bank Polski rates, one API key

Latest table on every plan. History back to 2016 on paid plans. No credit card to start.

Get Free API Key Read the Docs