Self-hosted location services with simple key-based auth, transparent usage reporting and predictable limits. Built for fleets, logistics and anything that moves.
# One GET request. That's the whole integration. curl https://api.example.com/api/v1/Geocode/{your-api-key}/10+Downing+Street+London { "Lat": 51.5033, "Lon": -0.1277, "Address": "10 Downing Street, Westminster, London SW1A 2AA" }
Three focused APIs behind one key. No SDKs to learn β if you can make an HTTP request, you're integrated.
Free-text address or place search to coordinates. Handles partial addresses, postcodes and points of interest.
Coordinates to a structured, human-readable address. Ideal for telematics pings, photo tagging and check-ins.
Point-to-point routes with distance, duration and turn-by-turn geometry, tuned for real road networks.
The key lives in the URL path. No OAuth dance, no signing, no token refresh. Issue and revoke keys yourself.
Per-key success/failure counts, daily breakdowns and monthly trends in your dashboard. No surprise bills.
Group keys and users under your company. Invite teammates with a link β everyone sees the same usage picture.
All endpoints are plain HTTPS GETs that return JSON. Replace {apikey} with a key from your dashboard.
# Geocode an address curl "https://api.example.com/api/v1/Geocode/{apikey}/1600+Amphitheatre+Parkway"
const r = await fetch(`https://api.example.com/api/v1/Geocode/${apiKey}/${encodeURIComponent(address)}`); const result = await r.json(); console.log(result.Lat, result.Lon);
using var http = new HttpClient(); var json = await http.GetStringAsync( $"https://api.example.com/api/v1/Geocode/{apiKey}/{Uri.EscapeDataString(address)}");
# What's at these coordinates? curl "https://api.example.com/api/v1/ReverseGeocode/{apikey}/51.5033/-0.1277"
const r = await fetch(`https://api.example.com/api/v1/ReverseGeocode/${apiKey}/${lat}/${lon}`); const place = await r.json();
var json = await http.GetStringAsync( $"https://api.example.com/api/v1/ReverseGeocode/{apiKey}/{lat}/{lon}");
lat,lon pairs. Returns distance, duration and geometry.
# London β Manchester curl "https://api.example.com/api/v1/Route/{apikey}/51.5074,-0.1278/53.4808,-2.2426"
const r = await fetch(`https://api.example.com/api/v1/Route/${apiKey}/${start}/${end}`); const route = await r.json(); console.log(route.DistanceMeters, route.DurationSeconds);
var json = await http.GetStringAsync( $"https://api.example.com/api/v1/Route/{apiKey}/{start}/{end}");
Every response is JSON. Failed lookups return an empty result with HTTP 200; auth failures return 401/429 with a reason. Rate limits and allowed services are per-account β see your dashboard.
No sales call, no card required to start.
Register with email or single sign-on. Enter your company name β or join your team with an invite link.
One click in the dashboard. The key is shown once β keep it safe, revoke and reissue any time.
Drop the key into any example above. Watch the request land in your usage dashboard seconds later.
Create an account and make your first geocoding call in under two minutes.
Get started β it's free