Przejdź do treści
Menu

Historia zmian API

Wszystkie istotne zmiany API. Najnowsze wpisy na górze. Zachowujemy stabilność v1 — brak zmian łamiących bez nowej wersji.

2026-07-26 Nowe Serwer MCP (Streamable HTTP)

Nowość: prawdziwy serwer MCP pod adresem https://nakordoni.eu/mcp, udostępniający bezpieczny, tylko do odczytu podzbiór API (status, checkpoints, border queue, live queue, forecast) jako narzędzia MCP. Ten sam klucz API i limit co w REST API. Karta serwera pod adresem /.well-known/mcp/server-card.json. Zobacz sekcję Serwer MCP w dokumentacji.

2026-07-21 Poprawka Docs page still said "Data Freshness API" after the rename — now fixed in all 25 languages

The retitle to "Live Queue & Freshness API" below did not actually reach the docs page. The page renders each product title through a translation lookup that falls back to the endpoint's title only when no translation exists — and a translation already existed, frozen at the old name, in all 25 UI languages. It now wins over any future update to the underlying title until it is updated too.

Retitled the translation key in all 25 languages so the docs page matches. No endpoint, parameter or response change — title text only.

2026-07-21 Nowe Data Freshness API is also your standard-quota live queue endpoint

If you poll live queue data frequently, you may be spending heavy quota you do not need to. /update-info is standard-class and already returns the live figure:

GET /api/v1/data/update-info?ppid=id_13

It returns queue_now, freshness, age_minutes, is_realtime, status, timestamp and timezone. Use it for the frequent refresh against your standard daily quota, and keep /queue, /multi and /forecast (all heavy-class) for when you need wait_min, the trend fields or history.

Nothing changed in the endpoint itself — only its documentation. It was listed as the "Data Freshness API" and its description mentioned only the freshness rating, never queue_now, so it was easy to miss. It is now titled "Live Queue & Freshness API" with the returned fields spelled out. Thanks to the developer who raised this.

2026-07-20 Poprawka Failed calls now correctly return ok:false

Some failed requests were returning HTTP 200 with ok: true and the error buried inside data — so the documented if (!ok) throw pattern could not detect them, and the call was still billed. Affected calls now return HTTP 400 with ok: false and a proper error.code / error.message, as documented. Seen on fuel-cities with an unsupported country and travel-matrix with malformed coordinates.

Separately, a missing required parameter returned 500 internal_error instead of 400 bad_request (an upstream 4xx body was being discarded before its status was read). It now returns 400 bad_request with the upstream message — e.g. search without ?name=.

Successful responses are byte-for-byte unchanged — same fields, same params, same quota cost. If your client already branches on ok, no change is needed. If it ignored ok and read data directly, it will now see error envelopes on calls that were always failing.

2026-07-20 Poprawka Multi-Checkpoint API: accurate queue data when the cache is cold

Fixed a bug where /multi could return a wrong queue count for some checkpoints — mainly Balkan and Hungary–Serbia crossings — whenever its cache was cold. The fallback read a table that, for those crossings, holds no queue data, and reported unrelated values as car counts. Measured examples: a checkpoint with 12 cars reported 6, and several with real queues reported 0.

Three changes you may notice:

  • found: false now means there is genuinely no recent queue data. Previously you could receive found: true with a fabricated queue_now: 0.
  • wait_status, trend_percent and trend_direction are now returned on cold requests — they were null before.
  • The endpoint also falls back when its cached snapshot is stale (older than 24h), not only when it is missing.

No changes to request parameters, quota cost or response shape.

2026-07-20 Poprawka Multi-Checkpoint API: naprawiono podwójne naliczanie limitu

Naprawiono błąd, przez który każde wywołanie /multi było liczone podwójnie — raz przez ogólną kontrolę 1 jednostki, a raz przez własny wzór kosztu zmiennego endpointu (N PPID × podprodukty). Wywołanie kosztuje teraz dokładnie ⌈(N×M)/2⌉ jednostek zgodnie z dokumentacją, bez dodatkowej opłaty.

Na stronie dokumentacji dodano też odznakę klasy limitu (Standard/Heavy) przy każdym produkcie, aby od razu było widać, z jakiego dziennego limitu korzysta dany endpoint.

2026-07-15 Nowe Holiday Calendar: scalenie country/countries, compare_to, wiele języków

