Directions
Turn-by-turn driving, walking and cycling routes across South Africa. GeoJSON or polyline output.
POST /ors/v2/directions/{profile}
Your own self-hosted routing and geocoding API. 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, self-hosted on Pelias.
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()
Every plan comes with monthly tokens, weighted by how heavy each call is: geocoding or reverse is 1 token, a route is 5 (10 with multiple stops), isochrones 10, and matrix bills 1 token per origin×destination pair. Transparent, predictable pricing at a fraction of the big map providers. Start free, no card required.
Build & prototype.
10 000 tokens / month
Small apps in production.
100 000 tokens / month
Scaling products.
400 000 tokens / month
High-volume platforms.
2.5 million tokens / month
Custom volume, a dedicated or fully self-hosted deployment of the stack, and hands-on onboarding. Let's scope it together.
Sign up and your free 10 000 tokens are live instantly — no card, no email hoops. Run low before your monthly reset? Buy a top-up token pack anytime (from R4.50 / 1 000). Paid plans are billed securely via Paystack.
Sign up, copy your key, swap your endpoint. We'll keep the lights on.