Strona główna › Kursy walut › API kursów walut NBPAPI kursów walut NBPPubliczne API REST i embeddable widget z aktualnymi kursami walut Narodowego Banku Polskiego. Dane Tabela A (kursy średnie 32 walut) + Tabela C (kursy kupna/sprzedaży 13 walut). Aktualizacja codziennie po publikacji NBP.PrzeglądCztery endpointy GET zwracają JSON ze wspólną kopertą {data, meta}. Brak autoryzacji — API publiczne, read-only. CORS otwarty (Access-Control-Allow-Origin: *). Limit 60 zapytań/min/IP (HTTP 429 + Retry-After).Źródło danych: api.nbp.pl (oficjalne API NBP)Aktualizacja: Tabela A ~12:30, Tabela C ~08:30 (Europe/Warsaw, dni robocze)Format: JSON UTF-8Cache: Cache-Control: public, max-age=300Licencja: dane publiczne NBP; przy użyciu wymagane podanie źródła (NBP + bankowynet.pl)Endpointy RESTAktualne kursyGET https://bankowynet.pl/wp-json/bn-currency/v1/ratesZwraca najnowsze snapshoty Tabela A (32 waluty, kurs średni) i Tabela C (13 walut, bid/ask).Odpowiedź{ "data": { "effective_date_a": "2026-05-21", "effective_date_c": "2026-05-21", "no_a": "097/A/NBP/2026", "no_c": "097/C/NBP/2026", "rates_a": [{"code":"AUD","currency":"dolar australijski","mid":2.6052}, ...], "rates_c": [{"code":"AUD","currency":"dolar australijski","bid":...,"ask":...}, ...] }, "meta": { "source": "NBP (Narodowy Bank Polski)", "license": "...", "last_updated": "2026-05-21", "docs": "..." } }Pojedyncza waluta — aktualny kurs + 30 dniGET https://bankowynet.pl/wp-json/bn-currency/v1/currency/{kod}Parametr {kod} — ISO 4217 (EUR, USD, GBP, ...). Zwraca nazwę polską, link do strony, kurs średni z dziś, oraz historię z ostatnich 30 notowań.Przykładcurl https://bankowynet.pl/wp-json/bn-currency/v1/currency/eurHistoria waluty — dowolny zakresGET https://bankowynet.pl/wp-json/bn-currency/v1/history/{kod}?from=YYYY-MM-DD&to=YYYY-MM-DDMaksymalny zakres: 1830 dni (~5 lat). Daty opcjonalne — bez parametrów zwraca pełną dostępną historię.Przykładcurl "https://bankowynet.pl/wp-json/bn-currency/v1/history/eur?from=2026-01-01&to=2026-05-21"Archiwum — pełny snapshot dniaGET https://bankowynet.pl/wp-json/bn-currency/v1/archive?date=YYYY-MM-DDZwraca pełen snapshot Tabela A + Tabela C dla danego dnia. 404 dla weekendów/świąt (brak publikacji NBP).Przykładcurl "https://bankowynet.pl/wp-json/bn-currency/v1/archive?date=2026-04-21"Limit zapytań60 zapytań na minutę z jednego IP (sliding window per 60s). Każda odpowiedź zawiera nagłówki:X-Bn-Currency-Limit: 60 — łączny limit w oknieX-Bn-Currency-Remaining: N — pozostała pulaX-Bn-Currency-Reset: N — sekund do resetu oknaRetry-After: N — dodawany przy 429Przekroczenie → HTTP 429 z polskim komunikatem. Klienci za Cloudflare są identyfikowani po CF-Connecting-IP.Widget JavaScript (każda strona)Embeddable widget do umieszczenia kursów wybranych walut na dowolnej stronie HTML. Vanilla JS (~4KB), inline styles, brak zależności.Snippet<div data-bn-currency-widget="EUR,USD,GBP,CHF"></div> <script src="https://bankowynet.pl/widget/kursy" async></script>Atrybut data-bn-currency-widget — lista kodów ISO oddzielonych przecinkiem. Pusty atrybut → fallback EUR/USD/GBP/CHF.WymaganiaBacklink "Powered by Bankowynet.pl" jest częścią widgetu i nie może być usuniętyDozwolone modyfikacje CSS są tylko zewnętrzne (kontener, margines) — nie nadpisuj inline-styles widgetuAktualizacja danych: cache 5 minut (max-age=300)Wtyczka WordPress (shortcode)Dla stron WordPress dostępna jest gotowa wtyczka z shortcodem [bn_currency_widget]. Server-side render (brak JS na frontendzie), Gutenberg block, cache 5 min w transient. ⬇ Pobierz bn-currency-widget-1.0.0.zip (5 KB)InstalacjaPobierz ZIP powyżejWordPress admin → Wtyczki → Dodaj nową → Wyślij wtyczkę → wybierz ZIPAktywuj wtyczkęWstaw shortcode w treść posta/stronyUżycie[bn_currency_widget] [bn_currency_widget codes="EUR,USD,GBP,CHF,NOK" size="large" title="Kursy NBP"]Parametry shortcodecodes — lista kodów ISO (do 12, domyślnie EUR,USD,GBP,CHF)size — small | medium | large (domyślnie medium)title — nagłówek widgetu (pusty = bez nagłówka)link — yes | no (domyślnie yes; "no" wymaga akceptacji TOS)Wymagania: PHP 7.4+, WordPress 5.0+.Changelogv1.1.0 — 2026-06-01Dodane endpointy /rates, /currency/{kod}, /history/{kod}. Wspólna koperta {data, meta}. CORS, rate limit 60/min, widget endpoint /widget/kursy.v1.0.0 — 2026-05-21Pierwszy release. Endpoint /archive?date=. Codzienny cron NBP Tabela A + C.
Aktualne kursyGET https://bankowynet.pl/wp-json/bn-currency/v1/ratesZwraca najnowsze snapshoty Tabela A (32 waluty, kurs średni) i Tabela C (13 walut, bid/ask).Odpowiedź{ "data": { "effective_date_a": "2026-05-21", "effective_date_c": "2026-05-21", "no_a": "097/A/NBP/2026", "no_c": "097/C/NBP/2026", "rates_a": [{"code":"AUD","currency":"dolar australijski","mid":2.6052}, ...], "rates_c": [{"code":"AUD","currency":"dolar australijski","bid":...,"ask":...}, ...] }, "meta": { "source": "NBP (Narodowy Bank Polski)", "license": "...", "last_updated": "2026-05-21", "docs": "..." } }
Pojedyncza waluta — aktualny kurs + 30 dniGET https://bankowynet.pl/wp-json/bn-currency/v1/currency/{kod}Parametr {kod} — ISO 4217 (EUR, USD, GBP, ...). Zwraca nazwę polską, link do strony, kurs średni z dziś, oraz historię z ostatnich 30 notowań.Przykładcurl https://bankowynet.pl/wp-json/bn-currency/v1/currency/eur
Historia waluty — dowolny zakresGET https://bankowynet.pl/wp-json/bn-currency/v1/history/{kod}?from=YYYY-MM-DD&to=YYYY-MM-DDMaksymalny zakres: 1830 dni (~5 lat). Daty opcjonalne — bez parametrów zwraca pełną dostępną historię.Przykładcurl "https://bankowynet.pl/wp-json/bn-currency/v1/history/eur?from=2026-01-01&to=2026-05-21"
Archiwum — pełny snapshot dniaGET https://bankowynet.pl/wp-json/bn-currency/v1/archive?date=YYYY-MM-DDZwraca pełen snapshot Tabela A + Tabela C dla danego dnia. 404 dla weekendów/świąt (brak publikacji NBP).Przykładcurl "https://bankowynet.pl/wp-json/bn-currency/v1/archive?date=2026-04-21"