Documentation API · Zektyc

Bienvenue sur la documentation des API publiques Zektyc. Chaque service expose une ou plusieurs routes JSON, documentées ci-dessous. Cette page est la version unique de référence : ajoutez ici toute nouvelle API.

Toutes les réponses sont en application/json; charset=utf-8, compatibles CORS (n'importe quel navigateur peut les appeler directement). Le trafic passe par un reverse-proxy qui applique un rate-limit par IP.


📚 Sommaire


1. API Maxspeed

Découvre la limitation de vitesse (maxspeed) d'un point géographique, calculée depuis les données OpenStreetMap. Couverture : l'Europe uniquement (l'effort de production actuel porte sur ce continent ; aucune ville hors Europe n'est indexée).

La base est une grille de 90 518 792 points échantillonnés le long des routes de l'Europe entière, à une résolution d'environ 0,8 mètre. Chaque point porte la vitesse maximale de la route sur laquelle il se trouve.

⚠️ Données à titre indicatif. Ces valeurs proviennent d'un traitement automatisé de cartes collaboratives : elles reflètent l'état des données à la mi-août 2026 et ne sont pas garanties à 100 %. Les limitations peuvent être obsolètes, incomplètes ou erronées — surtout en ville, où les panneaux changent fréquemment. Vérifie toujours auprès des panneaux réels ou des sources officielles avant toute décision. Ne convient pas à un usage réglementaire ou juridique.

Base URL (racine de l'API) :

https://riricdev.tail5ea5cd.ts.net/api/maxspeed
Endpoint Méthode Description
/api/maxspeed/ GET Métadonnées du jeu de données (points, cellules, résolution)
/api/maxspeed/point GET Limitation de vitesse à un point (lat, lon)
/api/maxspeed/route GET Limitation le long d'un tracé (liste de points)

1.1 Point isolé

Interroge la vitesse pour une seule coordonnée.

GET /api/maxspeed/point?lat=48.87&lon=2.307

Paramètres :

Nom Type Requis Description
lat float oui Latitude ∈ [-90, 90]
lon float oui Longitude ∈ [-180, 180]

Réponse (200) :

{
  "lat": 48.87,
  "lon": 2.307,
  "maxspeed": 50,
  "unit": "km/h",
  "hit": true
}

1.2 Tracé (route)

Interroge la vitesse le long d'un parcours. Utile pour colorer un itinéraire selon la vitesse autorisée, ou estimer des temps de trajet.

GET /api/maxspeed/route?coords=2.307,48.87;2.404,48.66;2.589,48.66

Paramètres :

Nom Type Requis Description
coords string oui Suite de lon,lat séparés par des ; — jusqu'à 5000 points

Réponse (200) :

{
  "points": [
    { "lon": 2.307, "lat": 48.87, "maxspeed": 50 },
    { "lon": 2.404, "lat": 48.66, "maxspeed": 50 },
    { "lon": 2.589, "lat": 48.66, "maxspeed": 80 }
  ]
}

maxspeed est null quand aucun point de route n'est trouvé à moins de 40 mètres (zone non couverte, champ, mer, etc.).


2. Format de réponse standard


3. Erreurs & codes HTTP

Code Signification
200 Succès
400 Paramètre manquant / invalide (ex. lat hors bornes, coords mal formé)
404 Endpoint inconnu
429 Trop de requêtes (rate-limit dépassé) — voir ci-dessous
503 Données non disponibles (jeu de données non chargé)

Format d'erreur :

{
  "error": "lat/lon invalides (lat ∈ [-90,90], lon ∈ [-180,180])"
}

4. Rate limiting

L'API n'a aucun rate-limit applicatif propre. Seule s'applique la limite anti-DoS du reverse-proxy nginx, commune à tout le site : 30 requêtes / s par IP (avec un burst de 300). Au-delà, la requête reçoit un 429.

HTTP/1.1 429 Too Many Requests
Retry-After: 1

C'est uniquement une protection contre les abus et les DoS, pas une restriction d'usage : pour un batch lourd et légitime (interroger tout le continent), écris-nous — on pourra te fournir un accès dédié.


5. Performance mesurée

Benchmarks réels effectués sur la machine de production (ARM 64, 4 cœurs, Bun) :

Opération Latence moyenne Débit maximal (mono-cœur)
Lookup point unique ~0,10 ms ~9 900 req/s
Lookup par point d'un tracé ~0,11 ms ~9 000 req/s

Chiffres clés du jeu de données (Europe, mi-août 2026) :

Points maxspeed      : 90 518 792
Cellules (tuiles)    : 5 104
Résolution           : ~0,8 m (échantillonnage tous les 40 m le long des routes)
Taille grille        : 370 Mo (compressé)
Source               : OpenStreetMap (données Europe)
Vintage              : mi-août 2026

6. Exemples

Quelques exemples de valeurs réelles en Île-de-France (balayage sur l'axe A6 / A10) :

Localisation (approx.) Lon Lat Maxspeed
Zone urbaine (Boulevard) 2.307 48.87 50 km/h
Secteur péri-urbain (A6 sud) 2.404 48.66 50 km/h
Voie rapide (A10) 2.439 48.60 110 km/h
Autoroute dégagée (A6) 2.589 48.66 80 km/h

JavaScript (fetch)

const res = await fetch(
  "https://riricdev.tail5ea5cd.ts.net/api/maxspeed/point?lat=48.87&lon=2.307"
)
const data = await res.json()
console.log(data.maxspeed) // 50

Python (urllib)

import json, urllib.request

url = "https://riricdev.tail5ea5cd.ts.net/api/maxspeed/point?lat=48.87&lon=2.307"
with urllib.request.urlopen(url) as r:
    data = json.load(r)
print(data["maxspeed"])  # 50

curl

curl "https://riricdev.tail5ea5cd.ts.net/api/maxspeed/point?lat=48.87&lon=2.307"
# {"lat":48.87,"lon":2.307,"maxspeed":50,"unit":"km/h","hit":true}

7. Playground

Outil interactif : clique sur la carte ou saisis des coordonnées pour interroger l'API en direct.

—

Documentation générée automatiquement. Dernière vérification de la section Performance : septembre 2026.