Geoapify · Schema

RoutePlannerResponse

GeocodingGeospatialLocationMapsRoutingPlacesTimezoneMCPGeoJSONOpenStreetMapStatic MapsIsolines
View JSON Schema on GitHub

JSON Schema

geoapify-route-planner-response-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/geoapify/json-schema/geoapify-route-planner-response-schema.json",
  "title": "RoutePlannerResponse",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/geoapify-route-planner-api-openapi.yml#/components/schemas/RoutePlannerResponse",
  "oneOf": [
    {
      "$ref": "#/$defs/RoutePlannerFeatureCollection"
    },
    {
      "$ref": "#/$defs/RoutePlannerDataError"
    }
  ],
  "$defs": {
    "Avoid": {
      "type": "object",
      "required": [
        "type"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "tolls",
            "ferries",
            "highways",
            "locations",
            "polygons",
            "green_zones",
            "country_codes",
            "transfers"
          ]
        },
        "importance": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "values": {
          "oneOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/LocationData"
              }
            },
            {
              "type": "array",
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/LocationData"
                }
              }
            }
          ]
        }
      }
    },
    "JsonObject": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/$defs/JsonValue"
      }
    },
    "JsonValue": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "number"
        },
        {
          "type": "boolean"
        },
        {
          "type": "null"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/JsonValue"
          }
        },
        {
          "$ref": "#/$defs/JsonObject"
        }
      ]
    },
    "LocationData": {
      "type": "object",
      "required": [
        "lat",
        "lon"
      ],
      "properties": {
        "lat": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "lon": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        "address": {
          "type": "string"
        }
      }
    },
    "LongitudeLatitude": {
      "type": "array",
      "minItems": 2,
      "maxItems": 2,
      "prefixItems": [
        {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        }
      ],
      "items": false
    },
    "MultiLineStringGeometry": {
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "const": "MultiLineString"
        },
        "coordinates": {
          "type": "array",
          "items": {
            "type": "array",
            "minItems": 2,
            "items": {
              "$ref": "#/$defs/LongitudeLatitude"
            }
          }
        }
      }
    },
    "RoutePlannerAction": {
      "type": "object",
      "required": [
        "index",
        "type",
        "start_time",
        "duration"
      ],
      "properties": {
        "index": {
          "type": "integer"
        },
        "type": {
          "type": "string",
          "enum": [
            "start",
            "end",
            "job",
            "pickup",
            "delivery",
            "break"
          ]
        },
        "start_time": {
          "type": "number"
        },
        "duration": {
          "type": "number"
        },
        "location_index": {
          "type": "integer"
        },
        "location_id": {
          "type": "string"
        },
        "shipment_id": {
          "type": "string"
        },
        "shipment_index": {
          "type": "integer"
        },
        "job_id": {
          "type": "string"
        },
        "job_index": {
          "type": "integer"
        },
        "waypoint_index": {
          "type": "integer"
        }
      }
    },
    "RoutePlannerCollectionProperties": {
      "type": "object",
      "required": [
        "mode",
        "params"
      ],
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "walk",
            "hike",
            "scooter",
            "motorcycle",
            "drive",
            "light_truck",
            "bicycle",
            "mountain_bike",
            "road_bike",
            "bus",
            "medium_truck",
            "truck",
            "truck_dangerous_goods",
            "heavy_truck",
            "long_truck",
            "transit",
            "approximated_transit"
          ]
        },
        "params": {
          "$ref": "#/$defs/RoutePlannerParams"
        },
        "issues": {
          "$ref": "#/$defs/RoutePlannerIssues"
        }
      }
    },
    "RoutePlannerDataError": {
      "type": "object",
      "required": [
        "error",
        "message"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      }
    },
    "RoutePlannerFeature": {
      "type": "object",
      "required": [
        "type",
        "geometry",
        "properties"
      ],
      "properties": {
        "type": {
          "const": "Feature"
        },
        "geometry": {
          "$ref": "#/$defs/MultiLineStringGeometry"
        },
        "properties": {
          "$ref": "#/$defs/RoutePlannerFeatureProperties"
        },
        "id": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            }
          ]
        },
        "bbox": {
          "type": "array",
          "minItems": 4,
          "maxItems": 6,
          "items": {
            "type": "number"
          }
        }
      }
    },
    "RoutePlannerFeatureCollection": {
      "type": "object",
      "required": [
        "type",
        "features",
        "properties"
      ],
      "properties": {
        "type": {
          "const": "FeatureCollection"
        },
        "features": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutePlannerFeature"
          }
        },
        "bbox": {
          "type": "array",
          "minItems": 4,
          "maxItems": 6,
          "items": {
            "type": "number"
          }
        },
        "properties": {
          "$ref": "#/$defs/RoutePlannerCollectionProperties"
        }
      }
    },
    "RoutePlannerFeatureProperties": {
      "type": "object",
      "required": [
        "agent_index",
        "time",
        "start_time",
        "end_time",
        "distance",
        "legs",
        "mode",
        "actions",
        "waypoints"
      ],
      "properties": {
        "agent_index": {
          "type": "integer"
        },
        "agent_id": {
          "type": "string"
        },
        "time": {
          "type": "number"
        },
        "start_time": {
          "type": "number"
        },
        "end_time": {
          "type": "number"
        },
        "distance": {
          "type": "number"
        },
        "legs": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutePlannerLeg"
          }
        },
        "mode": {
          "type": "string",
          "enum": [
            "walk",
            "hike",
            "scooter",
            "motorcycle",
            "drive",
            "light_truck",
            "bicycle",
            "mountain_bike",
            "road_bike",
            "bus",
            "medium_truck",
            "truck",
            "truck_dangerous_goods",
            "heavy_truck",
            "long_truck",
            "transit",
            "approximated_transit"
          ]
        },
        "actions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutePlannerAction"
          }
        },
        "waypoints": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutePlannerWaypoint"
          }
        }
      }
    },
    "RoutePlannerIssues": {
      "type": "object",
      "required": [],
      "properties": {
        "unassigned_shipments": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        },
        "unassigned_agents": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        },
        "unassigned_jobs": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        }
      }
    },
    "RoutePlannerLeg": {
      "type": "object",
      "required": [
        "time",
        "distance",
        "from_waypoint_index",
        "to_waypoint_index",
        "steps"
      ],
      "properties": {
        "time": {
          "type": [
            "number",
            "null"
          ]
        },
        "distance": {
          "type": [
            "number",
            "null"
          ]
        },
        "from_waypoint_index": {
          "type": "integer"
        },
        "to_waypoint_index": {
          "type": "integer"
        },
        "steps": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutePlannerStep"
          }
        }
      }
    },
    "RoutePlannerParamAgent": {
      "type": "object",
      "required": [],
      "properties": {
        "id": {
          "type": "string"
        },
        "start_location_index": {
          "type": "integer"
        },
        "start_location": {
          "$ref": "#/$defs/LongitudeLatitude"
        },
        "end_location_index": {
          "type": "integer"
        },
        "end_location": {
          "$ref": "#/$defs/LongitudeLatitude"
        },
        "delivery_capacity": {
          "type": "number"
        },
        "pickup_capacity": {
          "type": "number"
        },
        "capabilities": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "time_windows": {
          "type": "array",
          "items": {
            "type": "array",
            "minItems": 2,
            "maxItems": 2,
            "prefixItems": [
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ],
            "items": false
          }
        },
        "breaks": {
          "$ref": "#/$defs/JsonValue"
        }
      }
    },
    "RoutePlannerParamJob": {
      "type": "object",
      "required": [],
      "properties": {
        "id": {
          "type": "string"
        },
        "location_index": {
          "type": "integer"
        },
        "location": {
          "$ref": "#/$defs/LongitudeLatitude"
        },
        "priority": {
          "type": "number"
        },
        "duration": {
          "type": "number"
        },
        "time_windows": {
          "type": "array",
          "items": {
            "type": "array",
            "minItems": 2,
            "maxItems": 2,
            "prefixItems": [
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ],
            "items": false
          }
        },
        "delivery_amount": {
          "type": "number"
        },
        "pickup_amount": {
          "type": "number"
        },
        "requirements": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "RoutePlannerParamLocation": {
      "type": "object",
      "required": [
        "location"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "location": {
          "$ref": "#/$defs/LongitudeLatitude"
        }
      }
    },
    "RoutePlannerParamShipment": {
      "type": "object",
      "required": [
        "pickup",
        "delivery"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "pickup": {
          "$ref": "#/$defs/RoutePlannerParamStop"
        },
        "delivery": {
          "$ref": "#/$defs/RoutePlannerParamStop"
        },
        "priority": {
          "type": "number"
        },
        "amount": {
          "type": "number"
        },
        "requirements": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "RoutePlannerParamStop": {
      "type": "object",
      "properties": {
        "location_index": {
          "type": "integer"
        },
        "location": {
          "$ref": "#/$defs/LongitudeLatitude"
        },
        "duration": {
          "type": "number"
        },
        "time_windows": {
          "type": "array",
          "items": {
            "type": "array",
            "minItems": 2,
            "maxItems": 2,
            "prefixItems": [
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ],
            "items": false
          }
        }
      },
      "oneOf": [
        {
          "required": [
            "location"
          ]
        },
        {
          "required": [
            "location_index"
          ]
        }
      ]
    },
    "RoutePlannerParams": {
      "type": "object",
      "required": [
        "agents",
        "mode"
      ],
      "properties": {
        "locations": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutePlannerParamLocation"
          }
        },
        "agents": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutePlannerParamAgent"
          }
        },
        "jobs": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutePlannerParamJob"
          }
        },
        "shipments": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutePlannerParamShipment"
          }
        },
        "mode": {
          "type": "string",
          "enum": [
            "walk",
            "hike",
            "scooter",
            "motorcycle",
            "drive",
            "light_truck",
            "bicycle",
            "mountain_bike",
            "road_bike",
            "bus",
            "medium_truck",
            "truck",
            "truck_dangerous_goods",
            "heavy_truck",
            "long_truck",
            "transit",
            "approximated_transit"
          ]
        },
        "type": {
          "type": "string",
          "enum": [
            "balanced",
            "short",
            "less_maneuvers"
          ]
        },
        "max_speed": {
          "type": "number"
        },
        "traffic": {
          "type": "string",
          "enum": [
            "free_flow",
            "approximated"
          ]
        },
        "units": {
          "type": "string",
          "enum": [
            "metric",
            "imperial"
          ]
        },
        "avoid": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Avoid"
          }
        }
      }
    },
    "RoutePlannerStep": {
      "type": "object",
      "required": [
        "from_index",
        "to_index",
        "time",
        "distance"
      ],
      "properties": {
        "from_index": {
          "type": "integer"
        },
        "to_index": {
          "type": "integer"
        },
        "time": {
          "type": [
            "number",
            "null"
          ]
        },
        "distance": {
          "type": [
            "number",
            "null"
          ]
        }
      }
    },
    "RoutePlannerWaypoint": {
      "type": "object",
      "required": [
        "original_location",
        "location",
        "start_time",
        "duration",
        "actions"
      ],
      "properties": {
        "next_leg_index": {
          "type": "integer"
        },
        "prev_leg_index": {
          "type": "integer"
        },
        "original_location": {
          "$ref": "#/$defs/LongitudeLatitude"
        },
        "location": {
          "$ref": "#/$defs/LongitudeLatitude"
        },
        "start_time": {
          "type": "number"
        },
        "duration": {
          "type": "number"
        },
        "actions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutePlannerAction"
          }
        },
        "original_location_index": {
          "type": "integer"
        },
        "original_location_id": {
          "type": "string"
        }
      }
    }
  }
}

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.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/geoapify-route-planner-response"
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.