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 — limitations de vitesse
- 2. Format de réponse standard
- 3. Erreurs & codes HTTP
- 4. Rate limiting
- 5. Performance mesurée
- 6. Exemples
- 7. Playground
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 }
]
}
maxspeedestnullquand aucun point de route n'est trouvé à moins de 40 mètres (zone non couverte, champ, mer, etc.).
2. Format de réponse standard
- En-tête
Content-Type: application/json; charset=utf-8. - CORS ouvert :
Access-Control-Allow-Origin: *(appelable depuis n'importe quel site). - Cache HTTP :
public, max-age=300(5 min) — les valeurs ne changent qu'avec une mise à jour du jeu de données (actuellement issu de la mi-août 2026). - Les réponses sont compactes (pas de champs redondants).
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.