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ètreRequisExempleRôle
departoui5.3364,-4.0267Point de départ, « lat,lng ».
arriveeoui5.3600,-3.9800Point d'arrivée, « lat,lng ».
modesnonpied,moto,voitureModes à calculer, séparés par des virgules. Par défaut : les trois.
tracenon1Renvoie la géométrie du trajet (points).
etapesnon1Renvoie 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 null quand aucune route n'existe pour lui (point isolé, chemin inconnu).
  • points : liste de [lat, lng] du départ à l'arrivée, seulement avec trace=1.
  • etapes[].type vaut depart, tout_droit, droite, gauche, legerement_droite, legerement_gauche, demi_tour, rond_point, arrivee ou autre ; indexPoint (avec trace=1) est l'index dans points où 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.

400Paramètres invalides (coordonnées mal formées, mode inconnu…).
401Clé absente, inconnue, suspendue ou révoquée.
422Point hors de la zone couverte, ou trajet de plus de 1 000 km à vol d'oiseau.
429Quota du jour atteint, ou plus de 60 appels par minute avec la même clé.
502Moteur 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);