Truck Route API Online
API de rutas para camiones con gasolineras y aparcamientos para camiones a lo largo del trayecto, además de básculas y un plan de descansos del conductor. Envía origen, destino y tu vehículo (altura, peso, longitud, anchura, carga por eje, mercancías peligrosas) y recibe una ruta legal para vehículos pesados con las restricciones y las prohibiciones de circulación de camiones con fecha que encuentra, los pasos fronterizos del recorrido con su espera en directo, gasolineras con precios, aparcamientos para camiones (vigilado, capacidad, servicios) y básculas dentro de un corredor alrededor de la línea. Con include=rest se aplican las normas UE 561/2006 al estado de tu conductor: pausas de 45 minutos como máximo cada 4 h 30, descansos diarios antes del límite de 9 h / 10 h, cada uno ubicado en un aparcamiento real antes de alcanzar el límite, esperas por prohibiciones de fin de semana y festivos, esperas en frontera en la línea temporal, tripulación sencilla o doble — y la hora estimada de llegada lo incluye todo. El plan de descansos es una ayuda de planificación, no un registro de tacógrafo.
GET https://nakordoni.eu/api/v2/data/truck-route
— clase de cuota: route
| Parámetro | Descripción |
|---|---|
from | Origen como lat,lon (obligatorio salvo que se indique from_city), p. ej. 52.2297,21.0122 |
to | Destino como lat,lon (obligatorio salvo que se indique to_city) |
from_city | Nombre de la ciudad de origen en lugar de coordenadas (añade from_country para mayor precisión) |
from_country | País ISO 3166-1 alpha-2 de from_city, p. ej. PL |
to_city | Nombre de la ciudad de destino en lugar de coordenadas |
to_country | País ISO 3166-1 alpha-2 de to_city |
via | Hasta 5 puntos intermedios como lat,lon|lat,lon |
height | Altura del vehículo en metros (1.0–5.0) |
weight | Peso bruto del vehículo en toneladas (1–60); determina las restricciones y prohibiciones por peso |
length | Longitud del vehículo en metros (2–30) |
width | Anchura del vehículo en metros (1.0–3.5) |
axle_load | Carga por eje en toneladas (1–20) |
axles | Número de ejes, tractora más remolque (2–12); se usa para el enrutamiento y para las categorías de peaje (por defecto para peajes: 5 desde 18 t, 3 desde 12 t, si no 2) |
trailers | Número de remolques (0–3); se devuelve en la respuesta, sin efecto en la ruta por ahora |
hazmat | Mercancías peligrosas: 0 (por defecto), 1 = carga ADR sin clase indicada, o una lista separada por comas de clases ADR 1–9 y/o explosive, gas, flammable, flammable_solid, oxidizing, poison, radioactive, corrosive, harmful_to_water |
adr_tunnel | Código de restricción de túneles ADR de la carga: B, C, D o E. Se evitan los túneles cuya categoría lo prohíbe (implica hazmat) |
avoid | Lista separada por comas de tolls, ferries, motorways, borders, tunnels, unpaved, low_emission_zones |
emission_class | Clase de emisiones del vehículo euro0 … euro6; se usa para comprobar zonas de bajas emisiones y en las notas de peaje (los peajes se calculan con tarifas Euro VI) |
alternatives | Número de rutas alternativas, 0–2 (por defecto 0; solo para rutas sin puntos via) |
geometry | polyline5 (por defecto), polyline6 o geojson |
arrive_at | Llegada deseada según RFC 3339; la salida se planifica hacia atrás incluyendo pausas y descansos (en lugar de depart_at) |
route_type | fastest (por defecto) o eco |
include | Lista separada por comas de fuel, parking, weigh, rest (por defecto: los cuatro) |
corridor_km | Distancia máxima a la ruta para gasolineras, aparcamientos y básculas, 0.2–5 km (por defecto 2) |
fuel | Tipos de combustible a valorar, lista separada por comas (por defecto diesel) |
depart_at | Salida en ISO 8601 con zona horaria, hasta 14 días por adelantado (por defecto: ahora) |
aliases | Aceptados para cambiar fácilmente: depart → depart_at, departAt, arriveAt, vehicleHeight, vehicleWidth, vehicleLength, vehicleWeight (kg o t), vehicleAxleWeight / axleWeight → axle_load, vehicleNumberOfAxles / axleCount → axles, vehicleTrailers → trailers, vehicleAdrTunnelRestrictionCode → adr_tunnel, vehicleEmissionClass → emission_class, maxAlternatives → alternatives, waypoints → via |
crew | 1 (por defecto) o 2 conductores — la tripulación doble usa la ventana de descanso diario de 30 horas y descansos de 9 h |
traffic | forecast (predeterminado), live u off. forecast = congestión recurrente aprendida + tráfico en directo cerca de la salida + obras, cierres y clima en el momento del paso; live = tráfico actual sin el patrón aprendido; off = sin capa de tráfico (tiempo de conducción en flujo libre) |
driven_since_break_min | Estado del conductor: minutos conducidos desde la última pausa de 45 minutos (por defecto 0) |
driven_today_min | Estado del conductor: minutos conducidos desde el último descanso diario (por defecto 0) |
driven_week_min | Estado del conductor: minutos conducidos esta semana natural (por defecto 0) |
driven_last_week_min | Estado del conductor: minutos conducidos la semana pasada, para el límite de 90 h por quincena (por defecto 0) |
reduced_daily_rests_used | Descansos diarios reducidos (9 h) ya tomados desde el último descanso semanal, 0–3 (por defecto 0) |
extended_days_used | Días de conducción de 10 horas ya usados esta semana, 0–2 (por defecto 0) |
last_weekly_rest_end | Fin del último descanso semanal en ISO 8601 (por defecto: se supone justo antes de la salida) |
reduced_weekly_ok | 1 = se puede planificar un descanso semanal reducido (24 h) (por defecto 0 = regular de 45 h) |
lang | Código de idioma para nombres y mensajes (por defecto en) |
Campos de la respuesta — dentro del objeto data del sobre de respuesta. [] indica una lista, así que data.items[].name es el campo name de cada elemento. Un campo es null, no aparece o es una lista vacía cuando no tenemos valor: nunca un marcador de posición.
| Campo | Descripción |
|---|---|
data.route | distance_m, duration_s (pure driving), geometry (format in geometry_format), bbox, countries (ISO codes in order), departure_at, toll_distance_m, fuel_l, ascent_m, descent_m, legal, avoid; with arrive_at also arrive_at_requested. |
data.route.country_split[] | Per country in route order: country, km, duration_min. |
data.route.adr | Only with adr_tunnel: tunnel_code, tunnels_avoided[] and tunnels_on_route[] (name, category, lat, lon). |
data.route.low_emission_zones_avoided[] | Only with avoid=low_emission_zones: zones the route was moved out of (name, country); low_emission_zones_on_route[] lists any that could not be avoided. |
data.tolls | Estimated truck tolls: currency (EUR), total_eur, complete, by_country[] (country, km_toll, cost_eur, basis), objects[] (priced tunnels and bridges: name, type, country, lat, lon, cost_eur, basis), estimate, coverage_note. A country we cannot price has cost_eur null and is named in coverage_note. |
data.alternatives[] | Only with alternatives: distance_m, duration_s, forecast_duration_s (with traffic), tolls (currency, total_eur, complete, by_country) and geometry for each alternative route. Alternatives are planned without time-dependent restrictions and are not ban-checked; the main route is. Empty when no reasonable alternative exists. |
data.route.restriction_hits[] | Restrictions for this vehicle still on the line: kind, name, country, at_km. |
data.route.truck_bans[] | Dated truck driving bans on the route: name, kind, country, details, min_weight_t, window_from, window_to, eta_at_ban (on the traffic forecast timeline), eta_at_ban_free (free-flow timeline), km_from_start, applies, active, avoided. |
data.route.border_crossings[] | Crossings on the route: name, ppid, from_country, to_country, lat, lon, km_from_start, status; wait_min = time on the exit side + the entry side at the planned arrival (wait_at), null when neither side is measured (wait_minutes = same value, legacy name); wait_sides[] (side country, role exit|entry, ppid, min, basis live|forecast, note when not measured); wait_notes[]; wait_capped (a side over 48 h is planned at 48 h); registration_required = an electronic-queue lane: register before arriving, the time to get a slot is not included in the wait. |
data.route.warnings[] | code and message, e.g. ban_avoidance_skipped, restrictions_on_route, adr_tunnel_on_route, adr_tunnel_not_checked, low_emission_zone_on_route, closure_on_route (a full motorway closure overlaps the passing time), tolls_not_fully_avoided, arrive_at_not_reachable. |
data.route.closures_on_route[] | German motorways: closures, roadworks and traffic warnings within 150 m of the line whose time window overlaps the moment the truck passes: type (closure, roadwork, warning), road, title, km_from_start, eta, from, to, full_closure, lorry_specific (text names lorries or a weight limit), lat, lon. The route is not changed around them. |
data.traffic_forecast | Unless traffic=off: model, mode, duration_base, duration_s_free, duration_s_forecast, delay_s (recurring, live, roadworks, weather, total), hotspots[] (km_from_start, km_to, eta, delay_s, reason recurring|live|roadworks|lane_closure|closure|weather, label, road, confidence low|medium|high, dow_hour, delay_by_reason, country; jam_frequency and road_condition where known), weather_on_route[], closures_avoided[], recommended_alternative (a forecast-faster alternative is only recommended — the primary route is never swapped), coverage (how much data backed the plan, with a note), calc_ms. The forecast timeline drives the ETA, rest plan, ban timing and border-wait timing. A planning estimate; data collection started in September 2026. |
data.rest_plan[] | EU 561/2006 stops in order: type (break, daily_rest, weekly_rest), start_at, end_at, duration_min, km_from_start, parking (a parkings[] row or null), reason, overlaps_ban, counts_as. |
data.waits[] | Forced waits on the timeline: ban_wait (a driving ban) and border_wait, same shape as rest_plan. |
data.eta | Arrival time including driving, breaks, rests, ban waits and border waits; with driving_time_min, total_time_min and crew. |
data.weekly_rest_check | next_weekly_rest_due_by, weekly_rest_on_trip, driven_week_min_at_arrival, driven_fortnight_min_at_arrival, weekly and fortnight limits, reduced rests and 10 h days used at arrival. |
data.assumptions[] | Defaults applied to driver state you did not send, and country rules not planned for. |
data.rest_warnings[] | code, km_from_start, message — e.g. no_parking_in_window when a stop had to be placed at the legal limit. |
data.fuel_stations[] | name, brand, lat, lon, country, km_from_start, distance_from_route_km, detour_km, prices[] (fuel_type, price, currency, stale), price_updated_at. |
data.parkings[] | name, type (parking, rest_area, truck_stop, autohof), lat, lon, country, km_from_start, distance_from_route_km, detour_km, capacity, capacity_trucks (official truck spaces where known, e.g. German motorway rest areas), secure, amenities[], opening_hours. |
data.weigh_stations[] | name, lat, lon, country, km_from_start, distance_from_route_km, detour_km, type and side (null when not known). |
data.coverage | corridor_km, countries_on_route, fuel_grades, fuel countries with sparse or no price data, truncated lists, measured_at. |
data.resolved_locations | Only with from_city/to_city: query, lat, lon, label of the geocoded point. |
data.disclaimer | The rest plan is a planning aid, not a tachograph record or legal advice. |
data.attribution | List of credits to display: always "Data by nakordoni.eu"; plus "Weigh stations: © OpenStreetMap contributors (ODbL)" whenever weigh_stations is non-empty. |
curl "https://nakordoni.eu/api/v2/data/truck-route?from=52.2297,21.0122&to=52.52,13.405&weight=40&height=4&axles=5&emission_class=euro6&crew=1" \ -H "Authorization: Bearer NKD-DEV-XXXX-XXXX-XXXX"
Actualizado