OSRMRoute
Dashboard öffnen

API-Dokumentation & Playground

Einführung

Die OSRMRoute Directions API ist ein RESTful-Webdienst, der entwickelt wurde, um schnelles, hochleistungsfähiges Geo-Routing, Reisematrizen, Adresssuche (Geocoding) und Routenoptimierung in Ihre Anwendungen zu integrieren. Diese Dokumentation erläutert alle Funktionen der API, die Parameter und die Integrationsschritte im Detail.

Authentifizierung

OSRMRoute-API-Anfragen verwenden einen eindeutigen API-Schlüssel zur Authentifizierung. Sie können Ihren API-Schlüssel jeder Anfrage als Query-Parameter (?key=YOUR_KEY) oder über den HTTP-Authorization-Header (als Bearer-Token) hinzufügen.

GETAny endpoint

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
keystringErforderlich-Der eindeutige API-Schlüssel aus Ihrem persönlichen Dashboard. Dieser Schlüssel bestimmt die Limits Ihrer Anfragen.

Fehlercodes

OSRMRoute verwendet Standard-HTTP-Statuscodes und detaillierte JSON-Fehlermeldungen, um den Zustand einer Anfrage anzuzeigen.

Erläuterung der Antwortstruktur

Wichtigste Statuscodes und ihre Bedeutung: - **200 OK**: Die Anfrage wurde erfolgreich abgeschlossen. - **400 Bad Request**: Parameter sind ungültig oder fehlen. - **401 Unauthorized**: Der API-Schlüssel wurde nicht angegeben oder ist ungültig. - **403 Forbidden**: Der API-Schlüssel ist gesperrt oder inaktiv. - **429 Too Many Requests**: Das tägliche Credit-Limit wurde überschritten. - **500 Internal Error**: Ein interner Systemfehler ist aufgetreten.

Routing API

Berechnet die schnellste und kürzeste Route von Punkt A nach Punkt B (mit Zwischen-Via-Punkten). Gibt Turn-by-Turn-Anweisungen und GeoJSON-Geometrie für verschiedene Transportprofile (driving, cycling, walking) zurück.

GET/api/v1/osrm/route/v1/{profile}/{coordinates}

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
profilestringErforderlichdrivingTransportmodus-Profil. Unterstützte Werte: driving (Auto), cycling (Fahrrad), walking (Fußgänger).
coordinatesstringErforderlich-Koordinaten der Punkte. Format: lon,lat;lon,lat;lon,lat... (mindestens 2 Punkte).
overviewstringOptionalfullDetailgrad der zurückgegebenen Routengeometrie: simplified (vereinfacht), full (vollständige Geometrie), false (ohne Geometrie).
geometriesstringOptionalgeojsonGeometrieformat: geojson (GeoJSON-Objekt), polyline (kodierte Zeichenfolge).
stepsbooleanOptionaltrueOb für jede Abbiegung Schritt-für-Schritt-Anweisungen zurückgegeben werden.

Erläuterung der Antwortstruktur

Eine erfolgreiche Antwort enthält die Gesamtdistanz der Route (in Metern), die Fahrzeit (in Sekunden), Wegpunkte und die GeoJSON-Routenlinie.

Matrix API

Berechnet eine schnelle Distanz- und Fahrzeitmatrix zwischen mehreren Punkten (eine NxM-Tabelle). Ein ideales Werkzeug zur Optimierung von Logistikrouten.

GET/api/v1/osrm/table/v1/{profile}/{coordinates}

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
profilestringErforderlichdrivingTransportprofil (driving, cycling, walking).
coordinatesstringErforderlich-Matrixpunkte. Format: lon,lat;lon,lat;lon,lat...
annotationsstringOptionalduration,distanceZu berechnende Daten: duration (Zeit), distance (Distanz) oder beides.

Erläuterung der Antwortstruktur

Eine erfolgreiche Antwort gibt eine zweidimensionale distances- (Distanzen) und durations-Matrixtabelle (Dauern) für jede Kombination aus Start- und Endpunkt zurück.

