Request access

api.nexvia.eu / v1

One contract. Pin a provider or let auto choose.

HTTPS, JSON, one project key. Point osrm at the server you already host — that is the cheap path. Or pin google, mapbox, graphhopper, here, tomtom, valhalla, ors, or leave provider as auto.

POST /v1/route

Normalized directions. The orchestrator forwards to the selected engine.

curl -s https://api.nexvia.eu/v1/route \
  -H "Authorization: Bearer $NEXVIA_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "auto",
    "origin": {"lat": 48.1351, "lng": 11.5820},
    "destination": {"lat": 48.2082, "lng": 16.3738},
    "profile": "driving",
    "geometries": "polyline6"
  }'

POST /v1/matrix

Same body shape for every provider. Only the engine behind it changes.

curl -s https://api.nexvia.eu/v1/matrix \
  -H "Authorization: Bearer $NEXVIA_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "mapbox",
    "origins": [{"lat": 48.1351, "lng": 11.5820}],
    "destinations": [
      {"lat": 48.2082, "lng": 16.3738},
      {"lat": 45.4642, "lng": 9.1900}
    ]
  }'

POST /v1/geocode

Forward an address or a reverse lookup to the selected geocoder.

curl -s https://api.nexvia.eu/v1/geocode \
  -H "Authorization: Bearer $NEXVIA_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "auto",
    "query": "Karlsplatz, Munich"
  }'

POST /v1/match

Snap a trace to the road network. Same key, same host.

curl -s https://api.nexvia.eu/v1/match \
  -H "Authorization: Bearer $NEXVIA_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "mapbox",
    "points": [
      {"lat": 48.1351, "lng": 11.5820},
      {"lat": 48.1374, "lng": 11.5755}
    ]
  }'

Response shape

{
  "id": "rte_8k2q1",
  "provider": "osrm",
  "distance_m": 194320,
  "duration_s": 8120,
  "geometry": "izp_Hc_..."
}