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=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}
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 przekraczającego limit zwracanych danych serwis zwróci komunikat 400 Bad Request - Przekroczony limit