Directions
Turn-by-turn driving, walking and cycling routes across South Africa. GeoJSON or polyline output.
POST /ors/v2/directions/{profile}
A self-hosted alternative to Google Maps APIs. Driving directions, reach polygons, ETA matrices and geocoding. One key, predictable pricing, no rate-limit roulette.
One API. Five purpose-built endpoints. Backed by OpenRouteService, OSM and our own auth layer.
Turn-by-turn driving, walking and cycling routes across South Africa. GeoJSON or polyline output.
POST /ors/v2/directions/{profile}
"How far can I get in 15 minutes?" Service-area polygons for delivery, real estate, EV planning.
POST /ors/v2/isochrones/{profile}
One-to-many or many-to-many travel times. Pick the closest driver, sort customers by ETA.
POST /ors/v2/matrix/{profile}
Address → coordinates and reverse. ZA-biased by default. Drop-in alternative to Google Geocoding.
GET /geocode?q=… · GET /reverse
Real-time per-key stats: today, 7d, 30d, p50/p95 latency, top endpoints. Built in.
/dashboard
X-API-Key header on every call, 30 req/s per key. Issue and revoke keys in seconds.
X-API-Key: …
Pick your language and copy. The full reference lives at /documentation.
curl -X POST "https://routing.dvz.services/ors/v2/directions/driving-car" \
-H "X-API-Key: $DVVZ_KEY" \
-H "Content-Type: application/json" \
-d '{"coordinates":[[28.0473,-26.2041],[18.4241,-33.9249]]}'
const r = await fetch("https://routing.dvz.services/ors/v2/directions/driving-car", {
method: "POST",
headers: {
"X-API-Key": process.env.DVVZ_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
coordinates: [[28.0473, -26.2041], [18.4241, -33.9249]],
}),
});
const route = await r.json();
import os, requests
r = requests.post(
"https://routing.dvz.services/ors/v2/directions/driving-car",
headers={"X-API-Key": os.environ["DVVZ_KEY"]},
json={"coordinates": [[28.0473, -26.2041], [18.4241, -33.9249]]},
)
route = r.json()
Free while we learn what your usage looks like. We'll switch on billing transparently from month two. You'll see every request in your dashboard from day one.
Try it, prototype, integrate.
For apps in market.
Your own VPS, our stack.
Sign up, copy your key, swap your endpoint. We'll keep the lights on.