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 http://api.nbp.pl/api/.
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}
http://api.nbp.pl/api/exchangerates/tables/{table}/
{topCount} tabel kursów typu {table}
http://api.nbp.pl/api/exchangerates/tables/{table}/last/{topCount}/
{table} opublikowana w dniu dzisiejszym (albo brak danych)
http://api.nbp.pl/api/exchangerates/tables/{table}/today/
{table} opublikowana w dniu {date} (albo brak danych)
http://api.nbp.pl/api/exchangerates/tables/{table}/{date}/
{table} opublikowanych w zakresie dat od {startDate} do {endDate} (albo brak danych)
http://api.nbp.pl/api/exchangerates/tables/{table}/{startDate}/{endDate}/
Wzory zapytań o kurs pojedynczej waluty
{code} z tabeli kursów typu {table}
http://api.nbp.pl/api/exchangerates/rates/{table}/{code}/
{topCount} kursów waluty {code} z tabeli kursów typu {table}
http://api.nbp.pl/api/exchangerates/rates/{table}/{code}/last/{topCount}/
{code} z tabeli kursów typu {table} opublikowany w dniu dzisiejszym (albo brak danych)
http://api.nbp.pl/api/exchangerates/rates/{table}/{code}/today/
{code} z tabeli kursów typu {table} opublikowany w dniu {date} (albo brak danych)
http://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)
http://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)http://api.nbp.pl/api/cenyzlota
{topCount} notowań cen złota
http://api.nbp.pl/api/cenyzlota/last/{topCount}
http://api.nbp.pl/api/cenyzlota/today
{date} (albo brak danych)
http://api.nbp.pl/api/cenyzlota/{date}
{startDate} do {endDate} (albo brak danych)
http://api.nbp.pl/api/cenyzlota/{startDate}/{endDate}
http://api.nbp.pl/api/exchangerates/rates/a/chf/
http://api.nbp.pl/api/exchangerates/rates/c/usd/today/
http://api.nbp.pl/api/exchangerates/rates/c/usd/2016-04-04/?format=json
http://api.nbp.pl/api/exchangerates/tables/a/
http://api.nbp.pl/api/exchangerates/tables/a/today/
http://api.nbp.pl/api/exchangerates/rates/a/gbp/last/10/?format=json
http://api.nbp.pl/api/exchangerates/rates/c/usd/last/10/?format=xml
http://api.nbp.pl/api/exchangerates/rates/a/gbp/2012-01-01/2012-01-31/
http://api.nbp.pl/api/exchangerates/rates/a/gbp/2012-01-02/
http://api.nbp.pl/api/exchangerates/tables/a/last/5/
http://api.nbp.pl/api/exchangerates/tables/a/2012-01-01/2012-01-31/
http://api.nbp.pl/api/exchangerates/tables/b/2016-03-30/
http://api.nbp.pl/api/cenyzlota/
http://api.nbp.pl/api/cenyzlota/last/30/?format=json
http://api.nbp.pl/api/cenyzlota/today/
http://api.nbp.pl/api/cenyzlota/2013-01-02/
http://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 obejmującego więcej niż trzy miesiące serwis zwraca komunikat 400 Bad Request - Przekroczony limit 93 dni / Limit of 93 days has been exceeded