Geo Toolkit API
Plus Codes, geohash & Maidenhead encode/decode plus distance, bearing, destination, and DD‑DMS.
Get it on RapidAPI ↗Geo Toolkit bundles the geospatial primitives developers normally stitch together from multiple libraries into one fast, stateless API. Encode and decode Open Location Codes (Plus Codes), geohashes, and Maidenhead grid locators; compute great-circle distance, initial bearing, and midpoint between two points; project a destination point from a start, distance, and bearing; build a bounding box around a point; and convert decimal degrees to DMS.
Distances support km, miles, meters, and nautical miles. Everything is pure math — no map tiles, no location database, no data retention — so responses are instant and your coordinates never leave the request. Ideal for store locators, geofencing, ham-radio tools, fleet/logistics math, and map UIs.
Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /plus-code/encode | Encode lat/lng to an Open Location Code (Plus Code) |
| GET | /plus-code/decode | Decode a Plus Code to center + bounds |
| GET | /geohash/encode | Encode lat/lng to a geohash (precision 1-12) |
| GET | /geohash/decode | Decode a geohash to center + bounds |
| GET | /geohash/neighbors | The 8 neighboring geohashes |
| GET | /maidenhead/encode | Encode lat/lng to a Maidenhead locator |
| GET | /maidenhead/decode | Decode a Maidenhead locator to lat/lng |
| GET | /distance | Distance + initial bearing + midpoint (km/mi/m/nmi) |
| GET | /destination | Destination point from start, distance & bearing |
| GET | /bbox | Bounding box around a point for a radius |
| GET | /coordinate | Decimal degrees to DMS |
Quick start
curl --request curl \
--url 'https://geo-toolkit.p.rapidapi.com/-G "https://geo-toolkit.p.rapidapi.com/distance" -d "lat1=40.7128" -d "lng1=-74.0060" -d "lat2=34.0522" -d "lng2=-118.2437" -d "unit=km" -H "X-RapidAPI-Key: YOUR_KEY" -H "X-RapidAPI-Host: geo-toolkit.p.rapidapi.com"' \
--header 'X-RapidAPI-Key: YOUR_KEY' \
--header 'X-RapidAPI-Host: geo-toolkit.p.rapidapi.com' \
--header 'content-type: application/json' \
--data '{}'const res = await fetch('https://geo-toolkit.p.rapidapi.com/-G "https://geo-toolkit.p.rapidapi.com/distance" -d "lat1=40.7128" -d "lng1=-74.0060" -d "lat2=34.0522" -d "lng2=-118.2437" -d "unit=km" -H "X-RapidAPI-Key: YOUR_KEY" -H "X-RapidAPI-Host: geo-toolkit.p.rapidapi.com"', {
method: 'curl',
headers: {
'X-RapidAPI-Key': 'YOUR_KEY',
'X-RapidAPI-Host': 'geo-toolkit.p.rapidapi.com',
'content-type': 'application/json'
},
body: JSON.stringify({})
});
const data = await res.json();{
"distance": 3935.75,
"unit": "km",
"bearing": 273.69,
"midpoint": {
"lat": 39.51,
"lng": -97.16
}
}Pricing
Subscribe on RapidAPI. Start free; upgrade as you scale.
Frequently asked questions
Are coordinates logged?
No. The service is pure compute and does not retain any request data.
What distance units are supported?
Pass unit=km (default), mi, m, or nmi on /distance, /destination, and /bbox. Bearings are always in degrees (0 = north, clockwise).
What's the difference between Plus Codes, geohash, and Maidenhead?
All three encode a lat/lng into a short string. Plus Codes (Open Location Code) are Google's open standard; geohash is common in databases and indexing; Maidenhead is used in amateur radio. This API encodes and decodes all three.
Ready to build with Geo Toolkit?
Grab your key on RapidAPI and start on the free tier.
Get it on RapidAPI ↗