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.
Any endpointParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| key | string | Erforderlich | - | 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.
/api/v1/osrm/route/v1/{profile}/{coordinates}Parameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| profile | string | Erforderlich | driving | Transportmodus-Profil. Unterstützte Werte: driving (Auto), cycling (Fahrrad), walking (Fußgänger). |
| coordinates | string | Erforderlich | - | Koordinaten der Punkte. Format: lon,lat;lon,lat;lon,lat... (mindestens 2 Punkte). |
| overview | string | Optional | full | Detailgrad der zurückgegebenen Routengeometrie: simplified (vereinfacht), full (vollständige Geometrie), false (ohne Geometrie). |
| geometries | string | Optional | geojson | Geometrieformat: geojson (GeoJSON-Objekt), polyline (kodierte Zeichenfolge). |
| steps | boolean | Optional | true | Ob 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.
/api/v1/osrm/table/v1/{profile}/{coordinates}Parameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| profile | string | Erforderlich | driving | Transportprofil (driving, cycling, walking). |
| coordinates | string | Erforderlich | - | Matrixpunkte. Format: lon,lat;lon,lat;lon,lat... |
| annotations | string | Optional | duration,distance | Zu 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.
/api/v1/osrm/match/v1/{profile}/{coordinates}Parameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| profile | string | Erforderlich | driving | Transportprofil. |
| coordinates | string | Erforderlich | - | Die Folge von GPS-Koordinaten zum Zuordnen (lon,lat;lon,lat...) |
| overview | string | Optional | full | Geometriegenauigkeit der zugeordneten Route. |
Nearest API
Ordnet jede Koordinate dem nächstgelegenen realen Straßensegment zu (snap) und gibt Informationen zum Straßennamen zurück.
/api/v1/osrm/nearest/v1/{profile}/{coordinates}Parameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| profile | string | Erforderlich | driving | Transportprofil. |
| coordinates | string | Erforderlich | - | Der Punkt, in dessen Nähe gesucht wird. Format: lon,lat (ein einzelnes Paar). |
| number | integer | Optional | 3 | Die 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.
/api/v1/osrm/trip/v1/{profile}/{coordinates}Parameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| profile | string | Erforderlich | driving | Transportprofil. |
| coordinates | string | Erforderlich | - | Zu besuchende Punkte. Format: lon,lat;lon,lat... |
| source | string | Optional | any | Der Punkt, an dem die Route beginnen kann (any oder der erste Punkt). |
| destination | string | Optional | any | Der 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.
/api/1/directionsParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| point | string | Erforderlich | lat,lng | Wegpunkt als lat,lng. Parameter für jeden Stopp wiederholen (mindestens 2). |
| profile | string | Optional | driving | Fortbewegungsart: driving, cycling oder walking. |
| alternatives | integer | Optional | 0 | Anzahl zusätzlich zurückgegebener Alternativrouten (0–3). |
| lang | string | Optional | en | Sprachcode 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).
/api/1/snapParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| point | string | Erforderlich | lat,lng | GPS-Punkt als lat,lng. Parameter für jeden Punkt wiederholen (maximal 100). |
| profile | string | Optional | driving | Straß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.
/api/1/geocodeParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| q | string | Erforderlich | - | Die zu suchende Adresse (z. B. „Nizami-Straße, Baku“). |
| reverse | boolean | Optional | false | Muss true sein, um Reverse-Geocoding durchzuführen (Suche von Koordinate zu Adresse). |
| point | string | Optional | lat,lng | Koordinate (lat,lng) für Reverse-Geocoding zu einer Adresse. Erforderlich bei reverse=true. |
| limit | integer | Optional | 5 | Maximale Anzahl zurückgegebener Ergebnisse (1–20, Standard 5). |
| lang | string | Optional | en | Bevorzugte Sprache für Ergebnisnamen (z. B. en, az, ru). Standard: en. |
| lat | number | Optional | - | Breitengrad zur Gewichtung der Ergebnisse (nahe zuerst). Zusammen mit lon. |
| lon | number | Optional | - | Längengrad zur Gewichtung der Ergebnisse. Zusammen mit lat. |
| bbox | string | Optional | - | Ergebnisse auf eine Bounding-Box beschränken: minLon,minLat,maxLon,maxLat. |
| osm_tag | string | Optional | - | Nach OSM-Tag filtern, z. B. place (Orte) oder amenity:cafe. Präfix ! zum Ausschließen. |
| city | string | Optional | - | Ergebnisse in dieser Stadt nach oben priorisieren (z. B. Bakı), ohne andere zu verbergen. |
| elastic | boolean | Optional | true | Elastische (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.
/api/1/placesParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| point | string | Erforderlich | lat,lng | Mittelpunkt-Koordinate lat,lng (erforderlich). |
| radius | number | Optional | 1 | Suchradius in Kilometern (0.05–20, Standard 1). |
| category | string | Optional | - | OSM-Tag-Filter, z. B. amenity:cafe, shop, tourism:hotel. Präfix ! zum Ausschließen. Leer = alle POIs. |
| limit | integer | Optional | 10 | Max. Ergebnisse (1–50, Standard 10). |
| lang | string | Optional | en | Bevorzugte Sprache für Namen (z. B. en, az, ru). |
Autocomplete API
Schnelle, tippfehlertolerante Ortsvorschläge während der Eingabe, mit optionaler Standortgewichtung.
/api/1/autocompleteParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| q | string | Erforderlich | - | Suchtext — Teileingabe ist möglich. |
| limit | integer | Optional | 8 | Maximale Anzahl an Vorschlägen (1–15). |
| lang | string | Optional | en | Sprachcode für Ergebnis-Labels. |
| lat | number | Optional | - | Breitengrad zur Gewichtung (optional). |
| lon | number | Optional | - | Längengrad zur Gewichtung (optional). |
| osm_tag | string | Optional | - | 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.
/api/1/geocode/batchParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| queries | array | Erforderlich | [] | Array von zu geokodierenden Adressen (max. 100). |
| lang | string | Optional | en | Sprachcode für Ergebnis-Labels. |
| limit | integer | Optional | 1 | Maximale 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.
/api/1/timezoneParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| point | string | Erforderlich | lat,lng | Koordinate als lat,lng. |
| lat | number | Optional | - | Breitengrad (alternativ zu point). |
| lon | number | Optional | - | Längengrad (alternativ zu point). |
| timestamp | integer | Optional | now | Unix-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.
/api/1/elevationParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| point | string | Erforderlich | lat,lng | Koordinate 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.
/api/1/boundaryParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| point | string | Erforderlich | lat,lng | Koordinate als lat,lng. |
| polygon | boolean | Optional | false | true, um die Grenze zusätzlich als GeoJSON zurückzugeben. |
| lang | string | Optional | en | Sprachcode 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.
/api/1/geofenceParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| fences | array | Erforderlich | [] | Array von Zäunen: { id?, polygon:[[lat,lng],...] } oder { id?, center:[lat,lng], radius_m }. Bis zu 100. |
| points | array | Erforderlich | [] | 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.
/api/1/elevation/profileParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| points | array | Erforderlich | [] | Array von [lat,lng]-Punkten des Pfades (>=2, bis 2000). |
| polyline | string | Optional | - | 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.
/api/1/solarParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| point | string | Erforderlich | lat,lng | Koordinate als lat,lng. |
| date | string | Optional | today | Datum (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.
/api/1/geometryParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| op | string | Erforderlich | distance | Operation: distance, bearing, destination, midpoint, length, area, centroid, simplify, polyline_encode oder polyline_decode. |
| from | array | Optional | [lat,lng] | Startpunkt [lat,lng]. |
| to | array | Optional | [lat,lng] | Endpunkt [lat,lng]. |
| path | array | Optional | [] | Array von [lat,lng] (length/simplify/polyline_encode). |
| polygon | array | Optional | [] | [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.
/api/1/convertParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| point | string | Erforderlich | lat,lng | Koordinate lat,lng zur Umwandlung in UTM/MGRS. |
| mgrs | string | Optional | - | 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.
/api/1/countryParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| code | string | Erforderlich | AZ | ISO-3166-Alpha-2- oder Alpha-3-Ländercode (z. B. AZ oder AZE). |
| name | string | Optional | - | 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.
/api/1/isochroneParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| point | string | Erforderlich | - | Mittelpunkt. Format: lat,lon. |
| time_limit | integer | Optional | 600 | Fahrzeitlimit (in Sekunden). |
Route Optimization API
Optimiert die Routen einer Fahrzeugflotte (Vehicle Routing Problem). Berechnet den Liefer- und Transportplan der Fahrzeuge zu den geringsten Kosten.
/api/1/vrpParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| vehicles | array | Erforderlich | [] | Die Liste der Fahrzeuge — jeweils mit id, optionaler Kapazität und einem Startort als [lon, lat]-Array (Länge zuerst). |
| services | array | Erforderlich | [] | 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.
/api/1/clusterParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| customers | array | Erforderlich | [] | Kundenkoordinaten und Gewichte, die geclustert werden sollen. |
Offizielle SDKs
Keine Abhängigkeiten, vollständig typisiert, alle Endpunkte. Der erste Aufruf dauert unter einer Minute.