All checkpoints on a given border + vehicle type in one call — live queue, wait estimate, and data freshness for every crossing. Supports single destination, comma-separated list, or "all". Results sorted by queue length ascending.
GEThttps://nakordoni.eu/api/v1/data/border/1/all/4
— quota class: heavy
Language for checkpoint names in the response (default en)
Response fields— inside the data object of the envelope. [] marks a list, so data.items[].name is the name field of each element. A field is null, absent or an empty list when we hold no value for it — never a placeholder.
Field
Description
data.origin
Numeric country code the path asked for, plus origin_name in the requested language.
data.destinations
Numeric country codes the call expanded to, plus destination_names.
data.crossing_type
Vehicle type of every row, plus crossing_type_label.
data.checkpoints[].ppid
Checkpoint ID.
data.checkpoints[].name
Checkpoint name in the requested language.
data.checkpoints[].border
Numeric country code of the neighbour this crossing leads to, plus border_name.
data.checkpoints[].queue
Vehicles counted in the queue right now.
data.checkpoints[].wait_min
Estimated wait in minutes; null where the crossing has no wait signal.
data.checkpoints[].wait_status
Plain-language band for the wait (e.g. free_flow, moderate, heavy).
data.checkpoints[].trend_percent
Change against the recent baseline, with trend_direction (up | down | flat).
data.checkpoints[].updated_at
When this reading was taken, plus age_min — how old it is now.
data.checkpoints[].source_url
Public page for the checkpoint, for the attribution link.
data.count
Number of checkpoints returned; generated_at is when the set was assembled.
What's different in this version:
Directional: path order is the travel direction (/1/2/6 = UA→PL, /2/1/6 = PL→UA). Adds a per-checkpoint direction{from,to} + stale flag, and a ?max_age_min= freshness filter. v1 returns both sides of the border regardless of order.
Directional border queues. The path order is the travel direction, matched against each checkpoint's own orientation: /1/2/6 = buses UA→PL (Ukrainian-side crossings), /2/1/6 = buses PL→UA (Polish-side crossings) — swap origin/destination for the opposite direction. Each checkpoint also carries a "stale" flag, and ?max_age_min=N returns only recently-updated crossings. Everything else matches v1.
GEThttps://nakordoni.eu/api/v2/data/border/1/2/6
— quota class: heavy
Destination (URL path segment): single country code, comma-separated list (e.g. 2,3,5), or "all". Order is directional — swap origin/destination for the opposite travel direction.
Language for checkpoint names in the response (default en)
max_age_min
Optional freshness filter (query string): return only checkpoints whose live reading is newer than N minutes (also drops those with no reading). Each checkpoint carries a "stale" boolean (older than 240 min, or than max_age_min if set).
Response fields— inside the data object of the envelope. [] marks a list, so data.items[].name is the name field of each element. A field is null, absent or an empty list when we hold no value for it — never a placeholder.
Field
Description
data.origin
Numeric country code the path asked for, plus origin_name in the requested language.
data.destinations
Numeric country codes the call expanded to, plus destination_names.
data.crossing_type
Vehicle type of every row, plus crossing_type_label.
data.checkpoints[].ppid
Checkpoint ID.
data.checkpoints[].name
Checkpoint name in the requested language.
data.checkpoints[].border
Numeric country code of the neighbour this crossing leads to, plus border_name.
data.checkpoints[].queue
Vehicles counted in the queue right now.
data.checkpoints[].wait_min
Estimated wait in minutes; null where the crossing has no wait signal.
data.checkpoints[].wait_status
Plain-language band for the wait (e.g. free_flow, moderate, heavy).
data.checkpoints[].trend_percent
Change against the recent baseline, with trend_direction (up | down | flat).
data.checkpoints[].updated_at
When this reading was taken, plus age_min — how old it is now.
data.checkpoints[].source_url
Public page for the checkpoint, for the attribution link.
data.count
Number of checkpoints returned; generated_at is when the set was assembled.