Documentation de l'API
REST + JSON sur HTTPS. Une URL de base, une clé, des enveloppes prévisibles.
| URL de base | https://nakordoni.eu/api/v1/data/ |
|---|---|
| Format | JSON, UTF-8 |
| Auth | Authorization: Bearer NKD-DEV-… |
| Versionnage | 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. |
Sur cette page
Authentification
Chaque requête nécessite votre clé API dans l'en-tête Authorization (recommandé) ou en tant que paramètre ?key=.
curl "https://nakordoni.eu/api/v1/data/queue?ppid=id_13" \ -H "Authorization: Bearer NKD-DEV-XXXX-XXXX-XXXX"
Enveloppe de réponse
{
"ok": true,
"api_version": "v1",
"product": "queue",
"attribution": "Data by nakordoni.eu",
"data": { ... },
"usage": { "limit": 1000, "used": 42, "reset": "2026-06-06T00:00:00Z" }
}
Les erreurs renvoient ok:false avec error.code (missing_api_key, invalid_api_key, qps_exceeded, quota_exceeded, unknown_product, product_unavailable, bad_request, internal_error) et un statut HTTP 401/403/404/429/500. Les en-têtes de limitation de débit X-Devapi-Limit et X-Devapi-Remaining sont envoyés à chaque réponse facturée.
Quotas
| Explorer | Pay As You Grow | |
|---|---|---|
| appels/jour sur les API de données standard | 1,000 | 50,000 |
| appels/jour sur les API de prévisions et de statistiques | 200 | 10,000 |
| QPS | 2 | 20 |
Les compteurs quotidiens sont réinitialisés à minuit UTC. Vous recevez un e-mail à 80 % et à 100 % du quota.
Exemples de code
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"])
Serveur MCP
Vous préférez l'appel d'outils plutôt que REST ? Nous exploitons un véritable serveur MCP (transport Streamable HTTP) exposant un sous-ensemble sûr, en lecture seule, de cette API sous forme d'outils MCP — même clé API, même quota, juste un transport différent.
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
Configuration client (Claude Desktop / Claude Code):
{
"mcpServers": {
"nakordoni": {
"url": "https://nakordoni.eu/mcp",
"headers": { "Authorization": "Bearer NKD-DEV-XXXX-XXXX-XXXX" }
}
}
}
Produits
Pick an endpoint for its full reference, parameters, versions and a live sandbox.
Standard utilise la quote-part standard de données · Lourd utilise le quota de prévisions et statistiques — voir Quotas
Files d'attente frontalières
État en temps réel de chaque produit Developer API : en ligne / dégradé / hors ligne, latence de réponse et heure de dernière vér…
Annuaire de tous les points de passage frontaliers surveillés : identifiants, noms, pays, coordonnées et statut. Utilisez-le pour…
Tous les postes sur une frontière donnée + type de véhicule en un seul appel. Supporte destination unique, liste séparée par virg…
Trouvez les PPID des postes frontières par nom dans n'importe quelle langue. Renvoie tous les PPID pour cet emplacement regroupés…
Files d'attente en temps réel, estimation du temps d'attente et statut pour tout poste-frontière surveillé. Comprend un bloc snap…
Récupérez le statut de la file d'attente et la fraîcheur des données pour jusqu'à 20 points de contrôle en une seule demande. Le …
Points de passage alternatifs à proximité sur la même frontière avec les files actuelles et les écarts de distance.
Quand un point de passage a été mis à jour pour la dernière fois, par quelle source, et une évaluation de fraîcheur.
Prévisions et statistiques
Prévision par ensemble ML des niveaux de file : horizons de 24 heures et 7 jours (168h) avec intervalles de confiance. Le même mo…
Statistiques historiques horaires de file par point de passage et par date : 24 valeurs horaires, moyenne/min/max quotidiennes, h…
Statistiques semaine type par checkpoint : matrice 7×24 jour-de-semaine×heure (médiane + bande p25/p75), jour le plus calme/charg…
Carburant et emplacements
Prix moyens de l'essence/du diesel/du GPL dans les pays de l'UE ainsi que les stations les plus proches, agrégés à partir de sour…
Prix carburant par ville: station la moins chère et moyenne des 5 moins chères par grande ville.
Parkings poids lourds (14k+), douches gratuites, services et supermarchés à travers l'Europe avec coordonnées.
Taux de change basés sur EUR pour PLN, CZK, HUF, USD, GBP, CHF, NOK et UAH, provenant de Frankfurter (ECB), mis en cache 6 heures…
Planification de voyage
Temps de trajet + file d'attente frontalière pour tous les postes depuis un point d'origine.
Restrictions européennes de circulation des poids lourds par pays et par date, y compris les interdictions saisonnières et de jou…
Réglementations sur l'ouverture des commerces le dimanche et prochains dimanches ouvrés par pays de l'UE réglementé.
Official public holidays per European country — dates, local names and type, each country's full holiday list included. Backed by…
Conducteurs et routes
Signalements approuvés d'état des routes près des frontières et sur les grands corridors : nids-de-poule, travaux, fermetures, ve…
Performance de franchissement de frontière par transporteur en bus : passages, minutes d'attente moyenne/médiane/min/max — établi…
Assistant IA
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
| Paramètre | Description |
|---|---|
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
Ce que vous pouvez créer
Les mêmes produits de données génèrent les visuels de nakordoni.eu — graphiques de prévisions hebdomadaires, profils horaires des files, cartes de statut en temps réel. Un aperçu de ce que contiennent les API de prévisions et de statistiques :
Attribution
Les intégrations du forfait Explorer doivent afficher un lien visible « Data by nakordoni.eu » partout où les données sont présentées. C'est ce qui maintient le forfait gratuit gratuit.
Le code exact
Copiez ce fragment tel quel. Le lien doit rester indexable : un simple <a href> HTML que les moteurs de recherche peuvent suivre — n'ajoutez PAS rel="nofollow" ni rel="sponsored", ne le générez pas uniquement via JavaScript et ne le masquez pas en CSS.
<a href="https://nakordoni.eu/" title="Border queues, forecasts & statistics">Data by nakordoni.eu</a>
Variante compacte en petits caractères (p. ex. sous un graphique ou un widget) :
<p style="font-size:12px;margin:4px 0"> Data by <a href="https://nakordoni.eu/">nakordoni.eu</a> </p>
Vous pouvez pointer vers votre version linguistique, p. ex. https://nakordoni.eu/fr/ — tout lien indexable vers nakordoni.eu compte. Le texte d'ancre "Data by nakordoni.eu" doit rester en anglais.
Où le placer
- Directement à côté ou sous le bloc de données (tableau, graphique, widget, réponse) — sur le même écran, visible sans clic supplémentaire.
- Sur chaque page ou écran d'application où nos données apparaissent — pas seulement sur une page "à propos".
- Taille et contraste lisibles : au moins ~11px, non masqué, non replié, pas de la couleur du fond.
- Applications mobiles natives sans liens HTML : affichez le texte "Data by nakordoni.eu" sur l'écran des données et placez le lien cliquable sur l'écran d'informations.
Nous vérifions périodiquement l'attribution sur la "page d'utilisation des données" indiquée à l'inscription. Une attribution manquante ou désindexée sur le plan Explorer entraîne d'abord un rappel, puis la suspension de la clé. Les clients Pay As You Grow peuvent omettre l'attribution.