Dokumentacja API
REST + JSON przez HTTPS. Jeden bazowy URL, jeden klucz, przewidywalne koperty.
| Bazowy URL | https://nakordoni.eu/api/v1/data/ |
|---|---|
| Format | JSON, UTF-8 |
| Uwierzytelnianie | Authorization: Bearer NKD-DEV-… |
| Wersjonowanie | Path-versioned & per-endpoint: /api/v1/… is stable; /api/v2/… serves the newer behaviour only for endpoints that changed, and transparently falls back to v1 for the rest. v1 responses never change. |
Na tej stronie
Uwierzytelnianie
Każde żądanie wymaga Twojego klucza API w nagłówku Authorization (zalecane) lub jako parametr ?key=.
curl "https://nakordoni.eu/api/v1/data/queue?ppid=id_13" \ -H "Authorization: Bearer NKD-DEV-XXXX-XXXX-XXXX"
Format odpowiedzi
{
"ok": true,
"api_version": "v1",
"product": "queue",
"attribution": "Data by nakordoni.eu",
"data": { ... },
"usage": { "limit": 1000, "used": 42, "reset": "2026-06-06T00:00:00Z" }
}
Błędy zwracają ok:false z error.code (missing_api_key, invalid_api_key, qps_exceeded, quota_exceeded, unknown_product, product_unavailable, bad_request, internal_error) oraz statusem HTTP 401/403/404/429/500. Nagłówki limitu częstotliwości X-Devapi-Limit i X-Devapi-Remaining są wysyłane w każdej rozliczanej odpowiedzi.
Limity
| Explorer | Pay As You Grow | |
|---|---|---|
| wywołań/dzień dla standardowych API danych | 1,000 | 50,000 |
| wywołań/dzień dla API prognoz i statystyk | 200 | 10,000 |
| QPS | 2 | 20 |
Liczniki dzienne resetują się o północy UTC. Otrzymujesz e-mail przy 80% i 100% limitu.
Przykłady kodu
curl
curl "https://nakordoni.eu/api/v1/data/queue?ppid=id_13" \ -H "Authorization: Bearer $NKD_API_KEY"
JavaScript (fetch)
const res = await fetch('https://nakordoni.eu/api/v1/data/forecast?ppid=id_13&prediction_steps=24', {
headers: { Authorization: `Bearer ${process.env.NKD_API_KEY}` }
});
const { ok, data, error, usage } = await res.json();
if (!ok) throw new Error(error?.code ?? res.status);
console.log(`forecast points: ${data.length}, calls left today: ${usage.limit - usage.used}`);
Python (requests)
import os, requests
r = requests.get(
"https://nakordoni.eu/api/v1/data/stats",
params={"ppid": "id_15", "compare": 1},
headers={"Authorization": f"Bearer {os.environ['NKD_API_KEY']}"},
timeout=15,
)
payload = r.json()
print(payload["data"]["daily"], payload["usage"])
Produkty
Pick an endpoint for its full reference, parameters, versions and a live sandbox.
Standardowy korzysta z domyślnej puli danych · Ciężki korzysta z limitu prognozy i statystyk — zobacz Limity
Kolejki graniczne
Aktualny stan każdego produktu Developer API: online / zdegradowany / offline, opóźnienie odpowiedzi i czas ostatniego sprawdzeni…
Katalog wszystkich monitorowanych przejść granicznych: identyfikatory, nazwy, kraje, współrzędne i status. Użyj go, aby poznać wa…
Wszystkie przejścia na danej granicy dla jednego typu pojazdu w jednym zapytaniu — żywa kolejka, szacowany czas i świeżość danych…
Znajdź PPID przejść granicznych po nazwie w dowolnym języku. Zwraca wszystkie PPID dla tej lokalizacji pogrupowane wg typu pojazd…
Kolejki w czasie rzeczywistym, szacowany czas oczekiwania i status dla dowolnego przejścia. Zawiera blok snapshot: aktualna kolej…
Pobierz status kolejki i świeżość danych dla do 20 punktów kontrolnych w jednym żądaniu. Przydział jest liczony jako ⌈(N PPID × p…
Pobliskie alternatywne przejścia na tej samej granicy z aktualnymi kolejkami i różnicami odległości.
Kiedy przejście było ostatnio aktualizowane, przez jakie źródło, oraz ocena świeżości.
Prognozy i statystyki
Prognoza poziomów kolejki na bazie zespołu modeli ML: horyzonty 24-godzinny i 7-dniowy (168 h) z przedziałami ufności. Ten sam mo…
Godzinowe historyczne statystyki kolejki dla przejścia i daty: 24 wartości godzinowe, dobowa średnia/min/max, godziny szczytu i n…
Statystyki typowego tygodnia dla przejścia: macierz 7×24 dzień-tygodnia×godzina (mediana + zakres p25/p75), najspokojniejszy/najb…
Paliwo i lokalizacje
Średnie ceny benzyny/oleju napędowego/LPG w krajach UE oraz najbliższe stacje, zagregowane z oficjalnych źródeł krajowych.
Podsumowanie cen paliwa dla każdego dużego miasta w kraju: najtańsza stacja i średnia z 5 najtańszych.
Parkingi dla ciężarówek (14 tys.+), darmowe prysznice, serwisy i supermarkety w całej Europie ze współrzędnymi.
Kursy wymiany oparte na EUR dla PLN, CZK, HUF, USD, GBP, CHF, NOK i UAH, źródło Frankfurter (ECB), cache 6h. Brak parametrów — za…
Planowanie podróży
Czas przejazdu + kolejka graniczna dla wszystkich przejść z danego miejsca wyjazdu. Zwraca czas jazdy, bieżącą kolejkę, łączny sz…
Europejskie ograniczenia ruchu ciężarówek według kraju i daty, w tym zakazy sezonowe i świąteczne.
Przepisy dotyczące niedzielnego handlu detalicznego i najbliższe niedziele handlowe dla każdego regulowanego kraju UE.
Official public holidays per European country — dates, local names and type, each country's full holiday list included. Backed by…
Kierowcy i drogi
Zatwierdzone zgłoszenia stanu dróg w pobliżu granic i na głównych korytarzach: dziury, roboty drogowe, zamknięcia, lód, zagrożeni…
Wyniki przekraczania granicy według przewoźnika autobusowego: przejazdy, średni/medianowy/min/max czas oczekiwania w minutach — z…
Asystent AI
Other
History data export
Approved developers can download hourly-averaged, published border-queue history for up to 5 checkpoints (rolling window up to 90 days) as gzipped CSV, NDJSON, or JSON. This is a portal-only feature — NOT an API endpoint; you build and download exports from the "Data export" tab in your account.
Access is granted on request: open a Data ticket telling us which checkpoints, the time window, and your intended use. Once approved, the Data export tab appears in your account. Default limit: 1 export/day, up to 5 checkpoints each — ask us to raise it.
Fields — one row per checkpoint per UTC hour
| Parametr | Opis |
|---|---|
ppid | Checkpoint id |
checkpoint_name | Checkpoint name |
hour_utc | Hour bucket, ISO-8601 UTC |
direction | e.g. UA->PL |
vehicle_type | car / bus / truck / pedestrian |
avg_queue_length | Hourly average queue length |
avg_wait_minutes | Hourly average wait; null where a checkpoint has no official wait feed |
sample_count | Number of observations in the hour |
Data is published-only and passes our anomaly / data-quality checks before export (no raw per-report data). All timestamps are UTC. Files are kept for 10 days.
Provenance: every file embeds a signed fingerprint (sha256 + HMAC) in its header, so any copy can later be confirmed as genuine nakordoni.eu data and checked for tampering — even after download.
# sha256: 3f9c… # signature: e87b… ppid,checkpoint_name,hour_utc,direction,vehicle_type,avg_queue_length,avg_wait_minutes,sample_count id_10,Hrushiv,2026-06-12T02:00:00Z,UA->PL,car,11,,4
Co możesz zbudować
Te same produkty danych renderują wizualizacje na nakordoni.eu — tygodniowe wykresy prognoz, godzinowe profile kolejek, karty statusu na żywo. Przedsmak tego, co zawierają API prognoz i statystyk:
Atrybucja
Integracje w planie Explorer muszą pokazywać widoczny link "Data by nakordoni.eu" wszędzie tam, gdzie wyświetlane są dane. To utrzymuje darmowy plan darmowym.
Dokładny kod
Skopiuj ten fragment bez zmian. Link musi pozostać indeksowalny: zwykły HTML <a href>, po którym mogą podążać wyszukiwarki — NIE dodawaj rel="nofollow" ani rel="sponsored", nie renderuj go wyłącznie przez JavaScript i nie ukrywaj przez CSS.
<a href="https://nakordoni.eu/" title="Border queues, forecasts & statistics">Data by nakordoni.eu</a>
Kompaktowy drobny wariant (np. pod wykresem lub widżetem):
<p style="font-size:12px;margin:4px 0"> Data by <a href="https://nakordoni.eu/">nakordoni.eu</a> </p>
Możesz linkować do swojej wersji językowej, np. https://nakordoni.eu/pl/ — liczy się każdy indeksowalny link do nakordoni.eu. Tekst kotwicy "Data by nakordoni.eu" musi pozostać po angielsku.
Gdzie umieścić
- Bezpośrednio obok lub pod blokiem danych (tabela, wykres, widżet, odpowiedź) — na tym samym ekranie, widoczny bez dodatkowych kliknięć.
- Na każdej stronie lub ekranie aplikacji, gdzie pojawiają się nasze dane — nie tylko na stronie "o nas".
- Czytelny rozmiar i kontrast: co najmniej ~11px, nie ukryty, nie zwinięty, nie w kolorze tła.
- Natywne aplikacje mobilne bez linków HTML: pokaż tekst "Data by nakordoni.eu" na ekranie z danymi i umieść klikalny link na ekranie informacyjnym.
Okresowo weryfikujemy atrybucję na "stronie wykorzystania danych" podanej przy rejestracji. Brak lub deindeksacja atrybucji w planie Explorer prowadzi najpierw do przypomnienia, potem do zawieszenia klucza. Klienci Pay As You Grow mogą pominąć atrybucję.