{"openapi":"3.1.0","info":{"title":"GeoNexa API","version":"1.0.0","description":"Production geocoding, routing, isochrone and Copernicus DEM elevation API."},"servers":[{"url":"https:\/\/geonexa.eu\/api\/v1"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"GeoNexa API key (gnx_\u2026)"}}},"paths":{"\/geo\/geocode":{"get":{"summary":"Forward geocoding and place search","security":[{"bearerAuth":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer"}},{"name":"lang","in":"query","required":false,"schema":{"type":"string"}},{"name":"focus_lat","in":"query","required":false,"schema":{"type":"number"}},{"name":"focus_lon","in":"query","required":false,"schema":{"type":"number"}},{"name":"country","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Invalid or revoked API key"},"402":{"description":"Free allowance and paid credits exhausted"},"422":{"description":"Validation error"},"429":{"description":"Rate limit exceeded"},"503":{"description":"Upstream service unavailable"}}}},"\/geo\/reverse":{"get":{"summary":"Reverse geocoding","security":[{"bearerAuth":[]}],"parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number"}},{"name":"lon","in":"query","required":true,"schema":{"type":"number"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer"}},{"name":"lang","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Invalid or revoked API key"},"402":{"description":"Free allowance and paid credits exhausted"},"422":{"description":"Validation error"},"429":{"description":"Rate limit exceeded"},"503":{"description":"Upstream service unavailable"}}}},"\/geo\/route":{"post":{"summary":"Route calculation","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","required":["locations","costing"],"properties":{"locations":{"type":"array","minItems":2,"maxItems":50,"items":{"type":"object","required":["lat","lon"],"properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lon":{"type":"number","minimum":-180,"maximum":180}}}},"costing":{"type":"string","enum":["auto","bicycle","pedestrian","truck","motor_scooter","motorcycle"]},"units":{"type":"string","enum":["kilometers","miles"]}}}}}},"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Invalid or revoked API key"},"402":{"description":"Free allowance and paid credits exhausted"},"422":{"description":"Validation error"},"429":{"description":"Rate limit exceeded"},"503":{"description":"Upstream service unavailable"}}}},"\/geo\/isochrone":{"post":{"summary":"Time or distance isochrones","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","required":["locations","costing","contours"],"properties":{"locations":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"object","required":["lat","lon"],"properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lon":{"type":"number","minimum":-180,"maximum":180}}}},"costing":{"type":"string","enum":["auto","bicycle","pedestrian","truck"]},"contours":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"object","properties":{"time":{"type":"integer"},"distance":{"type":"number"},"color":{"type":"string"}}}}}}}}},"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Invalid or revoked API key"},"402":{"description":"Free allowance and paid credits exhausted"},"422":{"description":"Validation error"},"429":{"description":"Rate limit exceeded"},"503":{"description":"Upstream service unavailable"}}}},"\/geo\/elevation":{"get":{"summary":"Elevation at one WGS84 point","security":[{"bearerAuth":[]}],"parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number"}},{"name":"lon","in":"query","required":true,"schema":{"type":"number"}}],"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Invalid or revoked API key"},"402":{"description":"Free allowance and paid credits exhausted"},"422":{"description":"Validation error"},"429":{"description":"Rate limit exceeded"},"503":{"description":"Upstream service unavailable"}}}},"\/geo\/elevation\/profile":{"post":{"summary":"Elevation profile for 2\u20135000 WGS84 points","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","required":["points"],"properties":{"points":{"type":"array","minItems":2,"maxItems":5000,"items":{"type":"object","required":["lat","lon"],"properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lon":{"type":"number","minimum":-180,"maximum":180}}}}}}}}},"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"Invalid or revoked API key"},"402":{"description":"Free allowance and paid credits exhausted"},"422":{"description":"Validation error"},"429":{"description":"Rate limit exceeded"},"503":{"description":"Upstream service unavailable"}}}}}}