API de cartes, recherche et Studio
Développez avec des cartes et des données géographiques
Authentification et erreurs
Envoyez la clé dans Authorization: Bearer. Coordonnées : [longitude, latitude]. Définissez OSRMROUTE_API_KEY localement ; DATASET_ID est l’UUID de votre jeu de données. Ne publiez jamais une clé Studio dans le navigateur.
401 : clé invalide · 403 : autorisation refusée · 402 : crédits insuffisants · 429 : limite atteinte · 502/503 : source indisponible. Vérifiez le statut HTTP ; les crédits réservés des opérations payantes échouées sont libérés.
409 : conflit de révision. Relisez la ressource actuelle et réconciliez les modifications avant de réessayer.
Recherche en langage naturel
Trouvez des lieux avec une courte requête en anglais.
- Crédits par requête
- 2
- Autorisations requises
geocode + places
Catégorie anglaise + near/in + lieu ; rayon de 100 à 5000 m. Six catégories, dix candidats maximum. Aucun avis, prix ou disponibilité en direct. Deux crédits même pour un résultat vide réussi.
POST /api/v1/search/natural
q * | string | maxLength: 1000 |
|---|---|---|
ai | boolean | default: false |
center | array | |
curl --fail-with-body -X POST "https://osrmroute.com/api/v1/search/natural" \
-H "Authorization: Bearer $OSRMROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"q":"cafes near Berlin within 2 km"}'intent
places[].distance_meters
places[].details
interpretation: constrained_english_grammar
exhaustive: falseDétails des lieux
Consultez les attributs fournis par la source.
- Crédits par requête
- 1
- Autorisations requises
places
Un crédit avec permission places. Objet OpenStreetMap par ID de recherche ; cache source d’une heure. Coordonnées, horaires et accessibilité absents restent null. La date source est celle de modification de l’objet, sans vérification commerciale. Aucun statut d’ouverture en direct. 20 appels/min/clé ; 30 lectures source/min globales hors cache.
POST /api/v1/places/details
id * | string | maxLength: 24 |
|---|
curl --fail-with-body -X POST "https://osrmroute.com/api/v1/places/details" \
-H "Authorization: Bearer $OSRMROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"id":"osm:N:123"}'place.details.phone
place.details.website
place.details.opening_hours
place.details.wheelchair
place.details.observed_at
place.details.source_updated_at
place.details.open_now: nullAperçu du style par texte
Décrivez les couleurs et calques, puis vérifiez le résultat.
- Crédits par requête
- 0
- Autorisations requises
studio
Commandes anglaises séparées par des points-virgules : thème, couleur hex et visibilité. Aucun enregistrement pendant l’aperçu. Appliquer modifie le brouillon et peut déclencher l’enregistrement automatique.
POST /api/v1/studio/preview
prompt * | string | maxLength: 1000 |
|---|---|---|
ai | boolean | default: false |
design | object | |
curl --fail-with-body -X POST "https://osrmroute.com/api/v1/studio/preview" \
-H "Authorization: Bearer $OSRMROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt":"dark; water #123456; hide buildings"}'design
changes[]
saved: false
method: explicit_style_commandsStatic Maps API
Exportez des cartes stylisées en PNG pour vos rapports et applications.
- Crédits par requête
- 4
- Autorisations requises
maps
Quatre palettes : light, dark, navigation, minimal. 128–512 px, zoom 1–14. Rendu simplifié avec attribution ; les couches et effets Studio personnalisés ne sont pas reproduits.
POST /api/v1/maps/static
center * | array | |
|---|---|---|
zoom | integer | min: 1 · max: 14 · default: 12 |
width | integer | min: 128 · max: 512 · default: 512 |
height | integer | min: 128 · max: 512 · default: 512 |
style | string | light | dark | navigation | minimal |
curl --fail-with-body -X POST "https://osrmroute.com/api/v1/maps/static" \
-H "Authorization: Bearer $OSRMROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"center":[13.405,52.52],"zoom":12,"width":512,"height":512,"style":"light"}' \
--output map.pngContent-Type: image/pngDataset Query API
Trouvez des objets proches dans vos propres jeux de données géographiques.
- Crédits par requête
- 1
- Autorisations requises
maps
Uniquement vos jeux de données. Rayon 0–50 000 m, limite 1–50. Points proches et distances locales estimées, pas de distance routière ni de géométrie complète. Un résultat vide réussi coûte aussi 1 crédit.
POST /api/v1/maps/datasets/{id}/query
point * | array | |
|---|---|---|
radius | number | min: 0 · max: 50000 · default: 0 |
limit | integer | min: 1 · max: 50 · default: 10 |
curl --fail-with-body -X POST "https://osrmroute.com/api/v1/maps/datasets/$DATASET_ID/query" \
-H "Authorization: Bearer $OSRMROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"point":[2.3522,48.8566],"radius":1000,"limit":10}'type: FeatureCollection
features[].geometry.type: Point
features[].properties
returnedSearch Along Route API
Comparez les arrêts et le temps de conduite supplémentaire sur un itinéraire.
- Crédits par requête
- 14
- Autorisations requises
places + route
Trajets routiers jusqu’à 200 km. Cinq positions échantillonnées et huit détours au maximum ; recherche non exhaustive. fuel, charging_station, restaurant, cafe, parking, pharmacy. Sans trafic en direct ni disponibilité des bornes.
POST /api/v1/places/along-route
start * | array | |
|---|---|---|
end * | array | |
category * | string | fuel | charging_station | restaurant | cafe | parking | pharmacy |
max_detour_seconds | number | min: 0 · max: 1800 · default: 600 |
limit | integer | min: 1 · max: 8 · default: 5 |
curl --fail-with-body -X POST "https://osrmroute.com/api/v1/places/along-route" \
-H "Authorization: Bearer $OSRMROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"start":[13.405,52.52],"end":[13.3777,52.5163],"category":"cafe","max_detour_seconds":600,"limit":5}'places[]
baseline.duration_seconds
baseline.distance_meters
discovery
duration_modelStructured Geocoding API
Recherchez une adresse par rue, ville, code postal et pays.
- Crédits par requête
- 1
- Autorisations requises
geocode
Fournir street, city ou postcode. Pays : deux lettres ; autres champs : 100 caractères maximum. Recherche textuelle composée ; matched/different/missing et précision de source ne garantissent pas la validation d’adresse.
POST /api/v1/search/structured
housenumber | string | maxLength: 100 |
|---|---|---|
street | string | maxLength: 100 |
city | string | maxLength: 100 |
state | string | maxLength: 100 |
postcode | string | maxLength: 100 |
countrycode | string | maxLength: 2 |
curl --fail-with-body -X POST "https://osrmroute.com/api/v1/search/structured" \
-H "Authorization: Bearer $OSRMROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"street":"Friedrichstraße","city":"Berlin","countrycode":"DE"}'features[].id
features[].address
features[].precision
features[].match.components
features[].precision_basis
search_method: composed_address_querySuggest & Retrieve API
Créez une recherche de lieux avec suggestions et récupération sécurisée.
- Crédits par requête
- 1 + 1
- Autorisations requises
geocode
Suggest et retrieve coûtent chacun 1 crédit. Recherche de 1–200 caractères. Jetons valables 10 minutes, liés au propriétaire de la clé. Retrieve renvoie l’instantané signé, pas une nouvelle recherche.
POST /api/v1/search/suggest
q * | string | maxLength: 200 |
|---|
POST /api/v1/search/retrieve
token * | string | maxLength: 16384 |
|---|
curl --fail-with-body -X POST "https://osrmroute.com/api/v1/search/suggest" \
-H "Authorization: Bearer $OSRMROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"q":"Paris"}'suggestions[].id
suggestions[].name
suggestions[].address
suggestions[].token
expires_in_seconds: 600
retrieve → place, retrieval: signed_suggestion_snapshotcurl --fail-with-body -X POST "https://osrmroute.com/api/v1/search/retrieve" \
-H "Authorization: Bearer $OSRMROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"token":"TOKEN_FROM_SUGGEST"}'Studio API
Gérez styles, jeux de données et publication depuis votre application.
- Crédits par requête
- 0
- Autorisations requises
studio
Autorisation studio explicite, même avec une clé sans restriction. GET liste les styles ou métadonnées ; POST gère les ressources. Révisions et confirmation de publication pour les styles. Jeux de données : création/suppression, pas de modification directe. 30 lectures ou 5 écritures/minute/clé ; quotas de l’espace applicables.
GET / POST /api/v1/studio/{resource}
action * | string | |
|---|---|---|
id | string | |
revision | integer | |
name | string | maxLength: 80 |
design | object | |
data | object | |
confirmPublic | boolean | |
confirmDelete | boolean | |
version | integer | |
curl --fail-with-body "https://osrmroute.com/api/v1/studio/styles" \
-H "Authorization: Bearer $OSRMROUTE_API_KEY"GET styles → styles[]
GET datasets → datasets[]styles · create | name, design |
|---|---|
styles · save / autosave | id, revision, name, design |
styles · duplicate | id, revision, name |
styles · restore | id, revision, version |
styles · publish | id, revision, confirmPublic: true |
styles · unpublish / delete | id, revision |
datasets · create | name, data: GeoJSON FeatureCollection |
datasets · delete | id, confirmDelete: true |
{
"action": "create",
"name": "Berlin",
"design": {
"preset": "light",
"colors": {
"land": "#f1f3f5",
"water": "#a9d8ed",
"park": "#c9dfc6",
"road": "#ffffff",
"highway": "#edc779",
"building": "#d9dee3",
"label": "#334155"
},
"visible": {
"roads": true,
"buildings": true,
"parks": true,
"labels": true,
"pois": true,
"boundaries": true
},
"center": [
13.405,
52.52
],
"zoom": 11,
"overlays": []
}
}{
"action": "create",
"name": "Paris places",
"data": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"name": "Paris"
},
"geometry": {
"type": "Point",
"coordinates": [
2.3522,
48.8566
]
}
}
]
}
}