Map Matching API

Ordnet ungenaue GPS-Spuren dem realen Straßennetz zu (snap to road). Wird verwendet, um Rauschen in GPS-Signalen zu bereinigen.

GET/api/v1/osrm/match/v1/{profile}/{coordinates}

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
profilestringErforderlichdrivingTransportprofil.
coordinatesstringErforderlich-Die Folge von GPS-Koordinaten zum Zuordnen (lon,lat;lon,lat...)
overviewstringOptionalfullGeometriegenauigkeit der zugeordneten Route.

Nearest API

Ordnet jede Koordinate dem nächstgelegenen realen Straßensegment zu (snap) und gibt Informationen zum Straßennamen zurück.

GET/api/v1/osrm/nearest/v1/{profile}/{coordinates}

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
profilestringErforderlichdrivingTransportprofil.
coordinatesstringErforderlich-Der Punkt, in dessen Nähe gesucht wird. Format: lon,lat (ein einzelnes Paar).
numberintegerOptional3Die Anzahl der zu findenden nächstgelegenen Straßenkandidaten.

Trip API

Löst das Problem des Handlungsreisenden (TSP): findet die optimale Rund- (oder offene) Route, um eine gegebene Punktmenge zu besuchen, und ordnet die Punkte.

GET/api/v1/osrm/trip/v1/{profile}/{coordinates}

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
profilestringErforderlichdrivingTransportprofil.
coordinatesstringErforderlich-Zu besuchende Punkte. Format: lon,lat;lon,lat...
sourcestringOptionalanyDer Punkt, an dem die Route beginnen kann (any oder der erste Punkt).
destinationstringOptionalanyDer Punkt, an dem die Route endet (any oder der letzte Punkt).

Directions API

Liefert Abbiegehinweise zwischen zwei oder mehr Wegpunkten mit sauberer Anweisungsliste (Text, Distanz, Dauer, Manövertyp und Position). Unterstützt Auto, Fahrrad und zu Fuß sowie bis zu 3 Alternativrouten in einem Aufruf.

GET/api/1/directions

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
pointstringErforderlichlat,lngWegpunkt als lat,lng. Parameter für jeden Stopp wiederholen (mindestens 2).
profilestringOptionaldrivingFortbewegungsart: driving, cycling oder walking.
alternativesintegerOptional0Anzahl zusätzlich zurückgegebener Alternativrouten (0–3).
langstringOptionalenSprachcode für den Anweisungstext.

Erläuterung der Antwortstruktur

Gibt { code, profile, routes[], waypoints[] } zurück. Jede Route hat distance (m), duration (s), eine GeoJSON-Geometrie und ein instructions[]-Array; jede Anweisung enthält text, type, modifier, distance, duration, name und location [lat,lng].

Snap to Road API

Rastet rohe, ungenaue GPS-Punkte auf die nächste Position im Straßennetz ein. Wiederholen Sie den point-Parameter für jede Koordinate (bis zu 100).

GET/api/1/snap

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
pointstringErforderlichlat,lngGPS-Punkt als lat,lng. Parameter für jeden Punkt wiederholen (maximal 100).
profilestringOptionaldrivingStraßennetz zum Einrasten: driving, cycling oder walking.

Erläuterung der Antwortstruktur

Gibt { code, profile, snapped[] } zurück. Jedes Element enthält den ursprünglichen input [lat,lng], die eingerastete Position [lat,lng], die Einrastdistanz in Metern und den Straßennamen.

Geocoding API

Wandelt einen Suchtext in geografische Koordinaten (vorwärts) oder Koordinaten in eine Adresse (rückwärts) um. Schnelle, tippfehlertolerante Autovervollständigung für Straßen, Adressen und POIs (Cafés, Geschäfte, Hotels, Büros). Ideal für Suche während der Eingabe.

