Serwis api.nbp.pl udostępnia publiczne Web API umożliwiające klientom HTTP wykonywanie zapytań na poniższych zbiorach danych publikowanych przez serwis NBP.PL:
Komunikacja z serwisem polega na wysłaniu odpowiednio sparametryzowanego żądania HTTP GET na adres bazowy https://api.nbp.pl/api/.
Od 1 sierpnia 2025 r. cała komunikacja z API.nbp.pl musi odbywać się za pośrednictwem protokołu HTTPS.
Protokół http od tego dnia nie będzie już wspierany przy dostępie do naszych usług API.
Zmiana ta jest częścią naszego stałego zaangażowania w zwiększanie bezpieczeństwa i ochronę danych podczas transmisji.
Aby zapewnić nieprzerwany dostęp do naszych usług API.nbp.pl od 1 sierpnia 2025 r., należy zaktualizować Państwa integrację, aby korzystała z punktów końcowych HTTPS.
Dziękujemy za zrozumienie i współpracę podczas tej ważnej aktualizacji, którą realizujemy w celu zwiększenia bezpieczeństwa naszych usług.
Odpowiedź serwisu zwracana jest albo w formacie JSON albo XML, zależnie od wymagań klienta. Format odpowiedzi można wskazać na dwa sposoby – za pomocą parametru zapytania ?format
albo przy pomocy nagłówka HTTP Accept
:
Accept: application/json
lub parameter ?format=json
Accept: application/xml
lub parameter ?format=xml
Jeśli nie określono formatu zwracany jest JSON.
Dane archiwalne dostępne są odpowiednio:
przy czym pojedyncze zapytanie nie może obejmować przedziału dłuższego, niż 93 dni.
Zakres czasowy dla wyników zapytania można określić na jeden z poniższych sposobów:
Dane kursów walut udostępnianie są na dwa sposoby:
{table}
– typ tabeli (A
, B
, lub C
){code}
– trzyliterowy kod waluty (standard ISO 4217){topCount}
– liczba określająca maksymalną liczność zwracanej serii danych{date}
, {startDate}
, {endDate}
– data w formacie RRRR-MM-DD (standard ISO 8601)Wzory zapytań o kompletne tabele kursów walut
{table}
https://api.nbp.pl/api/exchangerates/tables/{table}/
{topCount}
tabel kursów typu {table}
https://api.nbp.pl/api/exchangerates/tables/{table}/last/{topCount}/
{table}
opublikowana w dniu dzisiejszym (albo brak danych)
https://api.nbp.pl/api/exchangerates/tables/{table}/today/
{table}
opublikowana w dniu {date}
(albo brak danych)
https://api.nbp.pl/api/exchangerates/tables/{table}/{date}/
{table}
opublikowanych w zakresie dat od {startDate}
do {endDate}
(albo brak danych)
https://api.nbp.pl/api/exchangerates/tables/{table}/{startDate}/{endDate}/
Wzory zapytań o kurs pojedynczej waluty
{code}
z tabeli kursów typu {table}
https://api.nbp.pl/api/exchangerates/rates/{table}/{code}/
{topCount}
kursów waluty {code}
z tabeli kursów typu {table}
https://api.nbp.pl/api/exchangerates/rates/{table}/{code}/last/{topCount}/
{code}
z tabeli kursów typu {table}
opublikowany w dniu dzisiejszym (albo brak danych)
https://api.nbp.pl/api/exchangerates/rates/{table}/{code}/today/
{code}
z tabeli kursów typu {table}
opublikowany w dniu {date}
(albo brak danych)
https://api.nbp.pl/api/exchangerates/rates/{table}/code}/{date}/
{code}
z tabeli kursów typu {table}
opublikowanych w zakresie dat od {startDate}
do {endDate}
(albo brak danych)
https://api.nbp.pl/api/exchangerates/rates/{table}/{code}/{startDate}/{endDate}/
{topCount}
– liczba określająca maksymalną liczność zwracanej serii danych{date}
, {startDate}
, {endDate}
– data w formacie RRRR-MM-DD (standard ISO 8601)https://api.nbp.pl/api/cenyzlota
{topCount}
notowań cen złota
https://api.nbp.pl/api/cenyzlota/last/{topCount}
https://api.nbp.pl/api/cenyzlota/today
{date}
(albo brak danych)
https://api.nbp.pl/api/cenyzlota/{date}
{startDate}
do {endDate}
(albo brak danych)
https://api.nbp.pl/api/cenyzlota/{startDate}/{endDate}
https://api.nbp.pl/api/exchangerates/rates/a/chf/
https://api.nbp.pl/api/exchangerates/rates/c/usd/today/
https://api.nbp.pl/api/exchangerates/rates/c/usd/2016-04-04/?format=json
https://api.nbp.pl/api/exchangerates/tables/a/
https://api.nbp.pl/api/exchangerates/tables/a/today/
https://api.nbp.pl/api/exchangerates/rates/a/gbp/last/10/?format=json
https://api.nbp.pl/api/exchangerates/rates/c/usd/last/10/?format=xml
https://api.nbp.pl/api/exchangerates/rates/a/gbp/2012-01-01/2012-01-31/
https://api.nbp.pl/api/exchangerates/rates/a/gbp/2012-01-02/
https://api.nbp.pl/api/exchangerates/tables/a/last/5/
https://api.nbp.pl/api/exchangerates/tables/a/2012-01-01/2012-01-31/
https://api.nbp.pl/api/exchangerates/tables/b/2016-03-30/
https://api.nbp.pl/api/cenyzlota/
https://api.nbp.pl/api/cenyzlota/last/30/?format=json
https://api.nbp.pl/api/cenyzlota/today/
https://api.nbp.pl/api/cenyzlota/2013-01-02/
https://api.nbp.pl/api/cenyzlota/2013-01-01/2013-01-31/
W przypadku braku danych dla prawidłowo określonego zakresu czasowego zwracany jest komunikat 404 Not Found
W przypadku zadania nieprawidłowo sformułowanych zapytań serwis zwraca komunikat 400 Bad Request
W przypadku zapytania przekraczającego limit zwracanych danych serwis zwróci komunikat 400 Bad Request - Przekroczony limit