{"openapi":"3.1.0","info":{"title":"GeoJSON API","version":"1.0.0","description":"Measure GeoJSON geometry on the surface of the earth. Compute the true area of a Polygon or MultiPolygon (in square metres, square kilometres, hectares, acres and square miles), find the centroid of any GeoJSON, get the bounding box (west/south/east/north) and its centre, measure the length of a LineString or MultiLineString (in kilometres, metres, miles and nautical miles), and test whether a latitude/longitude point falls inside a polygon. Accepts geometries, Features and FeatureCollections; coordinates follow the GeoJSON [longitude, latitude] order. Perfect for mapping apps, geofencing, territory and catchment analysis, route distances and spatial dashboards. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 6 endpoints. Distinct from abstract shape geometry, coordinate-format conversion, slippy map tiles and administrative-boundary data.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/geojson-api","description":"oanor gateway"}],"tags":[{"name":"GeoJSON"},{"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/area":{"get":{"operationId":"get_v1_area","tags":["GeoJSON"],"summary":"Area of a GeoJSON polygon","description":"","parameters":[{"name":"geojson","in":"query","required":true,"description":"Polygon/MultiPolygon/Feature","schema":{"type":"string"},"example":"{\"type\":\"Polygon\",\"coordinates\":[[[0,0],[0,1],[1,1],[1,0],[0,0]]]}"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"acres":3061976.872801,"hectares":1239139.990207,"square_miles":4784.34625,"square_meters":12391399902.0711,"square_kilometers":12391.399902},"meta":{"timestamp":"2026-06-02T16:51:47.726Z","request_id":"00783958-665e-4d5d-9121-1ee6d1e7bc55"},"status":"ok","message":"Area of a GeoJSON polygon","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/bbox":{"get":{"operationId":"get_v1_bbox","tags":["GeoJSON"],"summary":"Bounding box of a GeoJSON","description":"","parameters":[{"name":"geojson","in":"query","required":true,"description":"Any GeoJSON","schema":{"type":"string"},"example":"{\"type\":\"Polygon\",\"coordinates\":[[[0,0],[0,1],[1,1],[1,0],[0,0]]]}"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"bbox":{"east":1,"west":0,"north":1,"south":0},"center":{"lat":0.5,"lng":0.5},"bbox_array":[0,0,1,1]},"meta":{"timestamp":"2026-06-02T16:51:47.825Z","request_id":"b4c3c98e-19e5-4f14-850d-374960253419"},"status":"ok","message":"Bounding box of a GeoJSON","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/centroid":{"get":{"operationId":"get_v1_centroid","tags":["GeoJSON"],"summary":"Centroid of a GeoJSON","description":"","parameters":[{"name":"geojson","in":"query","required":true,"description":"Any GeoJSON","schema":{"type":"string"},"example":"{\"type\":\"Polygon\",\"coordinates\":[[[0,0],[0,1],[1,1],[1,0],[0,0]]]}"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"centroid":{"lat":0.5,"lng":0.5}},"meta":{"timestamp":"2026-06-02T16:51:47.946Z","request_id":"c8b1f62d-efbc-4692-a207-fedcc45e8a77"},"status":"ok","message":"Centroid of a GeoJSON","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/length":{"get":{"operationId":"get_v1_length","tags":["GeoJSON"],"summary":"Length of a GeoJSON line","description":"","parameters":[{"name":"geojson","in":"query","required":true,"description":"LineString/MultiLineString","schema":{"type":"string"},"example":"{\"type\":\"LineString\",\"coordinates\":[[0,0],[0,1]]}"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"miles":69.093398,"meters":111195.08,"kilometers":111.19508,"nautical_miles":60.040562},"meta":{"timestamp":"2026-06-02T16:51:48.025Z","request_id":"b15386ac-4ec3-4587-b3d8-868accf4e56e"},"status":"ok","message":"Length of a GeoJSON line","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/point-in-polygon":{"get":{"operationId":"get_v1_point_in_polygon","tags":["GeoJSON"],"summary":"Point-in-polygon test","description":"","parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude","schema":{"type":"string"},"example":"0.5"},{"name":"lng","in":"query","required":true,"description":"Longitude","schema":{"type":"string"},"example":"0.5"},{"name":"polygon","in":"query","required":true,"description":"GeoJSON polygon","schema":{"type":"string"},"example":"{\"type\":\"Polygon\",\"coordinates\":[[[0,0],[0,1],[1,1],[1,0],[0,0]]]}"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"point":{"lat":0.5,"lng":0.5},"inside":true},"meta":{"timestamp":"2026-06-02T16:51:48.132Z","request_id":"6a9bd814-d6ba-4fb8-9da0-a5dd3204fb5a"},"status":"ok","message":"Point-in-polygon test","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":{"name":"GeoJSON API","notes":"Coordinates are GeoJSON order [longitude, latitude]. Area uses the spherical earth model; pass real-world WGS84 lon/lat.","version":"v1","endpoints":[{"path":"/v1/area","params":{"geojson":"Polygon/MultiPolygon/Feature(Collection) (required)"},"returns":"area in m², km², hectares, acres, sq miles"},{"path":"/v1/centroid","params":{"geojson":"any GeoJSON (required)"},"returns":"centroid {lat,lng}"},{"path":"/v1/bbox","params":{"geojson":"any GeoJSON (required)"},"returns":"bounding box (W/S/E/N) + center"},{"path":"/v1/length","params":{"geojson":"LineString/MultiLineString (required)"},"returns":"length in km, m, miles, nm"},{"path":"/v1/point-in-polygon","params":{"lat":"required","lng":"required","polygon":"GeoJSON polygon (required)"},"returns":"inside: true/false"},{"path":"/v1/meta","params":[],"returns":"this document"}],"description":"Geospatial metrics on GeoJSON — true earth-surface area, centroid, bounding box, line length and point-in-polygon tests. Powered by Turf. Pure local, no key."},"meta":{"timestamp":"2026-06-02T16:51:48.222Z","request_id":"b7bd55fc-b491-44b5-86ac-71a8535752e9"},"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":980,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":220,"monthly_call_quota":8300,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2120,"monthly_call_quota":136000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5720,"monthly_call_quota":700000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/geojson-api"}