GET/api/1/geocode

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
qstringErforderlich-Die zu suchende Adresse (z. B. „Nizami-Straße, Baku“).
reversebooleanOptionalfalseMuss true sein, um Reverse-Geocoding durchzuführen (Suche von Koordinate zu Adresse).
pointstringOptionallat,lngKoordinate (lat,lng) für Reverse-Geocoding zu einer Adresse. Erforderlich bei reverse=true.
limitintegerOptional5Maximale Anzahl zurückgegebener Ergebnisse (1–20, Standard 5).
langstringOptionalenBevorzugte Sprache für Ergebnisnamen (z. B. en, az, ru). Standard: en.
latnumberOptional-Breitengrad zur Gewichtung der Ergebnisse (nahe zuerst). Zusammen mit lon.
lonnumberOptional-Längengrad zur Gewichtung der Ergebnisse. Zusammen mit lat.
bboxstringOptional-Ergebnisse auf eine Bounding-Box beschränken: minLon,minLat,maxLon,maxLat.
osm_tagstringOptional-Nach OSM-Tag filtern, z. B. place (Orte) oder amenity:cafe. Präfix ! zum Ausschließen.
citystringOptional-Ergebnisse in dieser Stadt nach oben priorisieren (z. B. Bakı), ohne andere zu verbergen.
elasticbooleanOptionaltrueElastische (unscharfe, hohe Trefferquote) Suche — Standard true. Toleriert Tippfehler, fehlende Diakritika (ə↔e), Wortreihenfolge, generische Wörter (metro, rayonu) und Hausnummern. false für strikte Übereinstimmung.

Beispiele

# Auf einen Ort gewichten, nur Orte
GET /api/1/geocode?q=qala&lat=40.41&lon=49.87&osm_tag=place&key=YOUR_KEY

# Eine Stadt nach oben priorisieren
GET /api/1/geocode?q=market&city=Bakı&key=YOUR_KEY

# Reverse-Geocoding (Koordinaten zu Adresse)
GET /api/1/geocode?reverse=true&point=40.409,49.867&key=YOUR_KEY

Orte (POI in der Nähe)

Finde POIs in der Nähe eines Punktes — Cafés, Geschäfte, Hotels, Geldautomaten, Apotheken u. a. — gefiltert nach Kategorie und Radius, nach Entfernung sortiert.

GET/api/1/places

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
pointstringErforderlichlat,lngMittelpunkt-Koordinate lat,lng (erforderlich).
radiusnumberOptional1Suchradius in Kilometern (0.05–20, Standard 1).
categorystringOptional-OSM-Tag-Filter, z. B. amenity:cafe, shop, tourism:hotel. Präfix ! zum Ausschließen. Leer = alle POIs.
limitintegerOptional10Max. Ergebnisse (1–50, Standard 10).
langstringOptionalenBevorzugte Sprache für Namen (z. B. en, az, ru).

Autocomplete API

Schnelle, tippfehlertolerante Ortsvorschläge während der Eingabe, mit optionaler Standortgewichtung.

GET/api/1/autocomplete

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
qstringErforderlich-Suchtext — Teileingabe ist möglich.
limitintegerOptional8Maximale Anzahl an Vorschlägen (1–15).
langstringOptionalenSprachcode für Ergebnis-Labels.
latnumberOptional-Breitengrad zur Gewichtung (optional).
lonnumberOptional-Längengrad zur Gewichtung (optional).
osm_tagstringOptional-Vorschläge nach OSM-Typ filtern, z. B. place:city.

Erläuterung der Antwortstruktur

Gibt { suggestions[], took } zurück. Jeder Vorschlag hat label, name, city, state, country, countrycode, type, osm_id und point {lat,lng}.

Batch Geocoding API

Geokodieren Sie Hunderte Adressen in einer Anfrage — ideal für Datenpipelines und Importe.

POST/api/1/geocode/batch

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
queriesarrayErforderlich[]Array von zu geokodierenden Adressen (max. 100).
langstringOptionalenSprachcode für Ergebnis-Labels.
limitintegerOptional1Maximale Treffer pro Abfrage (1–5).

