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=jsonAccept: application/xml lub parameter ?format=xmlJeś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