Home / APIs / Geo Toolkit

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

MethodPathDescription
GET/plus-code/encodeEncode lat/lng to an Open Location Code (Plus Code)
GET/plus-code/decodeDecode a Plus Code to center + bounds
GET/geohash/encodeEncode lat/lng to a geohash (precision 1-12)
GET/geohash/decodeDecode a geohash to center + bounds
GET/geohash/neighborsThe 8 neighboring geohashes
GET/maidenhead/encodeEncode lat/lng to a Maidenhead locator
GET/maidenhead/decodeDecode a Maidenhead locator to lat/lng
GET/distanceDistance + initial bearing + midpoint (km/mi/m/nmi)
GET/destinationDestination point from start, distance & bearing
GET/bboxBounding box around a point for a radius
GET/coordinateDecimal degrees to DMS

Quick start

cURL (via RapidAPI)
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 '{}'
JavaScript (fetch)
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();
Example response
{
  "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.

Basic
Free
1,000 requests / mo
Pro
$5 / mo
100,000 requests / mo
Ultra
$20 / mo
1,000,000 requests / mo
Mega
$50 / mo
2,000,000 requests / mo

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 ↗