{"openapi":"3.1.0","info":{"title":"Coordinate Conversion API","version":"1.0.0","description":"Convert geographic coordinates between every common format. Turn a latitude/longitude pair into a Plus Code (Open Location Code, as used by Google Maps), an MGRS reference (Military Grid Reference System), a UTM coordinate (zone, hemisphere, easting, northing) or a DMS string (degrees-minutes-seconds) — and convert any of those back to latitude/longitude. The /v1/all endpoint returns every format at once. Each conversion runs fully locally (no third-party service) so responses are instant and always available. Live, no cache. 6 endpoints. Built for GIS, mapping, surveying, logistics, aviation, emergency services and any app that exchanges coordinates between systems. Complements geohash and CRS lookups without overlap. No upstream key.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/geoconvert-api","description":"oanor gateway"}],"tags":[{"name":"Convert"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/all":{"get":{"operationId":"get_v1_all","tags":["Convert"],"summary":"All formats at once","description":"","parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude (-90..90)","schema":{"type":"string"},"example":"47.36559"},{"name":"lon","in":"query","required":true,"description":"Longitude (-180..180)","schema":{"type":"string"},"example":"8.524997"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"dms":{"latitude":"47°21'56.12\"N","formatted":"47°21'56.12\"N 8°31'29.99\"E","longitude":"8°31'29.99\"E"},"utm":{"easting":464134.72,"northing":5245901.48,"hemisphere":"N","zone_letter":"T","zone_number":32},"mgrs":"32TMT6413445901","latitude":47.36559,"longitude":8.524997,"plus_code":"8FVC9G8F+6X"},"meta":{"timestamp":"2026-06-02T16:52:04.096Z","request_id":"8f4ec0af-ef51-4497-b4c9-d204ae683834"},"status":"ok","message":"All formats at once","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/dms":{"get":{"operationId":"get_v1_dms","tags":["Convert"],"summary":"DMS (degrees-minutes-seconds)","description":"","parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude (-90..90)","schema":{"type":"string"},"example":"47.36559"},{"name":"lon","in":"query","required":true,"description":"Longitude (-180..180)","schema":{"type":"string"},"example":"8.524997"},{"name":"lat_dms","in":"query","required":false,"description":"Decode: latitude DMS","schema":{"type":"string"}},{"name":"lon_dms","in":"query","required":false,"description":"Decode: longitude DMS","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"lat_dms":{"degrees":47,"minutes":21,"seconds":56.12,"direction":"N","formatted":"47°21'56.12\"N"},"lon_dms":{"degrees":8,"minutes":31,"seconds":29.99,"direction":"E","formatted":"8°31'29.99\"E"},"latitude":47.36559,"formatted":"47°21'56.12\"N 8°31'29.99\"E","longitude":8.524997},"meta":{"timestamp":"2026-06-02T16:52:04.213Z","request_id":"e8cab9bf-1604-4c47-87b1-c1130cc83182"},"status":"ok","message":"DMS conversion","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/mgrs":{"get":{"operationId":"get_v1_mgrs","tags":["Convert"],"summary":"MGRS","description":"","parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude (-90..90)","schema":{"type":"string"},"example":"47.36559"},{"name":"lon","in":"query","required":true,"description":"Longitude (-180..180)","schema":{"type":"string"},"example":"8.524997"},{"name":"mgrs","in":"query","required":false,"description":"Decode an MGRS reference instead","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"mgrs":"32TMT6413445901","latitude":47.36559,"longitude":8.524997},"meta":{"timestamp":"2026-06-02T16:52:04.319Z","request_id":"71fadc62-0f77-497d-bcb9-ca113320922f"},"status":"ok","message":"MGRS conversion","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/pluscode":{"get":{"operationId":"get_v1_pluscode","tags":["Convert"],"summary":"Plus Code (Open Location Code)","description":"","parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude (-90..90)","schema":{"type":"string"},"example":"47.36559"},{"name":"lon","in":"query","required":true,"description":"Longitude (-180..180)","schema":{"type":"string"},"example":"8.524997"},{"name":"code","in":"query","required":false,"description":"Decode a Plus Code instead","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"code":"8FVC9G8F+6X","latitude":47.36559,"longitude":8.524997},"meta":{"timestamp":"2026-06-02T16:52:04.426Z","request_id":"862205cd-250b-4953-8a37-6eb047a9c68e"},"status":"ok","message":"Plus Code (Open Location Code)","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/utm":{"get":{"operationId":"get_v1_utm","tags":["Convert"],"summary":"UTM","description":"","parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude (-90..90)","schema":{"type":"string"},"example":"47.36559"},{"name":"lon","in":"query","required":true,"description":"Longitude (-180..180)","schema":{"type":"string"},"example":"8.524997"},{"name":"zone","in":"query","required":false,"description":"Decode: zone number","schema":{"type":"string"}},{"name":"easting","in":"query","required":false,"description":"Decode: easting","schema":{"type":"string"}},{"name":"northing","in":"query","required":false,"description":"Decode: northing","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"easting":464134.72,"latitude":47.36559,"northing":5245901.48,"longitude":8.524997,"hemisphere":"N","zone_letter":"T","zone_number":32},"meta":{"timestamp":"2026-06-02T16:52:04.529Z","request_id":"34ff6824-2a2d-49d0-80cb-c1e9aada8b50"},"status":"ok","message":"UTM conversion","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"auth":"none upstream; this gateway requires x-api-key","name":"Coordinate Conversion API","note":"Convert latitude/longitude between Plus Codes, MGRS, UTM and DMS. Each endpoint is bidirectional (lat/lon in, or the format in to get lat/lon). /v1/all returns every format at once. Fully local and instant. Complements geohash-api (geohash) and epsg-api (CRS metadata).","source":"Local conversion (open-location-code, mgrs, utm) — no key, no upstream","endpoints":6},"meta":{"timestamp":"2026-06-02T16:52:04.593Z","request_id":"4feb1941-6f06-4304-a4c9-18c2ede8e799"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":1700,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":850,"monthly_call_quota":37000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2750,"monthly_call_quota":205000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":6350,"monthly_call_quota":1020000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/geoconvert-api"}