GET /rates
GET /rates # najnowszy snapshotGET /rates/YYYY-MM-DD # snapshot historyczny dla wskazanej datyOdpowiedź
Dział zatytułowany „Odpowiedź”{ "version": "2026-05-27", "source": "European Commission TEDB", "rates": { "DE": { "country": "Germany", "currency": "EUR", "flag": "https://flagcdn.com/de.svg", "standard": 19, "reduced": [7], "super_reduced": null, "parking": null } }}Znaczenie pól
Dział zatytułowany „Znaczenie pól”version— data sytuacji, na którą obowiązują stawki. To data publikacji samego TEDB, a nie data zapytania. Dla endpointu najnowszych stawek zmienia się raz dziennie. Dla endpointów historycznych równa się parametrowi ścieżki.source— zawsze"European Commission TEDB".rates[CC]— po jednym wpisie dla każdego kraju UE-27, który ma zarejestrowaną stawkę STANDARD. Kraje bez aktualnej stawki STANDARD są pomijane, a nie zwracane jakonull.country— popularna nazwa angielska.currency— ISO 4217.flag— URL do SVG z flagą hostowanego na zewnętrznym CDN-ie. Zacache’uj u siebie, jeśli potrzebujesz gwarancji stabilności.standard— pojedyncza wartość procentowa lubnull, jeśli brak.reduced— tablica wartości procentowych, posortowana rosnąco. Może być pusta. Niektóre kraje publikują więcej niż jedną stawkę obniżoną (np. Francja ma 5,5 i 10).super_reduced— pojedyncza wartość lubnull. Stosowana m.in. przez Hiszpanię i Włochy.parking— pojedyncza wartość lubnull. Stosowana m.in. przez Luksemburg i Austrię.
Liczby, nie stringi
Dział zatytułowany „Liczby, nie stringi”Wszystkie pola stawek to liczby JSON wyrażone w punktach procentowych
(nie punktach bazowych, nie ułamkach). 19 oznacza 19%.
Zachowanie cache’u
Dział zatytułowany „Zachowanie cache’u”- Najnowszy (
/rates) —Cache-Control: public, max-age=3600, stale-while-revalidate=86400. Świeża odpowiedź jest co najwyżej godzinę stara; stale odpowiedzi do jednego dnia wstecz mogą być serwowane, gdy w tle odświeżamy dane. - Historyczny (
/rates/YYYY-MM-DD) —Cache-Control: public, max-age=31536000, immutable. Snapshoty nigdy się nie zmieniają; cache’uj je na zawsze.
| Status | Body | Przyczyna |
|---|---|---|
| 404 | {"error": "no data yet"} | Endpoint najnowszych danych, na tym deployu nie uruchomił się jeszcze żaden cron. Powinno występować wyłącznie przy pierwszym uruchomieniu. |
| 404 | {"error": "snapshot not found"} | Endpoint historyczny, brak snapshotu dla wskazanej daty. |
| 401 | {"error": "INVALID_KEY"} | Brakujący lub nieprawidłowy token bearer. |
| 429 | {"error": "RATE_LIMITED"} lub {"error": "QUOTA_EXCEEDED"} | Zobacz limity i kwoty. |
Jak świeży jest „najnowszy” snapshot?
Dział zatytułowany „Jak świeży jest „najnowszy” snapshot?”TEDB publikuje raz dziennie roboczo. Cron Stawki odpytuje go codziennie
o 07:00 UTC. Zatem /rates opóźnia się względem TEDB o maksymalnie
jeden dzień. Pole version jest miarodajną odpowiedzią — porównaj je z
własnym zegarem, jeśli potrzebujesz dolnej granicy świeżości.