Documentación de la API
REST + JSON sobre HTTPS. Una URL base, una clave, envelopes predecibles.
| URL base | https://nakordoni.eu/api/v1/data/ |
|---|---|
| Formato | JSON, UTF-8 |
| Auth | Authorization: Bearer NKD-DEV-… |
| Versionado | Versionado en la ruta y por endpoint: /api/v1/… es estable; /api/v2/… sirve el comportamiento nuevo solo para los endpoints que han cambiado y recurre de forma transparente a v1 para el resto. Las respuestas de v1 no cambian nunca. Si una versión más reciente sustituye a la que llama tu clave, te enviamos un correo y mostramos un aviso en el portal para desarrolladores: no tienes que descubrirlo en el registro de cambios. |
En esta página
Autenticación
Cada solicitud necesita tu clave API en la cabecera Authorization (recomendado) o como parámetro ?key=.
curl "https://nakordoni.eu/api/v1/data/queue?ppid=id_13" \ -H "Authorization: Bearer NKD-DEV-XXXX-XXXX-XXXX"
Envelope de respuesta
{
"ok": true,
"api_version": "v1",
"product": "queue",
"attribution": "Data by nakordoni.eu",
"data": { ... },
"usage": { "limit": 1000, "used": 42, "reset": "2026-06-06T00:00:00Z" }
}
Los errores devuelven ok:false con error.code (missing_api_key, invalid_api_key, qps_exceeded, quota_exceeded, unknown_product, product_unavailable, bad_request, internal_error) y estado HTTP 401/403/404/429/500. Las cabeceras de límite de tasa X-Devapi-Limit y X-Devapi-Remaining se envían en cada respuesta medida.
Cuotas
| Explorer | |
|---|---|
| llamadas/día en las API de datos estándar | 1,000 |
| llamadas/día en las API de previsiones y estadísticas | 200 |
| QPS | 2 |
Los contadores diarios se reinician a medianoche UTC. Recibes un correo al 80% y al 100% de la cuota.
Los planes de pago suben cada uno de estos límites. Planes actuales y sus cuotas: Planes
Ejemplos de código
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"])
Excel (Power Query)
Trae datos en vivo de colas, previsiones o prohibiciones para camiones directamente a un libro con el conector JSON integrado de Power Query — sin código, con actualización programada. El mismo patrón de Headers funciona para cualquier producto de esta API — solo cambia la URL.
Data → Get Data → From Other Sources → Blank Query, then Home → Advanced Editor and paste:
let
ApiKey = "NKD-DEV-XXXX-XXXX-XXXX",
Source = Json.Document(Web.Contents("https://nakordoni.eu/api/v1/data/queue",
[Query = [ppid = "id_13"], Headers = [Authorization = "Bearer " & ApiKey]])),
data = Source[data],
AsTable = Record.ToTable(data)
in
AsTable
Guarda la clave API dentro de la consulta M (Home → Advanced Editor), no en una celda de la hoja — Power Query bloquea una solicitud web construida a partir de otra consulta o celda ("Formula.Firewall") a menos que el nivel de privacidad esté establecido en Organizational.
Varios pasos fronterizos en una sola tabla (paneles de flota) — e.g. every truck crossing UA→EU (crossing_type=9):
let
ApiKey = "NKD-DEV-XXXX-XXXX-XXXX",
Source = Json.Document(Web.Contents("https://nakordoni.eu/api/v1/data/border/1/all/9",
[Headers = [Authorization = "Bearer " & ApiKey]])),
checkpoints = Source[data],
AsTable = Table.FromRecords(checkpoints)
in
AsTable
Data → Refresh All en Excel, o una actualización programada en Power BI / Excel Online, mantiene los datos al día — sin código de sondeo (polling).
Integración con ERP (BAS / BAF y plataformas de la familia 1C)
BAS / BAF y las demás plataformas de la familia 1C pueden llamar a esta API directamente desde una tarea programada — HTTPConnection más ReadJSON, sin middleware ni servicios adicionales que alojar. El montaje más habitual mantiene al día un registro de información con los precios de los carburantes en la UE.
Actualizar un registro de información (precios de carburantes, todos los países en una llamada)
// Scheduled job — runs once a day
Connection = New HTTPConnection("nakordoni.eu", 443, , , , 30, New OpenSSLSecureConnection);
Headers = New Map;
Headers.Insert("Authorization", "Bearer NKD-DEV-XXXX-XXXX-XXXX");
Request = New HTTPRequest("/api/v1/data/fuel", Headers);
Response = Connection.Get(Request);
Reader = New JSONReader;
Reader.SetString(Response.GetBodyAsString("UTF-8"));
Answer = ReadJSON(Reader, True);
Reader.Close();
If Answer["ok"] <> True Then
// Answer["error"]["code"] says why; Answer["usage"] holds your quota state
Return;
EndIf;
For Each Row In Answer["data"] Do
Record = InformationRegisters.FuelPrices.CreateRecordManager();
Record.Period = CurrentSessionDate();
Record.Country = Row["country"]; // "PL", "DE", "SK", "RO", ...
Record.Diesel = Row["diesel"];
Record.Petrol = Row["petrol"];
Record.LPG = Row["lpg"];
Record.Currency = Row["currency"];
Record.Write();
EndDo;
Tres cosas que hay que acertar: pase New OpenSSLSecureConnection en el puerto 443 o la petición se caerá en TLS; llame a /api/v1/data/fuel sin el parámetro country para que una sola petición devuelva todos los países en lugar de una llamada por país; y compruebe ok antes de tocar data — los fallos vuelven como ok:false con un error.code, no como excepción. El ejemplo usa el juego de palabras clave en inglés de la plataforma; los equivalentes localizados (HTTPСоединение, ПрочитатьJSON, РегистрыСведений) se comportan igual.
Los precios de los carburantes cambian en origen una vez al día, así que una tarea programada una o dos veces al día basta y se queda muy por debajo de la cuota gratuita Explorer. Los datos de cola en directo (queue, multi, border) cambian cada pocos minutos: consúltelos a su propio ritmo y use multi para leer hasta 5 pasos fronterizos en una sola petición en vez de en un bucle.
Servidor MCP
¿Prefieres la llamada a herramientas en lugar de REST? Ejecutamos un servidor MCP real (transporte Streamable HTTP) que expone un subconjunto seguro, de solo lectura, de esta API como herramientas MCP — la misma clave API, la misma cuota, solo un transporte diferente.
Endpoint: https://nakordoni.eu/mcp · Server card: /.well-known/mcp/server-card.json
get_api_status — no key required list_checkpoints — country, lang get_border_queue — origin, destination, crossing_type, lang get_live_queue — ppid, lang get_queue_forecast — ppid, prediction_steps
Configuración del cliente (Claude Desktop / Claude Code):
{
"mcpServers": {
"nakordoni": {
"url": "https://nakordoni.eu/mcp",
"headers": { "Authorization": "Bearer NKD-DEV-XXXX-XXXX-XXXX" }
}
}
}
Productos
Elige un endpoint para ver su referencia completa, parámetros, versiones y un sandbox en vivo.
Estándar utiliza la cuota de datos estándar · Pesado utiliza la cuota de pronósticos y estadísticas — ver Cuotas
Colas en frontera
Estado en tiempo real de cada producto de la Developer API: en línea / degradado / sin conexión, latencia de respuesta y hora de …
Directorio de todos los puestos fronterizos monitorizados: ID, nombres, países, coordenadas y estado. Úsalo para descubrir los va…
Todos los pasos en una frontera dada + tipo de vehículo en una sola llamada. Soporta destino único, lista separada por comas o "a…
Encuentre los PPID de los pasos fronterizos por nombre en cualquier idioma. Devuelve todos los PPID de esa ubicación agrupados po…
Colas en tiempo real, estimación del tiempo de espera y estado para cualquier paso fronterizo monitoreado. Incluye un bloque snap…
Wait time adjusted for live traffic flow and weather, with a full breakdown of each adjustment, plus the same wait_status/trend f…
Obtén el estado de las colas y la frescura de los datos para hasta 5 pasos fronterizos en una sola solicitud. La cuota se cuenta …
Puestos alternativos cercanos en la misma frontera con las colas actuales y las diferencias de distancia.
Cuándo se actualizó por última vez un puesto, por qué fuente, y una valoración de frescura.
Pronósticos y estadísticas
Pronóstico mediante ensemble de ML de los niveles de cola: horizontes de 24 horas y 7 días (168h) con intervalos de confianza. El…
Estadísticas históricas horarias de cola por puesto y fecha: 24 valores horarios, promedio/mín/máx diarios, horas pico y horas má…
Estadísticas de semana típica por puesto fronterizo: matriz 7×24 día-de-semana×hora (mediana + banda p25/p75), día más tranquilo/…
Combustible y ubicaciones
Precios del combustible en los países de la EU — promedios por country, estaciones más cercanas por coordenadas, o estaciones cer…
Resumen de precios de combustible por ciudad: la estación más barata y media de las 5 más económicas.
Las gasolineras más cercanas a un punto o city con precios actuales por tipo de combustible, ordenadas por distancia. Cobertura a…
Las gasolineras más baratas alrededor de un punto o city, clasificadas por precio para el tipo de combustible elegido (en caso de…
El mejor precio de combustible disponible para cualquier punto de Europa, resuelto por una escala de tres niveles. Donde tenemos …
La tabla de nombres sobre la que se apoyan todos los productos de carburante: nuestros códigos canónicos y el nombre que lleva ca…
Aparcamientos para camiones (14k+), duchas gratuitas, servicios y supermercados en toda Europa con coordenadas. Los resultados se…
Los aparcamientos para camiones, Autohöfe y áreas de descanso más cercanos a un punto o city — ordenados por distancia con distan…
Los supermercados y tiendas de alimentación más cercanos a un punto o city — ordenados por distancia con distance_km, nombre, coo…
Las duchas gratuitas para conductores más cercanas a un punto o city — ordenadas por distancia con distance_km, nombre, coordenad…
Los restaurantes más cercanos y adecuados para conductores a un punto o city — ordenados por distancia con distance_km, nombre, c…
Las zonas industriales y logísticas más cercanas a un punto o city (más de 3k+ en toda Europa) — ordenadas por distancia con dist…
Tipos de cambio basados en EUR para PLN, CZK, HUF, USD, GBP, CHF, NOK y UAH, fuente Frankfurter (ECB), caché 6 horas. Sin parámet…
Planificación de viajes
Un plan puerta a puerta para un viaje fronterizo: la ruta, los pasos fronterizos que hay en ella con la cola en directo o una pre…
Tiempo de viaje + cola fronteriza para todos los pasos desde un punto de origen.
Restricciones europeas de circulación de camiones por country y fecha, incluidas las prohibiciones estacionales y festivas. Cada …
Normativa sobre la apertura comercial dominical y próximos domingos comerciales por país regulado de la UE.
Días festivos oficiales por país europeo — fechas, nombres locales y tipo, con la lista completa de festivos de cada país incluid…
Conductores y carreteras
Informes aprobados sobre el estado de la carretera cerca de las fronteras y en los corredores principales: baches, obras, cierres…
Si un country requiere una viñeta para circular por autopista, precios actuales por duración y dónde leer más — por country o par…
Tiendas de operadores móviles y puntos WiFi útiles para conductores en ruta, del más cercano a un punto o city con distance_km.
Rendimiento de cruce de frontera por transportista de autobús: cruces, minutos de espera promedio/mediano/mín/máx — elaborados a …
El peligro en la carretera en un paso fronterizo en una sola escala 0–5: carretera despejada, niebla, nieve, lluvia, hielo o vien…
Air-raid alerts and airborne objects near ONE border crossing. Anchor on a checkpoint (ppid), a coordinate pair or a city and get…
Your Fleet (NakBus Live)
Su propia flota NakBus Live: cada vehículo registrado en su empresa con matrícula, etiqueta, ruta asignada, indicador de mapa púb…
Dónde están sus autobuses ahora mismo — una fila por cada vehículo activo con lat/lon, marca de tiempo y su antigüedad, velocidad…
Trayectoria GPS registrada de sus propios vehículos: cada punto de posición almacenado dentro de una ventana temporal, en orden c…
Asistente de IA
Hazle a nuestro asistente de IA de producción cualquier pregunta sobre el cruce de fronteras (colas, pronósticos, normas, combust…
Tu propio asistente de IA, basado en TU contenido y en NUESTROS datos fronterizos en vivo. Danos tus archivos markdown o indícano…
Exportación de datos históricos
Los desarrolladores aprobados pueden descargar el histórico publicado de colas en frontera, promediado por hora, de hasta 5 pasos fronterizos (ventana móvil de hasta 90 días) en CSV, NDJSON o JSON comprimidos con gzip. Es una función solo del portal — NO un endpoint de la API; las exportaciones se crean y se descargan desde la pestaña «Exportación de datos» de tu cuenta.
El acceso se concede a petición: abre un ticket de Data indicándonos qué pasos fronterizos, el intervalo de fechas y el uso previsto. Una vez aprobado, la pestaña Exportación de datos aparece en tu cuenta. Límite por defecto: 1 exportación al día, con hasta 5 pasos cada una — pídenos ampliarlo.
Campos — una fila por paso fronterizo y hora UTC
| Parámetro | Descripción |
|---|---|
ppid | ID del paso fronterizo |
checkpoint_name | Nombre del paso fronterizo |
hour_utc | Franja horaria, ISO-8601 UTC |
direction | p. ej. UA->PL |
vehicle_type | car / bus / truck / pedestrian |
avg_queue_length | Longitud media horaria de la cola |
avg_wait_minutes | Espera media horaria; null cuando un paso no tiene un feed oficial de espera |
sample_count | Número de observaciones en la hora |
Solo se exportan datos publicados, que han pasado nuestros controles de anomalías y calidad (nada de datos brutos por reporte). Todas las marcas de tiempo están en UTC. Los archivos se conservan 10 días.
Procedencia: cada archivo incorpora en su cabecera una huella firmada (sha256 + HMAC), de modo que cualquier copia puede confirmarse después como datos auténticos de nakordoni.eu y comprobarse frente a manipulaciones — incluso tras la descarga.
# 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
Lo que puedes crear
Los mismos productos de datos generan los elementos visuales de nakordoni.eu — gráficos de previsión semanal, perfiles horarios de colas, tarjetas de estado en tiempo real. Una muestra de lo que contienen las API de previsiones y estadísticas:
Atribución
Las integraciones del plan Explorer deben mostrar un enlace visible "Data by nakordoni.eu" allí donde se muestren los datos. Es lo que mantiene gratis el plan gratuito.
El código exacto
Copie este fragmento tal cual. El enlace debe seguir siendo indexable: un <a href> HTML simple que los buscadores puedan seguir — NO añada rel="nofollow" ni rel="sponsored", no lo renderice solo con JavaScript ni lo oculte con CSS.
<a href="https://nakordoni.eu/" title="Border queues, forecasts & statistics">Data by nakordoni.eu</a>
Variante compacta en letra pequeña (p. ej., bajo un gráfico o widget):
<p style="font-size:12px;margin:4px 0"> Data by <a href="https://nakordoni.eu/">nakordoni.eu</a> </p>
Puede enlazar a su versión de idioma, p. ej. https://nakordoni.eu/es/ — cuenta cualquier enlace indexable a nakordoni.eu. El texto ancla "Data by nakordoni.eu" debe permanecer en inglés.
Dónde colocarlo
- Directamente junto o debajo del bloque de datos (tabla, gráfico, widget, respuesta) — en la misma pantalla, visible sin clics adicionales.
- En cada página o pantalla de la app donde aparezcan nuestros datos — no solo en una página "acerca de".
- Tamaño y contraste legibles: al menos ~11px, no oculto, no plegado, no del color del fondo.
- Apps móviles nativas sin enlaces HTML: muestre el texto "Data by nakordoni.eu" en la pantalla de datos y ponga el enlace pulsable en la pantalla de información.
Verificamos periódicamente la atribución en la "página de uso de datos" indicada al registrarse. La atribución ausente o desindexada en el plan Explorer gratuito conlleva primero un recordatorio y luego la suspensión de la clave. Los clientes con un plan de pago pueden omitirla.
Licencia de datos y mercados
Your API key grants a licence to use our data in the countries you declared when you signed up, and only in those countries. We review every declaration before granting full access, because our data is our own product and we do not license it into markets without knowing where it will be published.
- Declare every country your site, app or product serves. You can change the list from your dashboard at any time; a change puts your account back into review.
- Until your markets are approved your key runs on reduced limits - half of the Starter plan allowance. This applies whatever plan you are on.
- Es posible que solo aprobemos algunos de los países que solicitaste. La lista aprobada, no la solicitada, es la que cubre tu licencia.
- Publishing or redistributing our data in a market you did not declare, or reselling it as a competing data feed, is a breach of these terms and can suspend your key without notice.
- Some plans are offered only in selected regions. Availability depends on the markets you declare.
Actualidad de los datos
La actualidad de tus datos depende de tu plan. La respuesta no incluye ningún indicador — todos los planes devuelven los mismos campos, los mismos tipos y la misma estructura de respuesta.
- Planes de pago — Student, Starter, Pro y Pro MAX: telemetría en directo, sin retraso.
- Plan gratuito Explorer: una instantánea de los últimos 15 a 30 minutos. El desfase exacto varía de una petición a otra.
Una respuesta retrasada nunca es un error ni un problema de cuota: es una respuesta completa y válida con cifras más antiguas. Repetir la petición no devuelve datos más recientes.
Si tu aplicación necesita datos actuales, cualquier plan de pago devuelve telemetría en tiempo real.