country i countries scalono w jeden parametr (1-15 kodów oddzielonych przecinkami). Nowy parametr compare_to: porównanie takich samych i różnych świąt między krajami, łączy się z upcoming+days. lang przyjmuje teraz wiele języków (dodaje obiekt names). days=0 lub pominięcie oznacza teraz brak limitu w trybie upcoming.

2026-07-15 Nowe Nowy produkt: Holiday Calendar API

Oficjalne święta państwowe dla każdego kraju europejskiego — daty, lokalne nazwy i typ. Oparte na tej samej usłudze Nager.Date / OpenHolidaysAPI (z lokalnie obliczanym kalendarzem Kosowa), która zasila stronę kalendarza świąt nakordoni.eu oraz czynniki kalendarzowe systemu prognozowania.

  • ?country=PL&year=2026 — pełna roczna lista świąt dla jednego kraju
  • ?upcoming=1&days=30 — płaska lista nadchodzących świąt w różnych krajach
  • Bez parametrów — indeks podstawowego zestawu krajów z najbliższym świętem dla każdego
2026-07-13 Nowe Nowy produkt: Currency Exchange Rates API

Dodano produkt currency — kursy wymiany oparte na EUR dla PLN, CZK, HUF, USD, GBP, CHF, NOK i UAH, pochodzące z Frankfurter (ECB), buforowane przez 6 godzin. Bez parametrów, zawsze zwraca pełną tabelę kursów. Zobacz dokumentację.

2026-07-12 Nowe Darmowy osadzalny widget zakazów dla ciężarówek

Osadź na własnej stronie aktualne europejskie zakazy ruchu ciężarówek — darmowy widget iframe z 3 wzorami (light, dark, board), 5 językami (en, uk, pl, de, ru), opcjonalnym filtrem według kraju i statusem na żywo «aktywny teraz». Klucz API nie jest wymagany. Skonfiguruj i skopiuj kod na nakordoni.eu/en/for_truck_drivers/traffic_bans/widget. Wolisz surowe dane? Produkt API truck-bans oraz publiczny kanał JSON pozostają dostępne.

2026-07-11 Nowe API v2 (wersjonowanie na poziomie punktów końcowych), kierunkowy border i interaktywny Sandbox

Trzy nowości, wszystkie wstecznie kompatybilne — v1 bez zmian.

Wersjonowanie na poziomie punktów końcowych. Istnieje teraz bazowy adres URL /api/v2/. Działa ono na poziomie punktów końcowych: inaczej zachowują się tylko te punkty końcowe, które faktycznie się zmieniły; każdy inny punkt końcowy przezroczyście zwraca swoją odpowiedź v1 (więc /api/v2/data/queue = te same dane co v1, tylko z "api_version":"v2"). Nie trzeba migrować działających punktów końcowych.

border v2 jest kierunkowy. Kolejność w ścieżce określa kierunek podróży:

GET /api/v2/data/border/1/2/6   → buses UA→PL (Ukrainian-side crossings)
GET /api/v2/data/border/2/1/6   → buses PL→UA (Polish-side crossings)

Każdy punkt kontrolny otrzymuje też obiekt direction {from,to} oraz wartość logiczną stale, a ?max_age_min=N zwraca tylko niedawno zaktualizowane przejścia. (v1 border nadal zwraca obie strony granicy niezależnie od kolejności — bez zmian.)

Interaktywny Sandbox. Zalogowani deweloperzy mogą teraz wypróbować dowolny punkt końcowy z przeglądarki pod adresem Developers → Sandbox — wybierz punkt końcowy, wersję i jeden ze swoich kluczy, zmień parametry i zobacz odpowiedź na żywo. Testowanie w Sandbox ma własny odrębny dzienny budżet (50 calls/day) i nigdy nie narusza Twojej produkcyjnej kwoty API.

Dokumentacja jest teraz podzielona według punktów końcowych (Developers → API Docs) z przełącznikiem wersji na punktach końcowych, które mają więcej niż jedną wersję.

2026-07-10 Ulepszenie queue-advanced: dwa nowe czynniki korygujące

Dwa nowe czynniki dodane do formuły czasu oczekiwania, obok istniejących korekt section_mode i pogody:

  • service_rate — zmierzona liczba aut/min aktualnie obsługiwanych względem skonfigurowanej bazowej przepustowości przejścia. Multiplikatywny, w zakresie 0.5x-1.5x.
  • shift_change — wpływ lokalnej zmiany warty straży granicznej o 08:00/20:00 na danym przejściu. Addytywny (minuty), a nie multiplikatywny — stosowany tylko w zakresie +/-60 minut od zmiany, wymaga minimalnej historii próbek, ograniczony do +/-120 minut.

