Développeurs · API v1
API Itinéraire Werise
Des trajets réels — pas des lignes droites — à pied, à moto et en voiture partout en Côte d'Ivoire, calculés sur la carte OpenStreetMap. La même API alimente le site et l'application Werise.
Trois modes
Pied, moto et voiture en un seul appel, avec une durée moto recalibrée pour la circulation d'Abidjan.
Tracé et guidage
Géométrie du trajet et instructions pas à pas en français, prêtes à afficher sur une carte.
Repli intégré
Les SDK basculent sur une estimation à vol d'oiseau si le service ne répond pas : votre écran ne reste jamais vide.
1. Accès
Obtenir une clé API
L'API est réservée aux détenteurs d'une clé. Écrivez-nous en décrivant votre projet et le volume d'appels attendu : nous vous transmettons une clé de la forme wr_live_…, avec son quota journalier.
Envoyez-la à chaque appel dans l'en-tête X-Werise-Cle. Pour un simple test dans un navigateur, le paramètre ?cle= est aussi accepté — à éviter en production, l'URL finissant dans les journaux et l'historique.
Gardez-la côté serveur quand c'est possible. Une clé exposée peut être révoquée et remplacée à tout moment : contactez-nous.
2. Point d'accès
Calculer un trajet
GET https://admin.weriseapp.tech/api/itineraire/v1/trajet| Paramètre | Requis | Exemple | Rôle |
|---|---|---|---|
| depart | oui | 5.3364,-4.0267 | Point de départ, « lat,lng ». |
| arrivee | oui | 5.3600,-3.9800 | Point d'arrivée, « lat,lng ». |
| modes | non | pied,moto,voiture | Modes à calculer, séparés par des virgules. Par défaut : les trois. |
| trace | non | 1 | Renvoie la géométrie du trajet (points). |
| etapes | non | 1 | Renvoie les instructions de guidage, en français. |
Zone couverte : Côte d'Ivoire et ses abords (latitude 4 à 11, longitude −9 à −2). Les coordonnées sont en degrés décimaux, avec un point comme séparateur.
Exemple
curl "https://admin.weriseapp.tech/api/itineraire/v1/trajet?depart=5.3364,-4.0267&arrivee=5.3600,-3.9800&modes=pied,moto&trace=1&etapes=1" \
-H "X-Werise-Cle: wr_live_votre_cle"{
"trajets": {
"pied": {
"distanceKm": 5.21,
"dureeMin": 62.5,
"points": [[5.3364, -4.0267], [5.3366, -4.0271], …],
"etapes": [
{
"instruction": "Tournez à droite sur Boulevard Latrille.",
"distanceKm": 0.4,
"dureeMin": 1.2,
"type": "droite",
"indexPoint": 17
}
]
},
"moto": { "distanceKm": 6.02, "dureeMin": 12.0, "points": […], "etapes": […] }
},
"source": "valhalla",
"attribution": "© contributeurs OpenStreetMap",
"version": 1
}- Un mode vaut
nullquand aucune route n'existe pour lui (point isolé, chemin inconnu). points: liste de[lat, lng]du départ à l'arrivée, seulement avectrace=1.etapes[].typevautdepart,tout_droit,droite,gauche,legerement_droite,legerement_gauche,demi_tour,rond_point,arriveeouautre;indexPoint(avectrace=1) est l'index danspointsoù commence la manœuvre.- La durée moto est calculée à partir de la distance routée et d'une vitesse moyenne de 30 km/h, plus fidèle à la circulation réelle que celle du moteur.
- Les réponses sont mises en cache 5 minutes côté serveur : deux appels identiques rapprochés ne coûtent qu'un calcul.
3. Limites
Erreurs et quotas
Toute erreur renvoie un corps {"message": "…"} en français.
| 400 | Paramètres invalides (coordonnées mal formées, mode inconnu…). |
| 401 | Clé absente, inconnue, suspendue ou révoquée. |
| 422 | Point hors de la zone couverte, ou trajet de plus de 1 000 km à vol d'oiseau. |
| 429 | Quota du jour atteint, ou plus de 60 appels par minute avec la même clé. |
| 502 | Moteur de calcul indisponible : réessayez, ou affichez une estimation. |
Chaque clé a un quota d'appels par jour (5 000 par défaut) et un débit maximal de 60 appels par minute. Chaque réponse indique où vous en êtes avec les en-têtes X-Quota-Limite et X-Quota-Restant. Le compteur repart à zéro chaque jour à minuit (heure d'Abidjan). Besoin de plus ? Écrivez-nous.
4. Licence
Attribution OpenStreetMap
Les trajets sont calculés sur les données © contributeurs OpenStreetMap, sous licence ODbL. Chaque réponse porte le champ attribution : tout affichage d'un tracé ou d'un trajet doit reprendre cette mention de façon visible (en bas de la carte, par exemple).
5. SDK
Bibliothèques clientes
Deux SDK officiels, aux noms et comportements identiques : ils gèrent la clé, le cache, le délai d'attente (6 s), et renvoient une estimation à vol d'oiseau (estimation: true) plutôt qu'une exception quand le service est injoignable. Les erreurs à corriger (clé, quota, zone, paramètres) lèvent une ErreurItineraire avec un code.
Ils fournissent aussi un SuiviItineraire pour le guidage en temps réel : vous lui transmettez les positions de l'appareil, il calcule la distance restante, l'étape en cours, et signale quand recalculer le trajet ou quand l'arrivée est atteinte.
JavaScript / TypeScript — @werise/itineraire
import { ClientItineraire } from "@werise/itineraire";
const client = new ClientItineraire({
baseUrl: "https://admin.weriseapp.tech",
cle: "wr_live_votre_cle",
});
const { trajets, estimation, attribution } = await client.trajet(
[5.3364, -4.0267], // départ [lat, lng]
[5.36, -3.98], // arrivée
{ modes: ["pied", "moto"], trace: true },
);
console.log(trajets.moto?.distanceKm, trajets.moto?.dureeMin);Dart / Flutter — werise_itineraire
import 'package:werise_itineraire/werise_itineraire.dart';
final client = ClientItineraire(
baseUrl: 'https://admin.weriseapp.tech',
cle: 'wr_live_votre_cle',
);
final r = await client.trajet(
const Coordonnee(5.3364, -4.0267),
const Coordonnee(5.36, -3.98),
modes: {ModeTrajet.pied, ModeTrajet.moto},
trace: true,
);
print(r.trajets[ModeTrajet.moto]?.distanceKm);