Geoapify · Schema
GeometryOperationRequest
GeocodingGeospatialLocationMapsRoutingPlacesTimezoneMCPGeoJSONOpenStreetMapStatic MapsIsolines
Properties
| Name | Type | Description |
|---|---|---|
| operation | string | Geometry operation to perform. Use `length` to measure a LineString or MultiLineString. |
| params | object | |
| polygons | array | |
| points | array | |
| geometry | object | |
| geometry1 | object | |
| geometry2 | object | |
| geometries | array | |
| point | object | |
| point1 | object | |
| point2 | object | |
| line | object | LineString or MultiLineString used by line operations, including `length`. |
| line1 | object | |
| line2 | object | |
| polygon | object | |
| bbox | object | |
| distance | number | |
| maxDistance | number | |
| angle | number | |
| factor | number | |
| direction | number | |
| type | string | |
| cellSide | number | |
| count | integer |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/geoapify/json-schema/geoapify-geometry-operation-request-schema.json",
"title": "GeometryOperationRequest",
"x-generated": "2026-11-05",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/geoapify-geometry-operations-api-openapi.yml#/components/schemas/GeometryOperationRequest",
"type": "object",
"required": [
"operation"
],
"allOf": [
{
"if": {
"required": [
"operation"
],
"properties": {
"operation": {
"const": "length"
}
}
},
"then": {
"$ref": "#/$defs/LengthOperationRequest"
}
}
],
"properties": {
"operation": {
"type": "string",
"enum": [
"intersection",
"difference",
"union",
"voronoi",
"contains",
"crosses",
"disjoint",
"intersects",
"pointOnLine",
"valid",
"within",
"along",
"area",
"bbox",
"buffer",
"center",
"centerMean",
"centerMedian",
"centerOfMass",
"clustersDbscan",
"clustersKmeans",
"concave",
"convex",
"distance",
"length",
"envelope",
"greatCircle",
"grid",
"randomPoint",
"randomLineString",
"randomPolygon",
"lineIntersect",
"nearestPointOnLine",
"pointsWithinPolygon",
"pointToLineDistance",
"pointToPolygonDistance",
"tin",
"tesselate",
"simplify",
"transformRotate",
"transformScale",
"transformTranslate"
],
"description": "Geometry operation to perform. Use `length` to measure a LineString or MultiLineString."
},
"params": {
"type": "object",
"additionalProperties": true,
"properties": {
"units": {
"$ref": "#/$defs/GeometryLengthUnit"
},
"steps": {
"type": "integer",
"minimum": 1
},
"minPoints": {
"type": "integer",
"minimum": 1
},
"numberOfClusters": {
"type": "integer",
"minimum": 1
},
"tolerance": {
"type": "number",
"minimum": 0
},
"highQuality": {
"type": "boolean"
},
"mutate": {
"type": "boolean"
},
"origin": {
"oneOf": [
{
"type": "string",
"enum": [
"center",
"centroid",
"sw",
"se",
"nw",
"ne"
]
},
{
"$ref": "#/$defs/Position"
}
]
}
}
},
"polygons": {
"type": "array",
"minItems": 2,
"maxItems": 100,
"items": {
"$ref": "#/$defs/AnyGeometry"
}
},
"points": {
"type": "array",
"minItems": 1,
"maxItems": 1000,
"items": {
"$ref": "#/$defs/PointGeometry"
}
},
"geometry": {
"$ref": "#/$defs/AnyGeometry"
},
"geometry1": {
"$ref": "#/$defs/AnyGeometry"
},
"geometry2": {
"$ref": "#/$defs/AnyGeometry"
},
"geometries": {
"type": "array",
"minItems": 1,
"maxItems": 100,
"items": {
"$ref": "#/$defs/AnyGeometry"
}
},
"point": {
"$ref": "#/$defs/PointGeometry"
},
"point1": {
"$ref": "#/$defs/PointGeometry"
},
"point2": {
"$ref": "#/$defs/PointGeometry"
},
"line": {
"description": "LineString or MultiLineString used by line operations, including `length`.",
"$ref": "#/$defs/LineGeometry"
},
"line1": {
"$ref": "#/$defs/AnyGeometry"
},
"line2": {
"$ref": "#/$defs/AnyGeometry"
},
"polygon": {
"$ref": "#/$defs/AnyGeometry"
},
"bbox": {
"oneOf": [
{
"type": "array",
"minItems": 4,
"maxItems": 4,
"items": {
"type": "number"
}
},
{
"type": "object",
"required": [
"lon1",
"lat1",
"lon2",
"lat2"
],
"properties": {
"lon1": {
"type": "number",
"minimum": -180,
"maximum": 180
},
"lat1": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"lon2": {
"type": "number",
"minimum": -180,
"maximum": 180
},
"lat2": {
"type": "number",
"minimum": -90,
"maximum": 90
}
}
}
]
},
"distance": {
"type": "number"
},
"maxDistance": {
"type": "number",
"minimum": 0
},
"angle": {
"type": "number"
},
"factor": {
"type": "number"
},
"direction": {
"type": "number"
},
"type": {
"type": "string",
"enum": [
"hex",
"point",
"square",
"triangle"
]
},
"cellSide": {
"type": "number",
"exclusiveMinimum": 0
},
"count": {
"type": "integer",
"minimum": 1
}
},
"$defs": {
"AnyGeometry": {
"type": "object",
"additionalProperties": true,
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point",
"LineString",
"Polygon",
"MultiPoint",
"MultiLineString",
"MultiPolygon"
]
},
"coordinates": {
"type": "array"
}
}
},
"GeometryLengthUnit": {
"type": "string",
"enum": [
"meters",
"metres",
"millimeters",
"millimetres",
"centimeters",
"centimetres",
"kilometers",
"kilometres",
"miles",
"nauticalmiles",
"inches",
"yards",
"feet",
"radians",
"degrees"
],
"default": "kilometers",
"description": "Length unit. Defaults to `kilometers`. `degrees` and `radians` return angular length rather than physical length."
},
"LengthOperationParameters": {
"type": "object",
"additionalProperties": false,
"properties": {
"units": {
"$ref": "#/$defs/GeometryLengthUnit"
}
}
},
"LengthOperationRequest": {
"type": "object",
"required": [
"operation",
"line"
],
"properties": {
"operation": {
"const": "length"
},
"line": {
"$ref": "#/$defs/LineGeometry"
},
"params": {
"$ref": "#/$defs/LengthOperationParameters"
}
}
},
"LineGeometry": {
"oneOf": [
{
"$ref": "#/$defs/LineStringGeometry"
},
{
"$ref": "#/$defs/MultiLineStringGeometry"
}
]
},
"LineStringGeometry": {
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"const": "LineString"
},
"coordinates": {
"type": "array",
"minItems": 2,
"items": {
"$ref": "#/$defs/Position"
}
}
}
},
"MultiLineStringGeometry": {
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"const": "MultiLineString"
},
"coordinates": {
"type": "array",
"minItems": 1,
"items": {
"type": "array",
"minItems": 2,
"items": {
"$ref": "#/$defs/Position"
}
}
}
}
},
"PointGeometry": {
"type": "object",
"additionalProperties": true,
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"const": "Point"
},
"coordinates": {
"$ref": "#/$defs/Position"
}
}
},
"Position": {
"type": "array",
"minItems": 2,
"maxItems": 3,
"prefixItems": [
{
"type": "number",
"minimum": -180,
"maximum": 180
},
{
"type": "number",
"minimum": -90,
"maximum": 90
},
{
"type": "number"
}
],
"items": false
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/geoapify-geometry-operation-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.