advanced_wait_min to teraz round(base_wait × section_mode × weather × service_rate) + shift_change.adjustment_min. Oba czynniki są też odzwierciedlone w driver_reported.prognosed_advanced_wait_min dla porównań historycznych.

2026-07-09 Zmiana łamiąca Kilka pól wyłącznie wewnętrznych usunięto z queue, border, multi, update-info

W ramach przeglądu bezpieczeństwa/prywatności usunięto następujące pola — ujawniały wewnętrzne szczegóły implementacji (naszą taksonomię źródeł danych, identyfikatory wierszy BD, wewnętrzne adnotacje potoku, nieużywane/martwe pola) bez realnej wartości produktowej:

  • id i corrected — usunięte z obiektów wierszy queue
  • tmin/tpercar — usunięte z queue, border i multi (stałe formuły czasu oczekiwania; już obliczone wait_min/wait_time pozostają bez zmian)
  • source (surowy ciąg, np. "line") — usunięte z queue, multi i update-info. update-info i multi (jego blok update_info) nadal zawierają source_category/source_label_en (niewielki publiczny słownik); queue i multi (jego blok queue) nie zawierają już żadnego pola źródła
  • traffic_status — usunięte z border; zawsze było null i nigdy nie było wypełniane przez żadną część systemu

Jeśli Twoja integracja odczytuje którekolwiek z tych pól, zaktualizuj ją — zobacz aktualną listę pól na stronie dokumentacji odpowiedniego produktu.

2026-07-09 Zmiana łamiąca usage.used może teraz być liczbą ułamkową

Dzienne zużycie limitu (usage.used w każdej odpowiedzi) może teraz być wartością dziesiętną (np. 67.5) zamiast zawsze liczbą całkowitą. To efekt uboczny tego, że queue-advanced jest rozliczany według stawki ułamkowej — zobacz poniżej. usage.limit pozostaje bez zmian i zawsze jest liczbą całkowitą. Jeśli Twój klient ściśle typuje usage.used jako liczbę całkowitą, rozszerz go, aby akceptował wartość dziesiętną/zmiennoprzecinkową.

2026-07-09 Nowe wait_status oraz trend_percent/trend_direction dodane do border, multi i queue-advanced

Te trzy produkty zwracają teraz te same pola statusu na żywo, które pokazuje strona: wait_status (green/yellow/red, na podstawie własnej niedawnej historii tego przejścia) oraz trend_percent/trend_direction (up/up-slight/down/down-slight/stable, porównanie ostatnich 3 godzin). Wyłącznie addytywne.

2026-07-09 Ulepszenie queue: wait_time jest teraz wypełniane w każdym wierszu historycznym

W /api/v1/data/queue wiersze data[] miały wcześniej wait_time: null dla większości źródeł — tylko kilka zewnętrznych kanałów podaje czas oczekiwania bezpośrednio. Wiersze bez niego otrzymują teraz standardowe oszacowanie tmin + queue×tpercar, oznaczone nową wartością logiczną wait_time_estimated, dzięki czemu odróżnisz wartość rzeczywiście zgłoszoną od wyliczonej.

2026-07-09 Zmiana łamiąca queue-advanced: rozliczany 1.5x, odpowiedź skrócona

queue-advanced kosztuje teraz 1.5 jednostki za wywołanie zamiast 1 (odzwierciedlając dodatkowe zapytania o ruch/pogodę/zgłoszenia kierowców, które wykonuje) — zobacz usage.used powyżej. Odpowiedź nie zawiera już także tmin, tpercar ani total_crossing_time, a driver_reported to teraz tylko {wait_min, ts, age_min} — poprzednie pola porównania prognozy z rzeczywistością (prognosed_wait_min, diff_min, historical_section_mode, historical_weather itd.) zostały usunięte. section_mode, weather, advanced_wait_min i exceeds_crossing_time pozostają bez zmian.

2026-07-09 Ulepszenie Truck Bans API: status na żywo dla każdego kraju (active_window / next_window)

/api/v1/data/truck-bans zwraca teraz dla każdego kraju w bans_by_country wartość status (active/clear) oraz active_window, next_window, local_time i tz — obliczone we własnej strefie czasowej danego kraju, więc nie musisz już samodzielnie porównywać surowych okien zakazów z zegarem. Odpowiedź dodaje też listę covered_countries najwyższego poziomu oraz znacznik czasu UTC as_of.

GET /api/v1/data/truck-bans?country=PL