Erläuterung der Antwortstruktur

Gibt { results[], count, took } zurück. Jedes Ergebnis verknüpft die Eingabe-Query mit einem hits[]-Array; jeder Treffer enthält label, city, country und point {lat,lng}. Die Eingabereihenfolge bleibt erhalten.

Timezone API

IANA-Zeitzone, aktueller UTC-Offset, Sommerzeit-Status und Ortszeit für jede Koordinate weltweit.

GET/api/1/timezone

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
pointstringErforderlichlat,lngKoordinate als lat,lng.
latnumberOptional-Breitengrad (alternativ zu point).
lonnumberOptional-Längengrad (alternativ zu point).
timestampintegerOptionalnowUnix-Zeit (Sekunden) oder ISO-Datum für den Offset; Standard ist jetzt.

Erläuterung der Antwortstruktur

Gibt { timezone, point, utc_offset, utc_offset_seconds, dst, abbreviation, local_time, utc_time } zurück. utc_offset ist ein +HH:MM-String, dst ist true bei Sommerzeit, und local_time ist ein ISO-Zeitstempel mit Zonen-Offset.

Elevation API

Höhe über dem Meeresspiegel in Metern für jede Koordinate — ein Punkt oder ein ganzes Routenprofil.

GET/api/1/elevation

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
pointstringErforderlichlat,lngKoordinate als lat,lng. Für jeden Punkt wiederholen (bis 100 bei GET).

Erläuterung der Antwortstruktur

Gibt { results[], unit:"meters" } zurück, wobei jedes Ergebnis { point:{lat,lng}, elevation } ist. elevation ist Meter über dem Meeresspiegel (null wenn unbekannt, 0 über See). Für einen einzelnen Punkt gibt es zusätzlich ein elevation-Feld auf oberster Ebene. Für große Mengen POST { points:[[lat,lng],...] } (bis 1000).

Boundary Lookup API

Ermitteln Sie, in welchem Land, Bundesland, welcher Stadt und welchem Bezirk eine Koordinate liegt — auf Wunsch mit Grenzpolygon.

GET/api/1/boundary

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
pointstringErforderlichlat,lngKoordinate als lat,lng.
polygonbooleanOptionalfalsetrue, um die Grenze zusätzlich als GeoJSON zurückzugeben.
langstringOptionalenSprachcode für Ortsnamen.

Erläuterung der Antwortstruktur

Gibt { point, display_name, country, countrycode, state, county, city, district, postcode, osm_id, osm_type } zurück und bei polygon=true eine GeoJSON-Grenzgeometrie.

Geofencing API

Prüfen Sie in einem Aufruf, in welche Ihrer Zonen jeder Punkt fällt — Polygon- oder Kreiszäune.

POST/api/1/geofence

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
fencesarrayErforderlich[]Array von Zäunen: { id?, polygon:[[lat,lng],...] } oder { id?, center:[lat,lng], radius_m }. Bis zu 100.
pointsarrayErforderlich[]Array von [lat,lng]-Punkten (bis 1000).

Erläuterung der Antwortstruktur

Gibt { results[], count } zurück. Jedes Ergebnis ist { point:{lat,lng}, inside:[fenceId,...] } mit allen Zäunen, in denen der Punkt liegt (leer, wenn keiner).

Elevation Profile API

Höhe an jedem Punkt eines Pfades plus Gesamtanstieg, Abstieg und Distanz — ein komplettes Routenprofil.

POST/api/1/elevation/profile

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
pointsarrayErforderlich[]Array von [lat,lng]-Punkten des Pfades (>=2, bis 2000).
polylinestringOptional-Codierte Polyline statt points.

Erläuterung der Antwortstruktur

Gibt { profile[], total_ascent, total_descent, min_elevation, max_elevation, distance, unit } zurück. Jedes Element { point, elevation, distance } (Meter).

Solar API

Sonnenauf-/-untergang, Dämmerung, Sonnenmittag und Tageslänge für jede Koordinate und jedes Datum.

