Itinéraires
Un prospect saisit son adresse dans un formulaire : est-il à 10 minutes de votre agence la plus proche, ou à deux heures de route ? Une fiche CRM liste une adresse domicile et une adresse de rendez-vous : combien de temps de trajet réel entre les deux ? Les deux endpoints ci-dessous répondent en distance et durée routières — jamais à vol d'oiseau — pour qualifier ou scorer un contact selon sa proximité réelle avec un point de vente, une agence ou une zone de chalandise.
| Endpoint | Quand l'utiliser | Plan minimum |
|---|---|---|
POST /route/summary |
Comparer les distances/durées d'un ou plusieurs points vers une ou plusieurs destinations (jusqu'à 25×25) — sans carte ni détail du trajet | Growth |
POST /route/compute |
Itinéraire complet entre deux points — géométrie du tracé et étapes de navigation en français | Business |
POST /route/summary — comparer des distances/durées
Utilisez cet endpoint pour scorer un prospect : par exemple,
déterminer laquelle de vos agences est la plus proche de son
adresse, sans avoir besoin d'un tracé ni d'étapes de navigation
— uniquement les métriques agrégées. Chaque borne (origine ou
destination) se fournit comme une adresse libre ou
un couple de coordonnées WGS84 (lat/lon),
jamais les deux à la fois.
curl -X POST "https://api.trustydata.app/services/v1/route/summary" \
-H "Authorization: Bearer VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{
"origins": [
{"address": "1 rue de la Paix 75002 Paris"}
],
"destinations": [
{"address": "10 avenue des Champs-Élysées 75008 Paris"},
{"address": "12 rue de la République 69002 Lyon"}
]
}'
{
"origines": [
{
"adresse": "1 Rue de la Paix, 75002 Paris 2e Arrondissement",
"source": "address",
"lat": 48.868546,
"lon": 2.33031
}
],
"destinations": [
{
"adresse": "10 Avenue des Champs Elysées, 75008 Paris 8e Arrondissement",
"source": "address",
"lat": 48.867887,
"lon": 2.315269
},
{
"adresse": "12 Rue de la République, 69002 Lyon 2e Arrondissement",
"source": "address",
"lat": 45.76511,
"lon": 4.835769
}
],
"matrice": [
[
{ "distance_km": 1.372, "duree_s": 171, "duree_min": 2.9 },
{ "distance_km": 469.057, "duree_s": 14743, "duree_min": 245.7 }
]
],
"attribution": "Données cartographiques © les contributeurs OpenStreetMap, sous licence ODbL — https://www.openstreetmap.org/copyright"
}
Une seule origine (le prospect) comparée à deux destinations
candidates (deux agences). matrice[i][j] est le
trajet de origines[i] vers
destinations[j] : ici, matrice[0][0]
— l'agence des Champs-Élysées — est à 1,4 km et 2,9 minutes
du prospect, contre matrice[0][1] — l'agence
lyonnaise — à 469 km et environ 4 h 06
(duree_min arrondi à une décimale,
duree_s la valeur brute en secondes). L'agence la
plus proche ressort directement de la comparaison, sans calcul
côté client. Si un trajet est infaisable (pas de route entre les
deux points), distance_km,
duree_s et duree_min valent
null pour cette cellule plutôt que de faire
échouer tout l'appel.
POST /route/compute — itinéraire complet
Une fois le point de destination retenu (par exemple grâce à
/route/summary ci-dessus), utilisez cet endpoint
pour obtenir le tracé complet à afficher sur une carte ou une
liste d'étapes turn-by-turn — utile pour une confirmation de
rendez-vous, un itinéraire envoyé par email, ou l'affichage
d'un trajet dans un espace client.
curl -X POST "https://api.trustydata.app/services/v1/route/compute" \
-H "Authorization: Bearer VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{
"origin": {"address": "1 rue de la Paix 75002 Paris"},
"destination": {"address": "10 avenue des Champs-Élysées 75008 Paris"}
}'
{
"origine": {
"adresse": "1 Rue de la Paix, 75002 Paris 2e Arrondissement",
"source": "address",
"lat": 48.868546,
"lon": 2.33031
},
"destination": {
"adresse": "10 Avenue des Champs Elysées, 75008 Paris 8e Arrondissement",
"source": "address",
"lat": 48.867887,
"lon": 2.315269
},
"resume": {
"distance_km": 1.372,
"duree_s": 171.151,
"duree_min": 2.9,
"bbox": {
"min_lat": 48.865351,
"min_lon": 2.315401,
"max_lat": 48.868491,
"max_lon": 2.330435
},
"geometrie": {
"encodage": "polyline6",
"precision": 6,
"polyline": "wgue|AgsfmCxCxCbEnDdC~BxO|OxEzE…"
}
},
"etapes": [
{
"consigne": "Conduisez vers le sud-est sur Rue de la Paix.",
"distance_km": 0.421,
"duree_s": 54.781,
"type": 2,
"index_debut": 0,
"index_fin": 23
},
{ "…": "…" },
{
"consigne": "Votre destination est sur la gauche.",
"distance_km": 0,
"duree_s": 0,
"type": 6,
"index_debut": 69,
"index_fin": 69
}
],
"attribution": "Données cartographiques © les contributeurs OpenStreetMap, sous licence ODbL — https://www.openstreetmap.org/copyright"
}
Réponse tronquée sur deux points : le champ
geometrie.polyline encode l'intégralité du tracé en
polyline6
(précision 6, pas 5) — ici coupé après quelques points, la vraie
chaîne fait plusieurs centaines de caractères et se décode côté
client (Leaflet, Mapbox GL, MapLibre…) pour tracer l'itinéraire
sur une carte. etapes comptait 5 manœuvres pour ce
trajet très court (2 conservées ici, la 2e, 3e
et 4e omises) ; sur un trajet long, cette liste peut
compter plusieurs dizaines d'entrées. Chaque étape porte sa
consigne en français, sa distance/durée propre, et
index_debut/index_fin — la plage de
points de la polyline décodée qu'elle couvre, utile pour
surligner l'étape en cours sur la carte. resume.bbox
donne la boîte englobante du parcours, pratique pour cadrer
automatiquement une vue carte.
Attribution OpenStreetMap obligatoire
Les itinéraires et matrices sont calculés sur le réseau
routier OpenStreetMap,
publié sous licence ODbL.
Chaque réponse inclut un champ attribution à
reproduire visiblement partout où le résultat est restitué à
l'utilisateur final — carte, liste d'étapes, export. Détail
complet, exemples d'intégration (Leaflet…) et formulations
équivalentes acceptées : Attribution OSM.
Non disponible en Discovery ni Starter
/route/summary et /route/compute ne
sont pas accessibles avec une clé
Discovery
ou Starter —
l'appel échoue en 403. Le détail des paliers et
de ce qu'ouvre chaque plan est dans
Plans & quotas.
Prochains pas
- Attribution OSM — la mention ODbL en détail, exemples d'intégration
- Plans & quotas — comprendre ce qu'ouvre chaque palier
- Référence complète — tous les paramètres, tous les champs
- Démo — Calculer un itinéraire — tester en direct sans écrire de code