Wyłącznie addytywne — istniejące pola current_bans/upcoming_bans/bans_by_country pozostają bez zmian. Nieznany ?country= zwraca teraz pusty wynik z countries_not_covered zamiast zakazów wszystkich krajów.

2026-07-08 Nowe Nowy produkt: Advanced Wait Time API (queue-advanced)

Nowy opcjonalny produkt, który koryguje standardowy czas oczekiwania o bieżący przepływ ruchu i pogodę. Zwraca pełny rozkład każdej korekty.

GET /api/v1/data/queue-advanced?ppid=id_13

Przyznawany na żądanie — otwórz zgłoszenie Data w swoim panelu, aby go włączyć.

2026-07-08 Ulepszenie Border Queue API: wait_min jest teraz wypełniane dla każdego przejścia

/api/v1/data/border poprawnie oblicza teraz wait_min (i zwraca tmin/tpercar) dla każdego przejścia w odpowiedzi, tak jak produkty queue i multi. Wcześniej to pole zawsze było null.

2026-07-08 Ulepszenie Forecast API: bardziej spójny model + działający sygnał pogodowy

/api/v1/data/forecast niezawodnie używa teraz modelu zespołowego v4 dla dowolnej wartości prediction_steps (wcześniej niektóre niestandardowe horyzonty mogły po cichu wracać do starszego modelu). Czynnik pogodowy zasilający zespół również poprawiono i teraz naprawdę odzwierciedla bieżące warunki (deszcz, śnieg, wiatr, mgła) zamiast zawsze zgłaszać niedostępność.

2026-07-02 Nowe Eksport danych historycznych (beta)

Zatwierdzeni deweloperzy mogą teraz pobierać uśrednione godzinowo historyczne dane kolejek granicznych dla maksymalnie 5 przejść (przesuwne okno do 90 dni) w formacie CSV lub NDJSON z nowej zakładki Data export. Dane są wyłącznie opublikowane i sprawdzone pod kątem jakości; znaczniki czasu w UTC. Potrzebujesz dostępu? Otwórz zgłoszenie Data.

2026-07-01 Ulepszenie Rejestracja bez działającej strony — opisz swój pomysł

Nie masz jeszcze strony? Możesz teraz utworzyć konto dewelopera, opisując, gdzie i jak planujesz wykorzystać nasze dane, zamiast obowiązkowo podawać URL działającej strony. Dodaj prawdziwy URL później ze swojego panelu (Account & data → Your project), gdy tylko Twoja strona lub aplikacja ruszy — widoczny link zwrotny do nakordoni.eu na tej stronie jest wymagany przez nasz Regulamin.

2026-06-22 Nowe Prześlij wiadomości graniczne w zamian za link dofollow

Deweloperzy mogą teraz przesyłać własne wiadomości graniczne do serwisu informacyjnego Nakordoni. Jeśli nasi redaktorzy je opublikują, otrzymasz indeksowalny link dofollow do swojej usługi (wzmianka o wydawcy + wiersz źródła), a my przetłumaczymy artykuł na wszystkie 24 języki za darmo.

Jeden artykuł tygodniowo jest darmowy; dodatkowe artykuły to płatny dodatek. Wybierz 'możemy lekko zredagować + dodać linki wewnętrzne' lub 'opublikuj bez zmian'. Przesyłaj i śledź status weryfikacji w sekcji Developers → Submit news.

2026-06-14 Ulepszenie Multi-Checkpoint API: 50% zniżki na limit

Multi-Checkpoint API (/api/v1/data/multi) nalicza teraz limit według wzoru ⌈(N PPIDs × sub-products) / 2⌉ — połowa kosztu równoważnych pojedynczych wywołań. Żądanie dla 10 przejść z obydwoma podproduktami kosztuje teraz 10 jednostek zamiast 20. Nagłówek X-Devapi-Units oraz meta.units_consumed w odpowiedzi odzwierciedlają obniżoną kwotę.

2026-06-14 Nowe Nowy produkt: Multi-Checkpoint API (multi)

Pobieraj status kolejek na żywo i świeżość danych dla maksymalnie 20 przejść w jednym wywołaniu API — zaprojektowane dla twórców pulpitów, którzy obecnie odpytują wiele PPIDs w pętli.

Limit liczony jest uczciwie jako N PPIDs × sub-products żądanych, więc całkowite zużycie jest identyczne jak przy pojedynczych wywołaniach — ale z jednym zapytaniem zamiast wielu. Wzorce w stylu GreenTravel spadają z 24+ wywołań/godzinę do 2.