GET/api/1/solar

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
pointstringErforderlichlat,lngKoordinate als lat,lng.
datestringOptionaltodayDatum (YYYY-MM-DD) für die Berechnung; Standard heute.

Erläuterung der Antwortstruktur

Gibt { point, date, sunrise, sunset, solar_noon, dawn, dusk, golden_hour, night_start, night_end, day_length_seconds } zurück. Zeiten als UTC-ISO; null bei Polartag/-nacht.

Geometry Utilities API

Distanz, Peilung, Fläche, Schwerpunkt, Vereinfachung und Polyline-Encode/Decode — Geometrie als Service.

POST/api/1/geometry

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
opstringErforderlichdistanceOperation: distance, bearing, destination, midpoint, length, area, centroid, simplify, polyline_encode oder polyline_decode.
fromarrayOptional[lat,lng]Startpunkt [lat,lng].
toarrayOptional[lat,lng]Endpunkt [lat,lng].
patharrayOptional[]Array von [lat,lng] (length/simplify/polyline_encode).
polygonarrayOptional[][lat,lng]-Ring (area).

Erläuterung der Antwortstruktur

Gibt { op, ... } mit dem Ergebnis der Operation zurück, z. B. { distance, unit }, { bearing_deg }, { point }, { area, unit }, { path } oder { polyline }.

Coordinate Conversion API

Breite/Länge in UTM- und MGRS-Gitterreferenzen und zurück umwandeln.

GET/api/1/convert

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
pointstringErforderlichlat,lngKoordinate lat,lng zur Umwandlung in UTM/MGRS.
mgrsstringOptional-MGRS-String zur Rückumwandlung in eine Koordinate.

Erläuterung der Antwortstruktur

Gibt { point, mgrs, utm:{ zone, band, easting, northing, hemisphere } } zurück. Bei mgrs= { mgrs, point }.

Country Info API

Währung, Vorwahl, Sprachen, Hauptstadt und Flagge jedes Landes per ISO-Code oder Name.

GET/api/1/country

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
codestringErforderlichAZISO-3166-Alpha-2- oder Alpha-3-Ländercode (z. B. AZ oder AZE).
namestringOptional-Ländername statt Code.

Erläuterung der Antwortstruktur

Gibt { name, official_name, cca2, cca3, capital, region, subregion, currency:{code,name,symbol}, calling_code, languages[], flag, latlng, population } zurück.

Isochrone API

Gibt Polygone der geografischen Zonen zurück, die von einem gegebenen Punkt aus innerhalb einer gegebenen Zeit oder Distanz erreichbar sind.

GET/api/1/isochrone

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
pointstringErforderlich-Mittelpunkt. Format: lat,lon.
time_limitintegerOptional600Fahrzeitlimit (in Sekunden).

Route Optimization API

Optimiert die Routen einer Fahrzeugflotte (Vehicle Routing Problem). Berechnet den Liefer- und Transportplan der Fahrzeuge zu den geringsten Kosten.

POST/api/1/vrp

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
vehiclesarrayErforderlich[]Die Liste der Fahrzeuge — jeweils mit id, optionaler Kapazität und einem Startort als [lon, lat]-Array (Länge zuerst).
servicesarrayErforderlich[]Die anzufahrenden Stopps — jeweils mit id, einem Standort als [lon, lat]-Array (Länge zuerst) und optionaler Servicezeit. Gleiche Koordinatenreihenfolge wie bei allen unseren Endpunkten.

Location Clustering API

Gruppiert (clustert) gegebene Koordinaten nach ihrer geografischen Nähe und Dichte.

POST/api/1/cluster

Parameter (Query Params)

ParameterTypStatusStandardBeschreibung
customersarrayErforderlich[]Kundenkoordinaten und Gewichte, die geclustert werden sollen.

Offizielle SDKs

Keine Abhängigkeiten, vollständig typisiert, alle Endpunkte. Der erste Aufruf dauert unter einer Minute.

osrmrouteosrmrouteSDKs ansehen