GET /api/v1/data/multi?ppids=id_2,id_13,id_15,id_59&include=queue,update-info&lang=en
  • include=queue — bieżące queue_now, szacowane wait_min, wiek danych i nazwa przejścia
  • include=update-info — świeżość danych, klasyfikacja źródła, wiek w sekundach/minutach
  • Maksymalnie 20 PPIDs na żądanie; połącz oba podprodukty w jednym wywołaniu, aby uzyskać pełne dane pulpitu
  • Odpowiedź zawiera meta.units_consumed, dzięki czemu możesz precyzyjnie śledzić zużycie limitu
2026-06-12 Nowe Queue API: blok snapshot z prognozowanym czasem oczekiwania

Odpowiedź produktu queue zawiera teraz obiekt snapshot najwyższego poziomu z najnowszymi danymi w czasie rzeczywistym i wyliczonym prognozowanym czasem oczekiwania — ten sam wzór, który jest używany w sekcji hero nakordoni.eu:

snapshot.queue_now  — current cars in queue
snapshot.wait_min   — tmin + queue_now × tpercar (minutes)
snapshot.tmin       — minimum crossing time (minutes)
snapshot.tpercar    — added time per vehicle (minutes)
snapshot.updated_at — when the queue data was recorded
snapshot.age_min    — minutes since last update
snapshot.source     — data source identifier

Tablica data (wpisy historyczne) pozostaje bez zmian — to wyłącznie addytywne rozszerzenie. Klienci, którzy nie odczytują snapshot, nie są tym objęci.

2026-06-12 Nowe Nowy produkt: Border Queue API (border)

Odpytuj wszystkie przejścia na danej granicy + typ pojazdu jednym wywołaniem zamiast wykonywać osobne żądanie dla każdego PPID.

GET /api/v1/data/border/{origin}/{destination}/{crossing_type}

  • Obsługuje pojedynczy kraj docelowy, listę oddzieloną przecinkami lub all, aby rozwinąć na wszystkich monitorowanych sąsiadów naraz.
  • Wyniki posortowane według queue_now rosnąco (najkrótsza kolejka najpierw).
  • W pełni zlokalizowane: dodaj ?lang=uk (lub dowolny z naszych 22 obsługiwanych języków), aby uzyskać nazwy przejść w tym języku.
2026-06-12 Nowe Nowy produkt: Checkpoint Search API (search)

Znajduj wartości PPID przejść po nazwie bez przeglądania całego katalogu.

GET /api/v1/data/search?name=Krakovets,Shehyni&lang=en

  • Przyjmuje pojedynczą nazwę lub listę oddzieloną przecinkami (do 20).
  • Wyszukuje we wszystkich 24 językach tłumaczeń — podaj nazwę po ukraińsku, polsku, niemiecku lub w dowolnym obsługiwanym języku, a zostanie dopasowana.
  • Zwraca wszystkie PPIDs w danej lokalizacji pogrupowane według typu pojazdu (samochód / autobus / pieszy / ciężarówka).
2026-06-12 Ulepszenie Alternatives API: pełne wsparcie i18n + nadpisanie crossing_type

Produkt alternatives przyjmuje teraz ?lang= we wszystkich 22 obsługiwanych językach (było tylko 12).

Nowy parametr crossing_type pozwala nadpisać filtr typu pojazdu — np. przekaż crossing_type=4, aby uzyskać alternatywy dla samochodów nawet przy zapytaniu z autobusowego PPID.

2026-06-12 Ulepszenie Checkpoints + Border + Search: zlokalizowane etykiety typu przejścia i nazwy krajów

Pole crossing_type_label w odpowiedziach checkpoints, border i search jest teraz tłumaczone na żądany język we wszystkich 22 obsługiwanych językach. Pola nazw krajów (origin_name, destination_name) podążają za tą samą lokalizacją.

2026-06-05 Nowe Portal dla deweloperów uruchomiony

Portal Nakordoni Developer API działa pod adresem /en/developers. Zarejestruj darmowy klucz Explorer (200 requests/day), aby uzyskać dostęp do danych kolejek granicznych, prognoz, cen paliwa, POI dla kierowców i nie tylko.

Produkty dostępne na starcie: checkpoints, queue, stats, day-stats, forecast, alternatives, update_info, fuel, pois, truck_bans, trading_sundays, bus_carriers, road_conditions, assistant.

Ten dziennik obejmuje zmiany publicznego API. Wewnętrzne aktualizacje nie są wyświetlane.