{
  "openapi": "3.1.0",
  "info": {
    "title": "Geoapify Batch API",
    "version": "1.1.1",
    "description": "Use the Batch API to process multiple requests in one job or run supported Geoapify tasks asynchronously.\n\n- Submit 1 to 1000 inputs for the same supported API endpoint.\n- Poll the returned batch job ID until processing is complete.\n- Choose a processing priority between `0.5` and `1` to balance credit cost and processing speed."
  },
  "servers": [
    {
      "url": "https://api.geoapify.com/v1",
      "description": "Default API endpoint."
    },
    {
      "url": "https://api-eu.geoapify.com/v1",
      "description": "EU-focused endpoint. Geoapify service processing uses EU infrastructure."
    }
  ],
  "tags": [
    {
      "name": "Batch",
      "description": "Process multiple API requests together or execute supported tasks asynchronously, then retrieve the results."
    }
  ],
  "paths": {
    "/batch": {
      "post": {
        "tags": [
          "Batch"
        ],
        "operationId": "submitBatchJob",
        "summary": "Submit a generic batch job",
        "description": "Creates a job that processes up to 1000 requests for one supported Geoapify API endpoint.\n\n- Use batch processing to send multiple requests together or to execute a task asynchronously.\n- Put shared query parameters in top-level `params` and shared request data in top-level `body`; input-level values define each individual request.\n- Every input must contain `params`, `body`, or both. Body-based APIs do not require an empty `params` object.\n- Set `priority` from `0.5` to `1`. A value of `0.5` spends 50% of the normal credits but can take longer; `1` spends the full credits and is processed faster.\n\nReturns `202` while the job is processing or `200` if it completes immediately.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchSubmitRequest"
              },
              "examples": {
                "isoline": {
                  "summary": "Calculate isolines",
                  "value": {
                    "api": "/v1/isoline",
                    "params": {
                      "type": "time",
                      "mode": "drive",
                      "range": 900
                    },
                    "inputs": [
                      {
                        "id": "berlin",
                        "params": {
                          "lat": 52.52,
                          "lon": 13.405
                        }
                      },
                      {
                        "id": "paris",
                        "params": {
                          "lat": 48.8566,
                          "lon": 2.3522
                        }
                      }
                    ]
                  }
                },
                "routing": {
                  "summary": "Calculate routes",
                  "value": {
                    "api": "/v1/routing",
                    "params": {
                      "mode": "drive",
                      "units": "metric"
                    },
                    "inputs": [
                      {
                        "id": "berlin-route",
                        "params": {
                          "waypoints": "52.52,13.405|52.5096,13.376"
                        }
                      },
                      {
                        "id": "paris-route",
                        "params": {
                          "waypoints": "48.8566,2.3522|48.8606,2.3376"
                        }
                      }
                    ]
                  }
                },
                "forwardGeocoding": {
                  "summary": "Forward geocode addresses",
                  "value": {
                    "api": "/v1/geocode/search",
                    "params": {
                      "lang": "en",
                      "limit": 1
                    },
                    "inputs": [
                      {
                        "id": "berlin",
                        "params": {
                          "text": "Alexanderplatz, Berlin"
                        }
                      },
                      {
                        "id": "paris",
                        "params": {
                          "text": "10 Avenue des Champs-Elysees, Paris"
                        }
                      }
                    ]
                  }
                },
                "reverseGeocoding": {
                  "summary": "Reverse geocode coordinates",
                  "value": {
                    "api": "/v1/geocode/reverse",
                    "params": {
                      "lang": "en",
                      "limit": 1
                    },
                    "inputs": [
                      {
                        "id": "berlin",
                        "params": {
                          "lat": 52.52,
                          "lon": 13.405
                        }
                      },
                      {
                        "id": "paris",
                        "params": {
                          "lat": 48.8566,
                          "lon": 2.3522
                        }
                      }
                    ]
                  }
                },
                "mapMatching": {
                  "summary": "Match GPS traces to roads",
                  "value": {
                    "api": "/v1/mapmatching",
                    "body": {
                      "mode": "drive"
                    },
                    "inputs": [
                      {
                        "id": "berlin-trace",
                        "body": {
                          "waypoints": [
                            {
                              "location": [
                                13.3889,
                                52.517
                              ]
                            },
                            {
                              "location": [
                                13.3976,
                                52.5294
                              ]
                            },
                            {
                              "location": [
                                13.4286,
                                52.5232
                              ]
                            }
                          ]
                        }
                      },
                      {
                        "id": "paris-trace",
                        "body": {
                          "waypoints": [
                            {
                              "location": [
                                2.3333,
                                48.8602
                              ]
                            },
                            {
                              "location": [
                                2.347,
                                48.8589
                              ]
                            },
                            {
                              "location": [
                                2.3601,
                                48.853
                              ]
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                "placesV2": {
                  "summary": "Search places with Places API v2",
                  "value": {
                    "api": "/v2/places",
                    "params": {
                      "categories": "catering.restaurant",
                      "limit": 5
                    },
                    "inputs": [
                      {
                        "id": "berlin-restaurants",
                        "params": {
                          "filter": "circle:13.405,52.52,1000"
                        }
                      },
                      {
                        "id": "paris-restaurants",
                        "params": {
                          "filter": "circle:2.3522,48.8566,1000"
                        }
                      }
                    ]
                  }
                },
                "ipGeolocation": {
                  "summary": "Geolocate IP addresses",
                  "value": {
                    "api": "/v1/ipinfo",
                    "params": {
                      "lang": "en"
                    },
                    "inputs": [
                      {
                        "id": "google-dns",
                        "params": {
                          "ip": "8.8.8.8"
                        }
                      },
                      {
                        "id": "cloudflare-dns",
                        "params": {
                          "ip": "1.1.1.1"
                        }
                      }
                    ]
                  }
                },
                "routePlanner": {
                  "summary": "Optimize route-planning tasks",
                  "value": {
                    "api": "/v1/routeplanner",
                    "body": {
                      "mode": "drive"
                    },
                    "inputs": [
                      {
                        "id": "berlin-deliveries",
                        "body": {
                          "agents": [
                            {
                              "id": "vehicle-1",
                              "start_location": [
                                13.405,
                                52.52
                              ]
                            }
                          ],
                          "jobs": [
                            {
                              "id": "delivery-1",
                              "location": [
                                13.376,
                                52.5096
                              ],
                              "duration": 300
                            }
                          ]
                        }
                      },
                      {
                        "id": "paris-deliveries",
                        "body": {
                          "agents": [
                            {
                              "id": "vehicle-2",
                              "start_location": [
                                2.3522,
                                48.8566
                              ]
                            }
                          ],
                          "jobs": [
                            {
                              "id": "delivery-2",
                              "location": [
                                2.3376,
                                48.8606
                              ],
                              "duration": 300
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                "routeMatrix": {
                  "summary": "Calculate route matrices",
                  "value": {
                    "api": "/v1/routematrix",
                    "body": {
                      "mode": "drive"
                    },
                    "inputs": [
                      {
                        "id": "berlin-matrix",
                        "body": {
                          "sources": [
                            {
                              "location": [
                                13.405,
                                52.52
                              ]
                            }
                          ],
                          "targets": [
                            {
                              "location": [
                                13.376,
                                52.5096
                              ]
                            },
                            {
                              "location": [
                                13.4286,
                                52.5232
                              ]
                            }
                          ]
                        }
                      },
                      {
                        "id": "paris-matrix",
                        "body": {
                          "sources": [
                            {
                              "location": [
                                2.3522,
                                48.8566
                              ]
                            }
                          ],
                          "targets": [
                            {
                              "location": [
                                2.3376,
                                48.8606
                              ]
                            },
                            {
                              "location": [
                                2.3601,
                                48.853
                              ]
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                "boundariesPartOf": {
                  "summary": "Find containing boundaries",
                  "value": {
                    "api": "/v1/boundaries/part-of",
                    "params": {
                      "boundaries": "administrative,postal_code",
                      "geometry": "point",
                      "lang": "en"
                    },
                    "inputs": [
                      {
                        "id": "berlin",
                        "params": {
                          "lat": 52.52,
                          "lon": 13.405
                        }
                      },
                      {
                        "id": "paris",
                        "params": {
                          "lat": 48.8566,
                          "lon": 2.3522
                        }
                      }
                    ]
                  }
                },
                "boundariesConsistsOf": {
                  "summary": "Find contained boundaries",
                  "value": {
                    "api": "/v1/boundaries/consists-of",
                    "params": {
                      "boundary": "administrative",
                      "sublevel": 1,
                      "geometry": "point",
                      "lang": "en"
                    },
                    "inputs": [
                      {
                        "id": "south-carolina-children",
                        "params": {
                          "id": "513bfd69cccb2354c059ca8760aaf4cf4040f00101f901286b03000000000092030e536f757468204361726f6c696e61"
                        }
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The batch job completed immediately.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchCompletedResponse"
                },
                "example": {
                  "api": "/v1/geocode/search",
                  "params": {
                    "lang": "en",
                    "limit": 1
                  },
                  "id": "884f79702109455199c6c60cf7201207",
                  "results": [
                    {
                      "id": "berlin",
                      "params": {
                        "text": "Alexanderplatz, Berlin"
                      },
                      "result": {
                        "type": "FeatureCollection",
                        "features": [
                          {
                            "type": "Feature",
                            "properties": {
                              "datasource": {
                                "sourcename": "openstreetmap",
                                "attribution": "© OpenStreetMap contributors",
                                "license": "Open Database License",
                                "url": "https://www.openstreetmap.org/copyright"
                              },
                              "name": "Alexanderplatz",
                              "other_names": {
                                "name:be": "Плошча Аляксандра",
                                "name:ja": "アレクサンダー広場",
                                "name:ko": "알렉산더 광장",
                                "name:ru": "Александерплац",
                                "name:zh": "亚历山大广场",
                                "loc_name": "Alex"
                              },
                              "country": "Germany",
                              "country_code": "de",
                              "city": "Berlin",
                              "district": "Mitte",
                              "neighbourhood": "Scheunenviertel",
                              "suburb": "Mitte",
                              "quarter": "Spandauer Vorstadt",
                              "iso3166_2": "DE-BE",
                              "lon": 13.4136358,
                              "lat": 52.5219814,
                              "state": "Berlin",
                              "state_code": "BE",
                              "result_type": "amenity",
                              "postcode": "10178",
                              "formatted": "Alexanderplatz, 10178 Berlin, Germany",
                              "address_line1": "Alexanderplatz",
                              "address_line2": "10178 Berlin, Germany",
                              "timezone": {
                                "name": "Europe/Berlin",
                                "offset_STD": "+01:00",
                                "offset_DST": "+02:00",
                                "offset_STD_seconds": 3600,
                                "offset_DST_seconds": 7200,
                                "abbreviation_STD": "CET",
                                "abbreviation_DST": "CEST"
                              },
                              "plus_code": "9F4MGCC7+QF",
                              "plus_code_short": "C7+QF Berlin, Germany",
                              "rank": {
                                "importance": 0.5119277148736227,
                                "popularity": 9.995467104553104,
                                "confidence": 1,
                                "confidence_city_level": 1,
                                "confidence_street_level": 1,
                                "match_type": "inner_part"
                              },
                              "place_id": "51dbe85212c8d32a4059660f5949d0424a40f00102f901146dac2e00000000c0020192030e416c6578616e646572706c61747a"
                            },
                            "geometry": {
                              "type": "Point",
                              "coordinates": [
                                13.4136358,
                                52.5219814
                              ]
                            },
                            "bbox": [
                              13.4103097,
                              52.5201457,
                              13.4160801,
                              52.5238113
                            ]
                          }
                        ],
                        "query": {
                          "text": "Alexanderplatz, Berlin",
                          "parsed": {
                            "street": "alexanderplatz",
                            "city": "berlin",
                            "expected_type": "street"
                          }
                        }
                      }
                    },
                    {
                      "id": "paris",
                      "params": {
                        "text": "10 Avenue des Champs-Elysees, Paris"
                      },
                      "result": {
                        "type": "FeatureCollection",
                        "features": [
                          {
                            "type": "Feature",
                            "properties": {
                              "datasource": {
                                "sourcename": "openstreetmap",
                                "attribution": "© OpenStreetMap contributors",
                                "license": "Open Database License",
                                "url": "https://www.openstreetmap.org/copyright"
                              },
                              "other_names": {
                                "name:eo": "Avenuo de la Elizeaj Kampoj",
                                "name:es": "Campos Elíseos",
                                "name:fa": "خیابان شانزلیزه",
                                "name:ko": "샹젤리제 거리",
                                "name:pl": "Pola Elizejskie",
                                "name:pt": "Avenida dos Campos Elísios",
                                "name:ru": "Елисейские поля",
                                "name:vi": "Đại lộ Champs-Élysées",
                                "name:zh": "香榭丽舍大街",
                                "name:zh-Hans": "香榭丽舍大街",
                                "name:zh-Hant": "香榭麗舍大道"
                              },
                              "country": "France",
                              "country_code": "fr",
                              "region": "Metropolitan France",
                              "state": "Ile-de-France",
                              "city": "Paris",
                              "postcode": "75008",
                              "district": "Paris",
                              "suburb": "8th Arrondissement of Paris",
                              "quarter": "Quartier des Champs-Élysées",
                              "street": "Avenue des Champs-Élysées",
                              "iso3166_2": "FR-IDF",
                              "iso3166_2_sublevel": "FR-75C",
                              "lon": 2.315269,
                              "lat": 48.867887,
                              "state_code": "IDF",
                              "state_COG": "11",
                              "housenumber": "10",
                              "result_type": "building",
                              "formatted": "10 Avenue des Champs-Élysées, 8th Arrondissement of Paris, 75008 Paris, France",
                              "address_line1": "10 Avenue des Champs-Élysées",
                              "address_line2": "8th Arrondissement of Paris, 75008 Paris, France",
                              "timezone": {
                                "name": "Europe/Paris",
                                "offset_STD": "+01:00",
                                "offset_DST": "+02:00",
                                "offset_STD_seconds": 3600,
                                "offset_DST_seconds": 7200,
                                "abbreviation_STD": "CET",
                                "abbreviation_DST": "CEST"
                              },
                              "plus_code": "8FW4V898+54",
                              "plus_code_short": "V898+54 Paris, Ile-de-France, France",
                              "rank": {
                                "importance": 0.5888377598571204,
                                "popularity": 8.995467104553104,
                                "confidence": 1,
                                "confidence_city_level": 1,
                                "confidence_street_level": 1,
                                "confidence_building_level": 1,
                                "match_type": "full_match"
                              },
                              "place_id": "517e8ae3c0ab85024059d1cfd4eb166f4840c00203e203266f70656e6164647265737365733a616464726573733a37663138383265313636313931333932"
                            },
                            "geometry": {
                              "type": "Point",
                              "coordinates": [
                                2.315269,
                                48.867887
                              ]
                            },
                            "bbox": [
                              2.3103916,
                              48.8661938,
                              2.318469,
                              48.8687741
                            ]
                          }
                        ],
                        "query": {
                          "text": "10 Avenue des Champs-Elysees, Paris",
                          "parsed": {
                            "housenumber": "10",
                            "street": "avenue des champs-elysees",
                            "city": "paris",
                            "expected_type": "building"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "202": {
            "description": "The batch job was accepted and is still processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchPendingResponse"
                }
              }
            }
          },
          "400": {
            "description": "The submission is invalid. Check the supported `api`, the 1–1000 item `inputs` array, each input's `params` or `body`, and the `priority` range of `0.5`–`1`.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GatewayError"
                },
                "example": {
                  "statusCode": 400,
                  "error": "Bad Request",
                  "message": "\"inputs\" must contain at least 1 items"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed because the Geoapify API key is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GatewayError"
                },
                "example": {
                  "statusCode": 401,
                  "error": "Unauthorized",
                  "message": "Invalid apiKey"
                }
              }
            }
          },
          "429": {
            "description": "The account quota or request rate limit was exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GatewayError"
                },
                "example": {
                  "statusCode": 429,
                  "error": "Too Many Requests",
                  "message": "Quota exceeded"
                }
              }
            }
          },
          "500": {
            "description": "The gateway could not submit or retrieve the batch job because of an internal or upstream failure. Retry the request later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GatewayError"
                },
                "example": {
                  "statusCode": 500,
                  "error": "Internal Server Error",
                  "message": "Request failed, please try again later"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Batch"
        ],
        "operationId": "getBatchJob",
        "summary": "Get generic batch job result",
        "description": "Retrieves the processing status or completed results for a generic batch job.\n\n- Provide the 32-character batch job `id` returned by the submit operation.\n- Poll while the endpoint returns `202`; the results are ready when it returns `200`.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "description": "Batch job identifier returned by the submit endpoint.",
            "schema": {
              "type": "string",
              "pattern": "^[a-f0-9]{32}$"
            },
            "example": "0123456789abcdef0123456789abcdef"
          }
        ],
        "responses": {
          "200": {
            "description": "The completed batch job and its typed API results.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchCompletedResponse"
                },
                "example": {
                  "api": "/v1/geocode/search",
                  "params": {
                    "lang": "en",
                    "limit": 1
                  },
                  "id": "884f79702109455199c6c60cf7201207",
                  "results": [
                    {
                      "id": "berlin",
                      "params": {
                        "text": "Alexanderplatz, Berlin"
                      },
                      "result": {
                        "type": "FeatureCollection",
                        "features": [
                          {
                            "type": "Feature",
                            "properties": {
                              "datasource": {
                                "sourcename": "openstreetmap",
                                "attribution": "© OpenStreetMap contributors",
                                "license": "Open Database License",
                                "url": "https://www.openstreetmap.org/copyright"
                              },
                              "name": "Alexanderplatz",
                              "other_names": {
                                "name:be": "Плошча Аляксандра",
                                "name:ja": "アレクサンダー広場",
                                "name:ko": "알렉산더 광장",
                                "name:ru": "Александерплац",
                                "name:zh": "亚历山大广场",
                                "loc_name": "Alex"
                              },
                              "country": "Germany",
                              "country_code": "de",
                              "city": "Berlin",
                              "district": "Mitte",
                              "neighbourhood": "Scheunenviertel",
                              "suburb": "Mitte",
                              "quarter": "Spandauer Vorstadt",
                              "iso3166_2": "DE-BE",
                              "lon": 13.4136358,
                              "lat": 52.5219814,
                              "state": "Berlin",
                              "state_code": "BE",
                              "result_type": "amenity",
                              "postcode": "10178",
                              "formatted": "Alexanderplatz, 10178 Berlin, Germany",
                              "address_line1": "Alexanderplatz",
                              "address_line2": "10178 Berlin, Germany",
                              "timezone": {
                                "name": "Europe/Berlin",
                                "offset_STD": "+01:00",
                                "offset_DST": "+02:00",
                                "offset_STD_seconds": 3600,
                                "offset_DST_seconds": 7200,
                                "abbreviation_STD": "CET",
                                "abbreviation_DST": "CEST"
                              },
                              "plus_code": "9F4MGCC7+QF",
                              "plus_code_short": "C7+QF Berlin, Germany",
                              "rank": {
                                "importance": 0.5119277148736227,
                                "popularity": 9.995467104553104,
                                "confidence": 1,
                                "confidence_city_level": 1,
                                "confidence_street_level": 1,
                                "match_type": "inner_part"
                              },
                              "place_id": "51dbe85212c8d32a4059660f5949d0424a40f00102f901146dac2e00000000c0020192030e416c6578616e646572706c61747a"
                            },
                            "geometry": {
                              "type": "Point",
                              "coordinates": [
                                13.4136358,
                                52.5219814
                              ]
                            },
                            "bbox": [
                              13.4103097,
                              52.5201457,
                              13.4160801,
                              52.5238113
                            ]
                          }
                        ],
                        "query": {
                          "text": "Alexanderplatz, Berlin",
                          "parsed": {
                            "street": "alexanderplatz",
                            "city": "berlin",
                            "expected_type": "street"
                          }
                        }
                      }
                    },
                    {
                      "id": "paris",
                      "params": {
                        "text": "10 Avenue des Champs-Elysees, Paris"
                      },
                      "result": {
                        "type": "FeatureCollection",
                        "features": [
                          {
                            "type": "Feature",
                            "properties": {
                              "datasource": {
                                "sourcename": "openstreetmap",
                                "attribution": "© OpenStreetMap contributors",
                                "license": "Open Database License",
                                "url": "https://www.openstreetmap.org/copyright"
                              },
                              "other_names": {
                                "name:eo": "Avenuo de la Elizeaj Kampoj",
                                "name:es": "Campos Elíseos",
                                "name:fa": "خیابان شانزلیزه",
                                "name:ko": "샹젤리제 거리",
                                "name:pl": "Pola Elizejskie",
                                "name:pt": "Avenida dos Campos Elísios",
                                "name:ru": "Елисейские поля",
                                "name:vi": "Đại lộ Champs-Élysées",
                                "name:zh": "香榭丽舍大街",
                                "name:zh-Hans": "香榭丽舍大街",
                                "name:zh-Hant": "香榭麗舍大道"
                              },
                              "country": "France",
                              "country_code": "fr",
                              "region": "Metropolitan France",
                              "state": "Ile-de-France",
                              "city": "Paris",
                              "postcode": "75008",
                              "district": "Paris",
                              "suburb": "8th Arrondissement of Paris",
                              "quarter": "Quartier des Champs-Élysées",
                              "street": "Avenue des Champs-Élysées",
                              "iso3166_2": "FR-IDF",
                              "iso3166_2_sublevel": "FR-75C",
                              "lon": 2.315269,
                              "lat": 48.867887,
                              "state_code": "IDF",
                              "state_COG": "11",
                              "housenumber": "10",
                              "result_type": "building",
                              "formatted": "10 Avenue des Champs-Élysées, 8th Arrondissement of Paris, 75008 Paris, France",
                              "address_line1": "10 Avenue des Champs-Élysées",
                              "address_line2": "8th Arrondissement of Paris, 75008 Paris, France",
                              "timezone": {
                                "name": "Europe/Paris",
                                "offset_STD": "+01:00",
                                "offset_DST": "+02:00",
                                "offset_STD_seconds": 3600,
                                "offset_DST_seconds": 7200,
                                "abbreviation_STD": "CET",
                                "abbreviation_DST": "CEST"
                              },
                              "plus_code": "8FW4V898+54",
                              "plus_code_short": "V898+54 Paris, Ile-de-France, France",
                              "rank": {
                                "importance": 0.5888377598571204,
                                "popularity": 8.995467104553104,
                                "confidence": 1,
                                "confidence_city_level": 1,
                                "confidence_street_level": 1,
                                "confidence_building_level": 1,
                                "match_type": "full_match"
                              },
                              "place_id": "517e8ae3c0ab85024059d1cfd4eb166f4840c00203e203266f70656e6164647265737365733a616464726573733a37663138383265313636313931333932"
                            },
                            "geometry": {
                              "type": "Point",
                              "coordinates": [
                                2.315269,
                                48.867887
                              ]
                            },
                            "bbox": [
                              2.3103916,
                              48.8661938,
                              2.318469,
                              48.8687741
                            ]
                          }
                        ],
                        "query": {
                          "text": "10 Avenue des Champs-Elysees, Paris",
                          "parsed": {
                            "housenumber": "10",
                            "street": "avenue des champs-elysees",
                            "city": "paris",
                            "expected_type": "building"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "202": {
            "description": "The batch job was accepted and is still processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchPendingResponse"
                }
              }
            }
          },
          "400": {
            "description": "The required batch job `id` is missing or is not a 32-character lowercase hexadecimal identifier.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GatewayError"
                },
                "example": {
                  "statusCode": 400,
                  "error": "Bad Request",
                  "message": "\"id\" is required"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed because the Geoapify API key is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GatewayError"
                },
                "example": {
                  "statusCode": 401,
                  "error": "Unauthorized",
                  "message": "Invalid apiKey"
                }
              }
            }
          },
          "404": {
            "description": "No batch job was found for the supplied `id`.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchNotFoundError"
                },
                "example": {
                  "statusCode": 404,
                  "error": "Not Found"
                }
              }
            }
          },
          "429": {
            "description": "The account quota or request rate limit was exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GatewayError"
                },
                "example": {
                  "statusCode": 429,
                  "error": "Too Many Requests",
                  "message": "Quota exceeded"
                }
              }
            }
          },
          "500": {
            "description": "The gateway could not submit or retrieve the batch job because of an internal or upstream failure. Retry the request later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GatewayError"
                },
                "example": {
                  "statusCode": 500,
                  "error": "Internal Server Error",
                  "message": "Request failed, please try again later"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "BatchSubmitRequest": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "api",
          "inputs"
        ],
        "properties": {
          "api": {
            "type": "string",
            "enum": [
              "/v1/isoline",
              "/v1/routing",
              "/v1/places",
              "/v1/geometry",
              "/v1/geocode/search",
              "/v1/geocode/reverse",
              "/v1/mapmatching",
              "/v2/places",
              "/v2/place-info",
              "/v2/place-details",
              "/v1/ipinfo",
              "/v1/routeplanner",
              "/v1/routematrix",
              "/v1/boundaries/part-of",
              "/v1/boundaries/consists-of",
              "/v1/boundaries/near-by",
              "/v1/boundaries/parent-of"
            ],
            "description": "Geoapify API endpoint to execute for each batch input."
          },
          "params": {
            "type": "object",
            "additionalProperties": true,
            "description": "Request-level query parameters applied to all batch inputs."
          },
          "body": {
            "type": "object",
            "additionalProperties": true,
            "description": "Request-level body applied to all batch inputs."
          },
          "inputs": {
            "type": "array",
            "minItems": 1,
            "maxItems": 1000,
            "items": {
              "$ref": "#/components/schemas/BatchInput"
            }
          },
          "priority": {
            "type": "number",
            "minimum": 0.5,
            "maximum": 1,
            "default": 0.5,
            "description": "Processing priority and credit-cost factor. Use `0.5` to spend 50% of the normal credits when longer processing is acceptable, or `1` to spend the full credits for faster processing. Values between `0.5` and `1` balance the discount and processing speed.",
            "example": 0.5
          }
        }
      },
      "BatchInput": {
        "type": "object",
        "additionalProperties": true,
        "anyOf": [
          {
            "required": [
              "params"
            ]
          },
          {
            "required": [
              "body"
            ]
          }
        ],
        "properties": {
          "id": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              }
            ],
            "description": "Optional caller-supplied input identifier returned with the result."
          },
          "params": {
            "type": "object",
            "additionalProperties": true,
            "description": "Optional input-specific query parameters."
          },
          "body": {
            "type": "object",
            "additionalProperties": true,
            "description": "Input-specific request body."
          }
        }
      },
      "LongitudeLatitude": {
        "type": "array",
        "minItems": 2,
        "maxItems": 2,
        "prefixItems": [
          {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          }
        ],
        "items": false
      },
      "JsonValue": {
        "oneOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JsonValue"
            }
          },
          {
            "$ref": "#/components/schemas/JsonObject"
          }
        ]
      },
      "JsonObject": {
        "type": "object",
        "additionalProperties": {
          "$ref": "#/components/schemas/JsonValue"
        }
      },
      "LocationData": {
        "type": "object",
        "required": [
          "lat",
          "lon"
        ],
        "properties": {
          "lat": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          "lon": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "address": {
            "type": "string"
          }
        }
      },
      "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": "#/components/schemas/LocationData"
                }
              },
              {
                "type": "array",
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LocationData"
                  }
                }
              }
            ]
          }
        }
      },
      "MultiLineStringGeometry": {
        "type": "object",
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "const": "MultiLineString"
          },
          "coordinates": {
            "type": "array",
            "items": {
              "type": "array",
              "minItems": 2,
              "items": {
                "$ref": "#/components/schemas/LongitudeLatitude"
              }
            }
          }
        }
      },
      "PolygonGeometry": {
        "type": "object",
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "const": "Polygon"
          },
          "coordinates": {
            "type": "array",
            "items": {
              "type": "array",
              "minItems": 4,
              "items": {
                "$ref": "#/components/schemas/LongitudeLatitude"
              }
            }
          }
        }
      },
      "MultiPolygonGeometry": {
        "type": "object",
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "const": "MultiPolygon"
          },
          "coordinates": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "array",
                "minItems": 4,
                "items": {
                  "$ref": "#/components/schemas/LongitudeLatitude"
                }
              }
            }
          }
        }
      },
      "IsolineGeometry": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/PolygonGeometry"
          },
          {
            "$ref": "#/components/schemas/MultiPolygonGeometry"
          }
        ]
      },
      "RouteInstruction": {
        "type": "object",
        "required": [
          "text"
        ],
        "properties": {
          "text": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "transition_instruction": {
            "type": "string"
          },
          "pre_transition_instruction": {
            "type": "string"
          },
          "post_transition_instruction": {
            "type": "string"
          },
          "contains_next_instruction": {
            "type": "boolean"
          },
          "streets": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "exit_number": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "exit_road_name": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "exit_towards": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "roundabout_exit": {
            "type": "number"
          }
        }
      },
      "RouteStep": {
        "type": "object",
        "required": [
          "from_index",
          "to_index",
          "time",
          "distance"
        ],
        "properties": {
          "from_index": {
            "type": "integer"
          },
          "to_index": {
            "type": "integer"
          },
          "time": {
            "type": "number"
          },
          "distance": {
            "type": "number"
          },
          "instruction": {
            "$ref": "#/components/schemas/RouteInstruction"
          },
          "toll": {
            "type": "boolean"
          },
          "ferry": {
            "type": "boolean"
          },
          "bridge": {
            "type": "boolean"
          },
          "tunnel": {
            "type": "boolean"
          },
          "elevation": {
            "type": "number"
          },
          "elevation_gain": {
            "type": "number"
          },
          "max_elevation": {
            "type": "number"
          },
          "min_elevation": {
            "type": "number"
          },
          "admin_area": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "speed": {
            "type": "number"
          },
          "speed_limit": {
            "type": "number"
          },
          "truck_limit": {
            "type": "number"
          },
          "surface": {
            "type": "string"
          },
          "lane_count": {
            "type": "number"
          },
          "road_class": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "roundabout": {
            "type": "boolean"
          },
          "rightside": {
            "type": "boolean"
          },
          "traversability": {
            "type": "string"
          },
          "from_stop_id": {
            "type": "string"
          },
          "from_stop_name": {
            "type": "string"
          },
          "to_stop_id": {
            "type": "string"
          },
          "to_stop_name": {
            "type": "string"
          }
        }
      },
      "RouteLeg": {
        "type": "object",
        "required": [
          "time",
          "distance",
          "steps"
        ],
        "properties": {
          "time": {
            "type": "number"
          },
          "distance": {
            "type": "number"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteStep"
            }
          },
          "country_code": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "elevation": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "elevation_range": {
            "type": "array",
            "items": {
              "type": "array",
              "minItems": 2,
              "maxItems": 2,
              "prefixItems": [
                {
                  "type": "number"
                },
                {
                  "type": "number"
                }
              ],
              "items": false
            }
          },
          "agency_name": {
            "type": "string"
          },
          "agency_id": {
            "type": "string"
          },
          "agency_url": {
            "type": "string"
          },
          "route_id": {
            "type": "string"
          },
          "route_short_name": {
            "type": "string"
          },
          "route_long_name": {
            "type": "string"
          },
          "trip_id": {
            "type": "string"
          }
        }
      },
      "SnappedRouteWaypoint": {
        "type": "object",
        "required": [
          "location"
        ],
        "properties": {
          "original_index": {
            "type": "integer"
          },
          "location": {
            "$ref": "#/components/schemas/LongitudeLatitude"
          }
        }
      },
      "InputRouteWaypoint": {
        "type": "object",
        "required": [
          "lat",
          "lon"
        ],
        "properties": {
          "lat": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          "lon": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "address": {
            "type": "string"
          }
        }
      },
      "RouteWaypoint": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/SnappedRouteWaypoint"
          },
          {
            "$ref": "#/components/schemas/InputRouteWaypoint"
          }
        ]
      },
      "RoutingResponseOptions": {
        "type": "object",
        "required": [
          "mode",
          "units",
          "waypoints"
        ],
        "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"
            ]
          },
          "units": {
            "type": "string",
            "enum": [
              "metric",
              "imperial"
            ]
          },
          "waypoints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteWaypoint"
            }
          },
          "avoid": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Avoid"
            }
          },
          "details": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "instruction_details",
                "route_details",
                "elevation",
                "admin_areas"
              ]
            }
          },
          "traffic": {
            "type": "string",
            "enum": [
              "free_flow",
              "approximated"
            ]
          },
          "intermediate_waypoint_mode": {
            "type": "string",
            "enum": [
              "stopover",
              "through_stop",
              "pass_through"
            ]
          }
        }
      },
      "RouteAdminArea": {
        "type": "object",
        "required": [
          "country_code"
        ],
        "properties": {
          "country_code": {
            "type": "string"
          },
          "country_text": {
            "type": "string"
          },
          "state_code": {
            "type": "string"
          },
          "state_text": {
            "type": "string"
          }
        }
      },
      "RouteAdminAreaCrossing": {
        "type": "object",
        "required": [
          "from_admin_index",
          "to_admin_index",
          "begin_shape_index",
          "end_shape_index"
        ],
        "properties": {
          "from_admin_index": {
            "type": "integer"
          },
          "to_admin_index": {
            "type": "integer"
          },
          "begin_shape_index": {
            "type": "integer"
          },
          "end_shape_index": {
            "type": "integer"
          }
        }
      },
      "RoutingFeatureProperties": {
        "type": "object",
        "required": [
          "mode",
          "units",
          "waypoints",
          "distance",
          "time",
          "legs"
        ],
        "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"
            ]
          },
          "units": {
            "type": "string",
            "enum": [
              "metric",
              "imperial"
            ]
          },
          "waypoints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteWaypoint"
            }
          },
          "avoid": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Avoid"
            }
          },
          "details": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "instruction_details",
                "route_details",
                "elevation",
                "admin_areas"
              ]
            }
          },
          "traffic": {
            "type": "string",
            "enum": [
              "free_flow",
              "approximated"
            ]
          },
          "intermediate_waypoint_mode": {
            "type": "string",
            "enum": [
              "stopover",
              "through_stop",
              "pass_through"
            ]
          },
          "distance": {
            "type": "number"
          },
          "time": {
            "type": "number"
          },
          "distance_units": {
            "type": "string",
            "enum": [
              "meters",
              "miles"
            ]
          },
          "max_speed": {
            "type": "number"
          },
          "legs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteLeg"
            }
          },
          "country_code": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "admin_areas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteAdminArea"
            }
          },
          "admin_area_crossings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteAdminAreaCrossing"
            }
          },
          "toll": {
            "type": "boolean"
          },
          "ferry": {
            "type": "boolean"
          }
        }
      },
      "RoutingFeature": {
        "type": "object",
        "required": [
          "type",
          "geometry",
          "properties"
        ],
        "properties": {
          "type": {
            "const": "Feature"
          },
          "geometry": {
            "$ref": "#/components/schemas/MultiLineStringGeometry"
          },
          "properties": {
            "$ref": "#/components/schemas/RoutingFeatureProperties"
          },
          "id": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              }
            ]
          },
          "bbox": {
            "type": "array",
            "minItems": 4,
            "maxItems": 6,
            "items": {
              "type": "number"
            }
          }
        }
      },
      "RoutingFeatureCollection": {
        "type": "object",
        "required": [
          "type",
          "features",
          "properties"
        ],
        "properties": {
          "type": {
            "const": "FeatureCollection"
          },
          "features": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoutingFeature"
            }
          },
          "bbox": {
            "type": "array",
            "minItems": 4,
            "maxItems": 6,
            "items": {
              "type": "number"
            }
          },
          "properties": {
            "$ref": "#/components/schemas/RoutingResponseOptions"
          }
        }
      },
      "RoutingJsonPoint": {
        "type": "object",
        "required": [
          "lon",
          "lat"
        ],
        "properties": {
          "lon": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "lat": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          }
        }
      },
      "RoutingJsonResult": {
        "type": "object",
        "required": [
          "mode",
          "units",
          "waypoints",
          "distance",
          "time",
          "legs",
          "geometry"
        ],
        "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"
            ]
          },
          "units": {
            "type": "string",
            "enum": [
              "metric",
              "imperial"
            ]
          },
          "waypoints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteWaypoint"
            }
          },
          "avoid": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Avoid"
            }
          },
          "details": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "instruction_details",
                "route_details",
                "elevation",
                "admin_areas"
              ]
            }
          },
          "traffic": {
            "type": "string",
            "enum": [
              "free_flow",
              "approximated"
            ]
          },
          "intermediate_waypoint_mode": {
            "type": "string",
            "enum": [
              "stopover",
              "through_stop",
              "pass_through"
            ]
          },
          "distance": {
            "type": "number"
          },
          "time": {
            "type": "number"
          },
          "distance_units": {
            "type": "string",
            "enum": [
              "meters",
              "miles"
            ]
          },
          "max_speed": {
            "type": "number"
          },
          "legs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteLeg"
            }
          },
          "country_code": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "admin_areas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteAdminArea"
            }
          },
          "admin_area_crossings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteAdminAreaCrossing"
            }
          },
          "toll": {
            "type": "boolean"
          },
          "ferry": {
            "type": "boolean"
          },
          "geometry": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/RoutingJsonPoint"
              }
            }
          }
        }
      },
      "RoutingJsonResponse": {
        "type": "object",
        "required": [
          "results",
          "properties"
        ],
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoutingJsonResult"
            }
          },
          "properties": {
            "$ref": "#/components/schemas/RoutingResponseOptions"
          },
          "bbox": {
            "type": "array",
            "minItems": 4,
            "maxItems": 6,
            "items": {
              "type": "number"
            }
          }
        }
      },
      "MapMatchingStepAddress": {
        "type": "object",
        "required": [],
        "properties": {
          "street": {
            "type": "string"
          },
          "suburb": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "county": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "postcode": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "country_code": {
            "type": "string"
          }
        }
      },
      "MapMatchingStepOverlap": {
        "type": "object",
        "required": [
          "osm_way_id",
          "osmtags",
          "intersection_points"
        ],
        "properties": {
          "osm_way_id": {
            "type": "number"
          },
          "osmtags": {
            "$ref": "#/components/schemas/JsonObject"
          },
          "intersection_points": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LongitudeLatitude"
            }
          }
        }
      },
      "MapMatchingStep": {
        "type": "object",
        "required": [
          "from_index",
          "to_index",
          "time",
          "distance",
          "osm_way_id"
        ],
        "properties": {
          "from_index": {
            "type": "integer"
          },
          "to_index": {
            "type": "integer"
          },
          "time": {
            "type": "number"
          },
          "distance": {
            "type": "number"
          },
          "instruction": {
            "$ref": "#/components/schemas/RouteInstruction"
          },
          "toll": {
            "type": "boolean"
          },
          "ferry": {
            "type": "boolean"
          },
          "bridge": {
            "type": "boolean"
          },
          "tunnel": {
            "type": "boolean"
          },
          "elevation": {
            "type": "number"
          },
          "elevation_gain": {
            "type": "number"
          },
          "max_elevation": {
            "type": "number"
          },
          "min_elevation": {
            "type": "number"
          },
          "admin_area": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "speed": {
            "type": "number"
          },
          "speed_limit": {
            "type": "number"
          },
          "truck_limit": {
            "type": "number"
          },
          "surface": {
            "type": "string"
          },
          "lane_count": {
            "type": "number"
          },
          "road_class": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "roundabout": {
            "type": "boolean"
          },
          "rightside": {
            "type": "boolean"
          },
          "traversability": {
            "type": "string"
          },
          "from_stop_id": {
            "type": "string"
          },
          "from_stop_name": {
            "type": "string"
          },
          "to_stop_id": {
            "type": "string"
          },
          "to_stop_name": {
            "type": "string"
          },
          "osm_way_id": {
            "type": "number"
          },
          "address": {
            "$ref": "#/components/schemas/MapMatchingStepAddress"
          },
          "osmtags": {
            "$ref": "#/components/schemas/JsonObject"
          },
          "overlaps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MapMatchingStepOverlap"
            }
          },
          "begin_bearing": {
            "type": "number"
          },
          "end_bearing": {
            "type": "number"
          }
        }
      },
      "MapMatchingLeg": {
        "type": "object",
        "required": [
          "time",
          "distance",
          "steps"
        ],
        "properties": {
          "time": {
            "type": "number"
          },
          "distance": {
            "type": "number"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MapMatchingStep"
            }
          }
        }
      },
      "MapMatchingWaypoint": {
        "type": "object",
        "required": [
          "original_index",
          "location",
          "original_location",
          "match_type"
        ],
        "properties": {
          "original_index": {
            "type": "integer"
          },
          "location": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/LongitudeLatitude"
              },
              {
                "type": "null"
              }
            ]
          },
          "original_location": {
            "$ref": "#/components/schemas/LongitudeLatitude"
          },
          "match_type": {
            "type": "string",
            "enum": [
              "matched",
              "unmatched",
              "interpolated",
              "merged"
            ]
          },
          "match_distance": {
            "type": [
              "number",
              "null"
            ]
          },
          "leg_index": {
            "type": "integer"
          },
          "step_index": {
            "type": "integer"
          }
        }
      },
      "MapMatchingFeatureProperties": {
        "type": "object",
        "required": [
          "distance",
          "time",
          "legs",
          "mode",
          "waypoints"
        ],
        "properties": {
          "distance": {
            "type": "number"
          },
          "time": {
            "type": "number"
          },
          "legs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MapMatchingLeg"
            }
          },
          "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"
            ]
          },
          "waypoints": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/MapMatchingWaypoint"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        }
      },
      "MapMatchingFeature": {
        "type": "object",
        "required": [
          "type",
          "geometry",
          "properties"
        ],
        "properties": {
          "type": {
            "const": "Feature"
          },
          "geometry": {
            "$ref": "#/components/schemas/MultiLineStringGeometry"
          },
          "properties": {
            "$ref": "#/components/schemas/MapMatchingFeatureProperties"
          },
          "id": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              }
            ]
          },
          "bbox": {
            "type": "array",
            "minItems": 4,
            "maxItems": 6,
            "items": {
              "type": "number"
            }
          }
        }
      },
      "MapMatchingFeatureCollection": {
        "type": "object",
        "required": [
          "type",
          "features"
        ],
        "properties": {
          "type": {
            "const": "FeatureCollection"
          },
          "features": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MapMatchingFeature"
            }
          },
          "bbox": {
            "type": "array",
            "minItems": 4,
            "maxItems": 6,
            "items": {
              "type": "number"
            }
          },
          "properties": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/JsonObject"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "RouteMatrixLocation": {
        "type": "object",
        "required": [
          "original_location"
        ],
        "properties": {
          "original_location": {
            "$ref": "#/components/schemas/LongitudeLatitude"
          },
          "location": {
            "$ref": "#/components/schemas/LongitudeLatitude"
          }
        }
      },
      "RouteMatrixCell": {
        "type": "object",
        "required": [
          "distance",
          "time",
          "source_index",
          "target_index"
        ],
        "properties": {
          "distance": {
            "type": [
              "number",
              "null"
            ]
          },
          "time": {
            "type": [
              "number",
              "null"
            ]
          },
          "source_index": {
            "type": "integer"
          },
          "target_index": {
            "type": "integer"
          }
        }
      },
      "RouteMatrixResponse": {
        "type": "object",
        "required": [
          "sources",
          "targets",
          "sources_to_targets",
          "units",
          "distance_units",
          "mode"
        ],
        "properties": {
          "sources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteMatrixLocation"
            }
          },
          "targets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteMatrixLocation"
            }
          },
          "sources_to_targets": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/RouteMatrixCell"
              }
            }
          },
          "units": {
            "type": "string",
            "enum": [
              "metric",
              "imperial"
            ]
          },
          "distance_units": {
            "type": "string",
            "enum": [
              "meters",
              "miles"
            ]
          },
          "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"
          },
          "avoid": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Avoid"
            }
          },
          "traffic": {
            "type": "string",
            "enum": [
              "free_flow",
              "approximated"
            ]
          }
        }
      },
      "IsolineDetails": {
        "type": "object",
        "additionalProperties": {
          "$ref": "#/components/schemas/JsonValue"
        },
        "properties": {
          "population": {
            "type": "object",
            "required": [],
            "properties": {
              "attribution": {
                "type": "string"
              },
              "value": {
                "type": "number"
              }
            }
          }
        }
      },
      "IsolineFeatureProperties": {
        "type": "object",
        "required": [
          "id",
          "lat",
          "lon",
          "mode",
          "type",
          "range"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "lat": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          "lon": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "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": [
              "time",
              "distance"
            ]
          },
          "range": {
            "type": "number"
          },
          "details": {
            "$ref": "#/components/schemas/IsolineDetails"
          },
          "route_type": {
            "type": "string",
            "enum": [
              "balanced",
              "short",
              "less_maneuvers"
            ]
          },
          "max_speed": {
            "type": "number"
          },
          "units": {
            "type": "string",
            "enum": [
              "metric",
              "imperial"
            ]
          },
          "traffic": {
            "type": "string",
            "enum": [
              "free_flow",
              "approximated"
            ]
          },
          "avoid": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Avoid"
            }
          }
        }
      },
      "IsolineCollectionProperties": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "IsolineFeature": {
        "type": "object",
        "required": [
          "type",
          "geometry",
          "properties"
        ],
        "properties": {
          "type": {
            "const": "Feature"
          },
          "geometry": {
            "$ref": "#/components/schemas/IsolineGeometry"
          },
          "properties": {
            "$ref": "#/components/schemas/IsolineFeatureProperties"
          },
          "id": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              }
            ]
          },
          "bbox": {
            "type": "array",
            "minItems": 4,
            "maxItems": 6,
            "items": {
              "type": "number"
            }
          }
        }
      },
      "IsolineFeatureCollection": {
        "type": "object",
        "required": [
          "type",
          "features",
          "properties"
        ],
        "properties": {
          "type": {
            "const": "FeatureCollection"
          },
          "features": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IsolineFeature"
            }
          },
          "bbox": {
            "type": "array",
            "minItems": 4,
            "maxItems": 6,
            "items": {
              "type": "number"
            }
          },
          "properties": {
            "$ref": "#/components/schemas/IsolineCollectionProperties"
          }
        }
      },
      "RoutePlannerParamLocation": {
        "type": "object",
        "required": [
          "id",
          "location"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "location": {
            "$ref": "#/components/schemas/LongitudeLatitude"
          }
        }
      },
      "RoutePlannerParamStop": {
        "type": "object",
        "required": [
          "location_index",
          "location",
          "duration",
          "time_windows"
        ],
        "properties": {
          "location_index": {
            "type": "integer"
          },
          "location": {
            "$ref": "#/components/schemas/LongitudeLatitude"
          },
          "duration": {
            "type": "number"
          },
          "time_windows": {
            "type": "array",
            "items": {
              "type": "array",
              "minItems": 2,
              "maxItems": 2,
              "prefixItems": [
                {
                  "type": "number"
                },
                {
                  "type": "number"
                }
              ],
              "items": false
            }
          }
        }
      },
      "RoutePlannerParamShipment": {
        "type": "object",
        "required": [
          "id",
          "pickup",
          "delivery",
          "priority",
          "amount",
          "requirements"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "pickup": {
            "$ref": "#/components/schemas/RoutePlannerParamStop"
          },
          "delivery": {
            "$ref": "#/components/schemas/RoutePlannerParamStop"
          },
          "priority": {
            "type": "number"
          },
          "amount": {
            "type": "number"
          },
          "requirements": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "RoutePlannerParamJob": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string"
          },
          "location_index": {
            "type": "integer"
          },
          "location": {
            "$ref": "#/components/schemas/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"
            }
          }
        }
      },
      "RoutePlannerParamAgent": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string"
          },
          "start_location_index": {
            "type": "integer"
          },
          "start_location": {
            "$ref": "#/components/schemas/LongitudeLatitude"
          },
          "end_location_index": {
            "type": "integer"
          },
          "end_location": {
            "$ref": "#/components/schemas/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": "#/components/schemas/JsonValue"
          }
        }
      },
      "RoutePlannerParams": {
        "type": "object",
        "required": [
          "locations",
          "agents",
          "mode"
        ],
        "properties": {
          "locations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoutePlannerParamLocation"
            }
          },
          "agents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoutePlannerParamAgent"
            }
          },
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoutePlannerParamJob"
            }
          },
          "shipments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/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": "#/components/schemas/Avoid"
            }
          }
        }
      },
      "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"
          }
        }
      },
      "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": "#/components/schemas/LongitudeLatitude"
          },
          "location": {
            "$ref": "#/components/schemas/LongitudeLatitude"
          },
          "start_time": {
            "type": "number"
          },
          "duration": {
            "type": "number"
          },
          "actions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoutePlannerAction"
            }
          },
          "original_location_index": {
            "type": "integer"
          },
          "original_location_id": {
            "type": "string"
          }
        }
      },
      "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"
            ]
          }
        }
      },
      "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": "#/components/schemas/RoutePlannerStep"
            }
          }
        }
      },
      "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": "#/components/schemas/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": "#/components/schemas/RoutePlannerAction"
            }
          },
          "waypoints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/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"
            }
          }
        }
      },
      "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": "#/components/schemas/RoutePlannerParams"
          },
          "issues": {
            "$ref": "#/components/schemas/RoutePlannerIssues"
          }
        }
      },
      "RoutePlannerFeature": {
        "type": "object",
        "required": [
          "type",
          "geometry",
          "properties"
        ],
        "properties": {
          "type": {
            "const": "Feature"
          },
          "geometry": {
            "$ref": "#/components/schemas/MultiLineStringGeometry"
          },
          "properties": {
            "$ref": "#/components/schemas/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": "#/components/schemas/RoutePlannerFeature"
            }
          },
          "bbox": {
            "type": "array",
            "minItems": 4,
            "maxItems": 6,
            "items": {
              "type": "number"
            }
          },
          "properties": {
            "$ref": "#/components/schemas/RoutePlannerCollectionProperties"
          }
        }
      },
      "RoutePlannerDataError": {
        "type": "object",
        "required": [
          "error",
          "message"
        ],
        "properties": {
          "error": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      },
      "RoutePlannerResponse": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/RoutePlannerFeatureCollection"
          },
          {
            "$ref": "#/components/schemas/RoutePlannerDataError"
          }
        ]
      },
      "GeocodingFeatureCollection": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "type",
          "features"
        ],
        "properties": {
          "type": {
            "const": "FeatureCollection"
          },
          "features": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GeocodingFeature"
            }
          }
        }
      },
      "GeocodingFeature": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "type",
          "properties",
          "geometry"
        ],
        "properties": {
          "type": {
            "const": "Feature"
          },
          "properties": {
            "$ref": "#/components/schemas/GeocodingGeocodingProperties"
          },
          "geometry": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/GeocodingPointGeometry"
              },
              {
                "$ref": "#/components/schemas/GeocodingGenericGeometry"
              },
              {
                "$ref": "#/components/schemas/GeocodingGeometryCollection"
              }
            ]
          },
          "bbox": {
            "type": "array",
            "minItems": 4,
            "maxItems": 6,
            "items": {
              "type": "number"
            }
          }
        }
      },
      "GeocodingPointGeometry": {
        "type": "object",
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "const": "Point"
          },
          "coordinates": {
            "$ref": "#/components/schemas/GeocodingPosition"
          }
        }
      },
      "GeocodingGenericGeometry": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "LineString",
              "Polygon",
              "MultiPoint",
              "MultiLineString",
              "MultiPolygon"
            ]
          },
          "coordinates": {
            "type": "array"
          }
        }
      },
      "GeocodingGeometryCollection": {
        "type": "object",
        "required": [
          "type",
          "geometries"
        ],
        "properties": {
          "type": {
            "const": "GeometryCollection"
          },
          "geometries": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/GeocodingPointGeometry"
                },
                {
                  "$ref": "#/components/schemas/GeocodingGenericGeometry"
                },
                {
                  "$ref": "#/components/schemas/GeocodingGeometryCollection"
                }
              ]
            }
          }
        }
      },
      "GeocodingPosition": {
        "type": "array",
        "minItems": 2,
        "maxItems": 3,
        "prefixItems": [
          {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          {
            "type": "number"
          }
        ],
        "items": false
      },
      "GeocodingTimezoneOutput": {
        "type": "object",
        "required": [
          "name",
          "offset_STD",
          "offset_DST",
          "offset_STD_seconds",
          "offset_DST_seconds"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "name_alt": {
            "type": "string"
          },
          "country_codes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "offset_STD": {
            "type": "string"
          },
          "offset_DST": {
            "type": "string"
          },
          "offset_STD_seconds": {
            "type": "number"
          },
          "offset_DST_seconds": {
            "type": "number"
          },
          "abbreviation_STD": {
            "type": "string"
          },
          "abbreviation_DST": {
            "type": "string"
          }
        }
      },
      "GeocodingPublicDatasource": {
        "type": "object",
        "properties": {
          "sourcename": {
            "type": "string"
          },
          "attribution": {
            "type": "string"
          },
          "license": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "GeocodingPlacesDatasource": {
        "type": "object",
        "required": [
          "raw"
        ],
        "properties": {
          "sourcename": {
            "type": "string"
          },
          "attribution": {
            "type": "string"
          },
          "license": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "raw": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "GeocodingGeocodingRank": {
        "type": "object",
        "properties": {
          "confidence": {
            "type": "number"
          },
          "confidence_city_level": {
            "type": "number"
          },
          "confidence_street_level": {
            "type": "number"
          },
          "confidence_building_level": {
            "type": "number"
          },
          "match_type": {
            "type": "string",
            "enum": [
              "full_match",
              "inner_part",
              "match_by_building",
              "match_by_street",
              "match_by_postcode",
              "match_by_city_or_disrict",
              "match_by_country_or_state"
            ]
          },
          "importance": {
            "type": "number"
          },
          "popularity": {
            "type": "number"
          }
        }
      },
      "GeocodingWikiPopulation": {
        "type": "object",
        "required": [
          "actual",
          "by_years"
        ],
        "properties": {
          "actual": {
            "type": "string"
          },
          "by_years": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "GeocodingParsedAddress": {
        "type": "object",
        "properties": {
          "po_box": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "house": {
            "type": "string"
          },
          "housenumber": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "suburb": {
            "type": "string"
          },
          "postcode": {
            "type": "string"
          },
          "district": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "county": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "expected_type": {
            "type": "string",
            "enum": [
              "unknown",
              "amenity_name",
              "amenity",
              "building",
              "street",
              "postcode",
              "suburb",
              "district",
              "city",
              "county",
              "state",
              "country"
            ]
          }
        }
      },
      "GeocodingTextGeocoderQuery": {
        "type": "object",
        "properties": {
          "lat": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          "lon": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "plus_code": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "postcode": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "housenumber": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "parsed": {
            "$ref": "#/components/schemas/GeocodingParsedAddress"
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "keys",
                "label"
              ],
              "properties": {
                "keys": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "label": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "GeocodingReverseGeocoderQuery": {
        "type": "object",
        "properties": {
          "lat": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          "lon": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "plus_code": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "postcode": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "country": {
            "type": "string"
          }
        }
      },
      "GeocodingGeocodingProperties": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "continent": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "country_code": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "state_code": {
            "type": "string"
          },
          "state_COG": {
            "type": "string"
          },
          "department_COG": {
            "type": "string"
          },
          "state_district": {
            "type": "string"
          },
          "province": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "arrondissement": {
            "type": "string"
          },
          "county": {
            "type": "string"
          },
          "county_code": {
            "type": "string"
          },
          "county_district": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "city_district": {
            "type": "string"
          },
          "postcode": {
            "type": "string"
          },
          "postal_code": {
            "type": "string"
          },
          "openGeoDB:postal_codes": {
            "type": "string"
          },
          "district": {
            "type": "string"
          },
          "suburb": {
            "type": "string"
          },
          "municipality": {
            "type": "string"
          },
          "commune": {
            "type": "string"
          },
          "subdistrict": {
            "type": "string"
          },
          "city_block": {
            "type": "string"
          },
          "neighbourhood": {
            "type": "string"
          },
          "quarter": {
            "type": "string"
          },
          "section": {
            "type": "string"
          },
          "sector": {
            "type": "string"
          },
          "subdivision": {
            "type": "string"
          },
          "croft": {
            "type": "string"
          },
          "allotments": {
            "type": "string"
          },
          "residental": {
            "type": "string"
          },
          "farm": {
            "type": "string"
          },
          "farmyard": {
            "type": "string"
          },
          "industrial": {
            "type": "string"
          },
          "commercial": {
            "type": "string"
          },
          "retail": {
            "type": "string"
          },
          "borough": {
            "type": "string"
          },
          "town": {
            "type": "string"
          },
          "township": {
            "type": "string"
          },
          "village": {
            "type": "string"
          },
          "hamlet": {
            "type": "string"
          },
          "locality": {
            "type": "string"
          },
          "isolated_dwelling": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "road": {
            "type": "string"
          },
          "footway": {
            "type": "string"
          },
          "pedestrian": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "housenumber": {
            "type": "string"
          },
          "house_number": {
            "type": "string"
          },
          "house_name": {
            "type": "string"
          },
          "old_name": {
            "type": "string"
          },
          "other": {
            "type": "string"
          },
          "formatted": {
            "type": "string"
          },
          "address_line1": {
            "type": "string"
          },
          "address_line2": {
            "type": "string"
          },
          "unlocode": {
            "type": "string"
          },
          "iso3166_2": {
            "type": "string"
          },
          "iso3166_2_sublevel": {
            "type": "string"
          },
          "iso3166_sublevel": {
            "type": "string"
          },
          "plus_code": {
            "type": "string"
          },
          "plus_code_short": {
            "type": "string"
          },
          "postcodes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "other_names": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "population": {
            "type": "number"
          },
          "lon": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "lat": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          "parent_as_place_id": {
            "type": "boolean"
          },
          "timezone": {
            "$ref": "#/components/schemas/GeocodingTimezoneOutput"
          },
          "NUTS_3": {
            "type": "string"
          },
          "result_type": {
            "type": "string",
            "enum": [
              "unknown",
              "amenity_name",
              "amenity",
              "building",
              "street",
              "postcode",
              "suburb",
              "district",
              "city",
              "county",
              "state",
              "country"
            ]
          },
          "distance": {
            "type": "number"
          },
          "datasource": {
            "$ref": "#/components/schemas/GeocodingPublicDatasource"
          },
          "rank": {
            "$ref": "#/components/schemas/GeocodingGeocodingRank"
          },
          "category": {
            "type": "string"
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "place_id": {
            "type": "string",
            "minLength": 3,
            "maxLength": 2048
          },
          "bbox": {
            "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
              }
            }
          }
        }
      },
      "GeocodingTextGeocodingFeatureCollection": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GeocodingFeatureCollection"
          },
          {
            "type": "object",
            "properties": {
              "query": {
                "$ref": "#/components/schemas/GeocodingTextGeocoderQuery"
              }
            }
          }
        ]
      },
      "GeocodingReverseGeocodingFeatureCollection": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GeocodingFeatureCollection"
          },
          {
            "type": "object",
            "required": [
              "query"
            ],
            "properties": {
              "query": {
                "$ref": "#/components/schemas/GeocodingReverseGeocoderQuery"
              }
            }
          }
        ]
      },
      "GeocodingGeocodingJsonResponse": {
        "type": "object",
        "required": [
          "results"
        ],
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GeocodingGeocodingProperties"
            }
          },
          "query": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/GeocodingTextGeocoderQuery"
              },
              {
                "$ref": "#/components/schemas/GeocodingReverseGeocoderQuery"
              }
            ]
          }
        }
      },
      "GeocodingForwardGeocodingXmlResponse": {
        "type": "object",
        "required": [
          "results"
        ],
        "xml": {
          "name": "root"
        },
        "properties": {
          "results": {
            "type": "array",
            "xml": {
              "name": "results",
              "wrapped": false
            },
            "items": {
              "$ref": "#/components/schemas/GeocodingGeocodingProperties",
              "xml": {
                "name": "results"
              }
            }
          },
          "query": {
            "$ref": "#/components/schemas/GeocodingTextGeocoderQuery",
            "xml": {
              "name": "query"
            }
          }
        }
      },
      "GeocodingReverseGeocodingXmlResponse": {
        "type": "object",
        "required": [
          "results"
        ],
        "xml": {
          "name": "root"
        },
        "properties": {
          "results": {
            "type": "array",
            "xml": {
              "name": "results",
              "wrapped": false
            },
            "items": {
              "$ref": "#/components/schemas/GeocodingGeocodingProperties",
              "xml": {
                "name": "results"
              }
            }
          },
          "query": {
            "$ref": "#/components/schemas/GeocodingReverseGeocoderQuery",
            "xml": {
              "name": "query"
            }
          }
        }
      },
      "GeocodingAddressAutocompleteXmlResponse": {
        "type": "object",
        "required": [
          "results"
        ],
        "xml": {
          "name": "root"
        },
        "properties": {
          "results": {
            "type": "array",
            "xml": {
              "name": "results",
              "wrapped": false
            },
            "items": {
              "$ref": "#/components/schemas/GeocodingGeocodingProperties",
              "xml": {
                "name": "results"
              }
            }
          },
          "query": {
            "$ref": "#/components/schemas/GeocodingTextGeocoderQuery",
            "xml": {
              "name": "query"
            }
          }
        }
      },
      "GeocodingGatewayError": {
        "type": "object",
        "required": [
          "statusCode",
          "error",
          "message"
        ],
        "properties": {
          "statusCode": {
            "type": "integer",
            "description": "HTTP status code returned by the gateway."
          },
          "error": {
            "type": "string",
            "description": "Standard HTTP error name."
          },
          "message": {
            "type": "string",
            "description": "Human-readable explanation of the error."
          }
        }
      },
      "PlacesFeatureCollection": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "type",
          "features"
        ],
        "properties": {
          "type": {
            "const": "FeatureCollection"
          },
          "features": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlacesFeature"
            }
          }
        }
      },
      "PlacesFeature": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "type",
          "properties",
          "geometry"
        ],
        "properties": {
          "type": {
            "const": "Feature"
          },
          "properties": {
            "$ref": "#/components/schemas/PlacesPlaceProperties"
          },
          "geometry": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/PlacesPointGeometry"
              },
              {
                "$ref": "#/components/schemas/PlacesGenericGeometry"
              },
              {
                "$ref": "#/components/schemas/PlacesGeometryCollection"
              }
            ]
          },
          "bbox": {
            "type": "array",
            "minItems": 4,
            "maxItems": 6,
            "items": {
              "type": "number"
            }
          }
        }
      },
      "PlacesPointGeometry": {
        "type": "object",
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "const": "Point"
          },
          "coordinates": {
            "$ref": "#/components/schemas/PlacesPosition"
          }
        }
      },
      "PlacesGenericGeometry": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "LineString",
              "Polygon",
              "MultiPoint",
              "MultiLineString",
              "MultiPolygon"
            ]
          },
          "coordinates": {
            "type": "array"
          }
        }
      },
      "PlacesGeometryCollection": {
        "type": "object",
        "required": [
          "type",
          "geometries"
        ],
        "properties": {
          "type": {
            "const": "GeometryCollection"
          },
          "geometries": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/PlacesPointGeometry"
                },
                {
                  "$ref": "#/components/schemas/PlacesGenericGeometry"
                },
                {
                  "$ref": "#/components/schemas/PlacesGeometryCollection"
                }
              ]
            }
          }
        }
      },
      "PlacesPosition": {
        "type": "array",
        "minItems": 2,
        "maxItems": 3,
        "prefixItems": [
          {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          {
            "type": "number"
          }
        ],
        "items": false
      },
      "PlacesTimezoneOutput": {
        "type": "object",
        "required": [
          "name",
          "offset_STD",
          "offset_DST",
          "offset_STD_seconds",
          "offset_DST_seconds"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "name_alt": {
            "type": "string"
          },
          "country_codes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "offset_STD": {
            "type": "string"
          },
          "offset_DST": {
            "type": "string"
          },
          "offset_STD_seconds": {
            "type": "number"
          },
          "offset_DST_seconds": {
            "type": "number"
          },
          "abbreviation_STD": {
            "type": "string"
          },
          "abbreviation_DST": {
            "type": "string"
          }
        }
      },
      "PlacesPublicDatasource": {
        "type": "object",
        "properties": {
          "sourcename": {
            "type": "string"
          },
          "attribution": {
            "type": "string"
          },
          "license": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "PlacesPlacesDatasource": {
        "type": "object",
        "required": [
          "raw"
        ],
        "properties": {
          "sourcename": {
            "type": "string"
          },
          "attribution": {
            "type": "string"
          },
          "license": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "raw": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "PlacesGeocodingRank": {
        "type": "object",
        "properties": {
          "confidence": {
            "type": "number"
          },
          "confidence_city_level": {
            "type": "number"
          },
          "confidence_street_level": {
            "type": "number"
          },
          "confidence_building_level": {
            "type": "number"
          },
          "match_type": {
            "type": "string",
            "enum": [
              "full_match",
              "inner_part",
              "match_by_building",
              "match_by_street",
              "match_by_postcode",
              "match_by_city_or_disrict",
              "match_by_country_or_state"
            ]
          },
          "importance": {
            "type": "number"
          },
          "popularity": {
            "type": "number"
          }
        }
      },
      "PlacesPlaceDetailValue": {
        "oneOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlacesPlaceDetailValue"
            }
          },
          {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/PlacesPlaceDetailValue"
            }
          }
        ]
      },
      "PlacesPlaceDetailGroup": {
        "type": "object",
        "additionalProperties": {
          "$ref": "#/components/schemas/PlacesPlaceDetailValue"
        }
      },
      "PlacesStringMap": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        }
      },
      "PlacesBooleanMap": {
        "type": "object",
        "additionalProperties": {
          "type": "boolean"
        }
      },
      "PlacesWikiPopulation": {
        "type": "object",
        "required": [
          "actual",
          "by_years"
        ],
        "properties": {
          "actual": {
            "type": "string"
          },
          "by_years": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "PlacesPlaceCategory": {
        "type": "string",
        "description": "Supported hierarchical place category key accepted by the `categories` parameter.",
        "enum": [
          "accommodation",
          "accommodation.hotel",
          "accommodation.hut",
          "accommodation.apartment",
          "accommodation.chalet",
          "accommodation.guest_house",
          "accommodation.hostel",
          "accommodation.motel",
          "activity",
          "activity.community_center",
          "activity.events_venue",
          "activity.hackerspace",
          "activity.sport_club",
          "adult",
          "adult.nightclub",
          "adult.stripclub",
          "adult.swingerclub",
          "adult.brothel",
          "adult.casino",
          "adult.adult_gaming_centre",
          "airport",
          "airport.terminal",
          "airport.private",
          "airport.international",
          "airport.military",
          "airport.gliding",
          "airport.airfield",
          "amenity",
          "amenity.toilet",
          "amenity.toilet.changing_table",
          "amenity.drinking_water",
          "amenity.give_box",
          "amenity.give_box.food",
          "amenity.give_box.books",
          "beach",
          "beach.beach_resort",
          "administrative",
          "administrative.continent_level",
          "administrative.country_level",
          "administrative.country_part_level",
          "administrative.state_level",
          "administrative.county_level",
          "administrative.city_level",
          "administrative.district_level",
          "administrative.suburb_level",
          "administrative.neighbourhood_level",
          "postal_code",
          "political",
          "low_emission_zone",
          "building",
          "building.residential",
          "building.commercial",
          "building.industrial",
          "building.office",
          "building.catering",
          "building.healthcare",
          "building.university",
          "building.college",
          "building.dormitory",
          "building.school",
          "building.driving_school",
          "building.kindergarten",
          "building.public_and_civil",
          "building.sport",
          "building.spa",
          "building.place_of_worship",
          "building.holiday_house",
          "building.accommodation",
          "building.tourism",
          "building.transportation",
          "building.military",
          "building.service",
          "building.facility",
          "building.garage",
          "building.parking",
          "building.toilet",
          "building.prison",
          "building.entertainment",
          "building.historic",
          "camping",
          "camping.camp_pitch",
          "camping.camp_site",
          "camping.summer_camp",
          "camping.caravan_site",
          "catering",
          "catering.restaurant",
          "catering.restaurant.pizza",
          "catering.restaurant.burger",
          "catering.restaurant.regional",
          "catering.restaurant.italian",
          "catering.restaurant.chinese",
          "catering.restaurant.sandwich",
          "catering.restaurant.chicken",
          "catering.restaurant.mexican",
          "catering.restaurant.japanese",
          "catering.restaurant.american",
          "catering.restaurant.kebab",
          "catering.restaurant.indian",
          "catering.restaurant.asian",
          "catering.restaurant.sushi",
          "catering.restaurant.french",
          "catering.restaurant.german",
          "catering.restaurant.thai",
          "catering.restaurant.greek",
          "catering.restaurant.seafood",
          "catering.restaurant.fish_and_chips",
          "catering.restaurant.steak_house",
          "catering.restaurant.international",
          "catering.restaurant.tex-mex",
          "catering.restaurant.vietnamese",
          "catering.restaurant.turkish",
          "catering.restaurant.korean",
          "catering.restaurant.noodle",
          "catering.restaurant.barbecue",
          "catering.restaurant.spanish",
          "catering.restaurant.fish",
          "catering.restaurant.ramen",
          "catering.restaurant.mediterranean",
          "catering.restaurant.friture",
          "catering.restaurant.beef_bowl",
          "catering.restaurant.lebanese",
          "catering.restaurant.wings",
          "catering.restaurant.georgian",
          "catering.restaurant.tapas",
          "catering.restaurant.indonesian",
          "catering.restaurant.arab",
          "catering.restaurant.portuguese",
          "catering.restaurant.russian",
          "catering.restaurant.filipino",
          "catering.restaurant.african",
          "catering.restaurant.malaysian",
          "catering.restaurant.caribbean",
          "catering.restaurant.peruvian",
          "catering.restaurant.bavarian",
          "catering.restaurant.brazilian",
          "catering.restaurant.curry",
          "catering.restaurant.dumpling",
          "catering.restaurant.persian",
          "catering.restaurant.argentinian",
          "catering.restaurant.oriental",
          "catering.restaurant.balkan",
          "catering.restaurant.moroccan",
          "catering.restaurant.pita",
          "catering.restaurant.ethiopian",
          "catering.restaurant.taiwanese",
          "catering.restaurant.latin_american",
          "catering.restaurant.hawaiian",
          "catering.restaurant.irish",
          "catering.restaurant.austrian",
          "catering.restaurant.croatian",
          "catering.restaurant.danish",
          "catering.restaurant.tacos",
          "catering.restaurant.bolivian",
          "catering.restaurant.hungarian",
          "catering.restaurant.western",
          "catering.restaurant.european",
          "catering.restaurant.jamaican",
          "catering.restaurant.cuban",
          "catering.restaurant.soup",
          "catering.restaurant.uzbek",
          "catering.restaurant.nepalese",
          "catering.restaurant.czech",
          "catering.restaurant.syrian",
          "catering.restaurant.afghan",
          "catering.restaurant.malay",
          "catering.restaurant.chili",
          "catering.restaurant.belgian",
          "catering.restaurant.ukrainian",
          "catering.restaurant.swedish",
          "catering.restaurant.pakistani",
          "catering.fast_food",
          "catering.fast_food.pizza",
          "catering.fast_food.burger",
          "catering.fast_food.sandwich",
          "catering.fast_food.kebab",
          "catering.fast_food.fish_and_chips",
          "catering.fast_food.noodle",
          "catering.fast_food.ramen",
          "catering.fast_food.wings",
          "catering.fast_food.tapas",
          "catering.fast_food.pita",
          "catering.fast_food.tacos",
          "catering.fast_food.soup",
          "catering.fast_food.salad",
          "catering.fast_food.hot_dog",
          "catering.cafe",
          "catering.cafe.waffle",
          "catering.cafe.ice_cream",
          "catering.cafe.coffee_shop",
          "catering.cafe.donut",
          "catering.cafe.crepe",
          "catering.cafe.bubble_tea",
          "catering.cafe.cake",
          "catering.cafe.frozen_yogurt",
          "catering.cafe.dessert",
          "catering.cafe.coffee",
          "catering.cafe.tea",
          "catering.food_court",
          "catering.bar",
          "catering.pub",
          "catering.ice_cream",
          "catering.biergarten",
          "catering.taproom",
          "commercial",
          "commercial.supermarket",
          "commercial.marketplace",
          "commercial.shopping_mall",
          "commercial.department_store",
          "commercial.elektronics",
          "commercial.outdoor_and_sport",
          "commercial.outdoor_and_sport.water_sports",
          "commercial.outdoor_and_sport.ski",
          "commercial.outdoor_and_sport.diving",
          "commercial.outdoor_and_sport.hunting",
          "commercial.outdoor_and_sport.bicycle",
          "commercial.outdoor_and_sport.fishing",
          "commercial.outdoor_and_sport.golf",
          "commercial.vehicle",
          "commercial.hobby",
          "commercial.hobby.model",
          "commercial.hobby.anime",
          "commercial.hobby.collecting",
          "commercial.hobby.games",
          "commercial.hobby.brewing",
          "commercial.hobby.photo",
          "commercial.hobby.music",
          "commercial.hobby.sewing_and_knitting",
          "commercial.hobby.art",
          "commercial.books",
          "commercial.gift_and_souvenir",
          "commercial.stationery",
          "commercial.newsagent",
          "commercial.tickets_and_lottery",
          "commercial.clothing",
          "commercial.clothing.shoes",
          "commercial.clothing.clothes",
          "commercial.clothing.underwear",
          "commercial.clothing.sport",
          "commercial.clothing.men",
          "commercial.clothing.women",
          "commercial.clothing.kids",
          "commercial.clothing.accessories",
          "commercial.bag",
          "commercial.baby_goods",
          "commercial.agrarian",
          "commercial.garden",
          "commercial.houseware_and_hardware",
          "commercial.houseware_and_hardware.doityourself",
          "commercial.houseware_and_hardware.hardware_and_tools",
          "commercial.houseware_and_hardware.building_materials",
          "commercial.houseware_and_hardware.building_materials.paint",
          "commercial.houseware_and_hardware.building_materials.glaziery",
          "commercial.houseware_and_hardware.building_materials.doors",
          "commercial.houseware_and_hardware.building_materials.tiles",
          "commercial.houseware_and_hardware.building_materials.windows",
          "commercial.houseware_and_hardware.building_materials.flooring",
          "commercial.houseware_and_hardware.fireplace",
          "commercial.houseware_and_hardware.swimming_pool",
          "commercial.florist",
          "commercial.furniture_and_interior",
          "commercial.furniture_and_interior.lighting",
          "commercial.furniture_and_interior.curtain",
          "commercial.furniture_and_interior.carpet",
          "commercial.furniture_and_interior.kitchen",
          "commercial.furniture_and_interior.bed",
          "commercial.furniture_and_interior.bathroom",
          "commercial.chemist",
          "commercial.health_and_beauty",
          "commercial.health_and_beauty.pharmacy",
          "commercial.health_and_beauty.optician",
          "commercial.health_and_beauty.medical_supply",
          "commercial.health_and_beauty.hearing_aids",
          "commercial.health_and_beauty.herbalist",
          "commercial.health_and_beauty.cosmetics",
          "commercial.health_and_beauty.wigs",
          "commercial.toy_and_game",
          "commercial.pet",
          "commercial.food_and_drink",
          "commercial.food_and_drink.bakery",
          "commercial.food_and_drink.deli",
          "commercial.food_and_drink.frozen_food",
          "commercial.food_and_drink.pasta",
          "commercial.food_and_drink.spices",
          "commercial.food_and_drink.organic",
          "commercial.food_and_drink.honey",
          "commercial.food_and_drink.rice",
          "commercial.food_and_drink.nuts",
          "commercial.food_and_drink.health_food",
          "commercial.food_and_drink.ice_cream",
          "commercial.food_and_drink.seafood",
          "commercial.food_and_drink.fruit_and_vegetable",
          "commercial.food_and_drink.farm",
          "commercial.food_and_drink.confectionery",
          "commercial.food_and_drink.chocolate",
          "commercial.food_and_drink.butcher",
          "commercial.food_and_drink.cheese_and_dairy",
          "commercial.food_and_drink.drinks",
          "commercial.food_and_drink.coffee_and_tea",
          "commercial.convenience",
          "commercial.discount_store",
          "commercial.smoking",
          "commercial.second_hand",
          "commercial.gas",
          "commercial.weapons",
          "commercial.pyrotechnics",
          "commercial.energy",
          "commercial.wedding",
          "commercial.jewelry",
          "commercial.watches",
          "commercial.art",
          "commercial.antiques",
          "commercial.video_and_music",
          "commercial.erotic",
          "commercial.trade",
          "commercial.kiosk",
          "education",
          "education.school",
          "education.driving_school",
          "education.music_school",
          "education.language_school",
          "education.library",
          "education.college",
          "education.university",
          "childcare",
          "childcare.kindergarten",
          "emergency",
          "emergency.fire_hydrant",
          "emergency.fire_service_inlet",
          "emergency.suction_point",
          "emergency.defibrillator",
          "emergency.water_tank",
          "emergency.phone",
          "emergency.assembly_point",
          "emergency.fire_extinguisher",
          "emergency.ambulance_station",
          "emergency.access_point",
          "emergency.siren",
          "emergency.fire_alarm_box",
          "emergency.first_aid_kit",
          "emergency.first_aid",
          "emergency.bleed_control_kit",
          "emergency.emergency_ward_entrance",
          "emergency.control_centre",
          "emergency.fire_water_pond",
          "emergency.fire_hose",
          "emergency.dry_riser_inlet",
          "emergency.fire_detection_system",
          "emergency.key_depot",
          "emergency.fire_lookout",
          "emergency.fire_flapper",
          "emergency.lifeguard",
          "emergency.life_ring",
          "emergency.landing_site",
          "emergency.water_rescue",
          "emergency.marine_rescue",
          "emergency.mountain_rescue",
          "emergency.air_rescue_service",
          "emergency.rescue_box",
          "emergency.slipway",
          "emergency.disaster_response",
          "emergency.disaster_help_point",
          "emergency.drinking_water",
          "emergency.lifeguard_base",
          "entertainment",
          "entertainment.culture",
          "entertainment.culture.theatre",
          "entertainment.culture.arts_centre",
          "entertainment.culture.gallery",
          "entertainment.zoo",
          "entertainment.aquarium",
          "entertainment.planetarium",
          "entertainment.museum",
          "entertainment.cinema",
          "entertainment.amusement_arcade",
          "entertainment.escape_game",
          "entertainment.miniature_golf",
          "entertainment.bowling_alley",
          "entertainment.flying_fox",
          "entertainment.theme_park",
          "entertainment.water_park",
          "entertainment.activity_park",
          "entertainment.activity_park.trampoline",
          "entertainment.activity_park.climbing",
          "healthcare",
          "healthcare.clinic_or_praxis",
          "healthcare.clinic_or_praxis.allergology",
          "healthcare.clinic_or_praxis.vascular_surgery",
          "healthcare.clinic_or_praxis.urology",
          "healthcare.clinic_or_praxis.trauma",
          "healthcare.clinic_or_praxis.rheumatology",
          "healthcare.clinic_or_praxis.radiology",
          "healthcare.clinic_or_praxis.pulmonology",
          "healthcare.clinic_or_praxis.psychiatry",
          "healthcare.clinic_or_praxis.paediatrics",
          "healthcare.clinic_or_praxis.otolaryngology",
          "healthcare.clinic_or_praxis.orthopaedics",
          "healthcare.clinic_or_praxis.ophthalmology",
          "healthcare.clinic_or_praxis.occupational",
          "healthcare.clinic_or_praxis.gynaecology",
          "healthcare.clinic_or_praxis.general",
          "healthcare.clinic_or_praxis.gastroenterology",
          "healthcare.clinic_or_praxis.endocrinology",
          "healthcare.clinic_or_praxis.dermatology",
          "healthcare.clinic_or_praxis.cardiology",
          "healthcare.dentist",
          "healthcare.dentist.orthodontics",
          "healthcare.hospital",
          "healthcare.pharmacy",
          "heritage",
          "heritage.unesco",
          "traffic_signals",
          "highway",
          "highway.residential",
          "highway.public",
          "highway.service",
          "highway.track",
          "highway.footway",
          "highway.busway",
          "highway.cycleway",
          "highway.pedestrian",
          "highway.path",
          "highway.living_street",
          "highway.roundabout",
          "highway.primary",
          "highway.primary.link",
          "highway.secondary",
          "highway.secondary.link",
          "highway.tertiary",
          "highway.tertiary.link",
          "highway.trunk",
          "highway.trunk.link",
          "highway.motorway",
          "highway.motorway.junction",
          "highway.motorway.link",
          "leisure",
          "leisure.picnic",
          "leisure.picnic.picnic_site",
          "leisure.picnic.picnic_table",
          "leisure.picnic.bbq",
          "leisure.playground",
          "leisure.spa",
          "leisure.spa.public_bath",
          "leisure.spa.sauna",
          "leisure.park",
          "leisure.park.garden",
          "leisure.park.nature_reserve",
          "man_made",
          "man_made.pier",
          "man_made.breakwater",
          "man_made.tower",
          "man_made.water_tower",
          "man_made.bridge",
          "man_made.lighthouse",
          "man_made.windmill",
          "man_made.watermill",
          "maritime",
          "maritime.marina",
          "memorial",
          "memorial.graveyard",
          "memorial.cemetery",
          "memorial.cemetery.sector",
          "memorial.christian",
          "memorial.christian.catholic",
          "memorial.christian.orthodox",
          "memorial.christian.protestant",
          "memorial.jewish",
          "memorial.muslim",
          "memorial.buddhist",
          "memorial.hindu",
          "natural",
          "natural.forest",
          "natural.coastal",
          "natural.water",
          "natural.water.sea",
          "natural.water.bay",
          "natural.water.spring",
          "natural.water.reef",
          "natural.water.inland",
          "natural.water.moat",
          "natural.water.river_system",
          "natural.water.whitewater",
          "natural.water.hot_spring",
          "natural.water.geyser",
          "natural.desert",
          "natural.mountain",
          "natural.mountain.peak",
          "natural.mountain.hill",
          "natural.mountain.fell",
          "natural.mountain.volcano",
          "natural.mountain.glacier",
          "natural.mountain.cliff",
          "natural.mountain.rock",
          "natural.mountain.cave_entrance",
          "natural.wetland",
          "natural.heath_moor",
          "natural.sand",
          "natural.sand.dune",
          "natural.protected_area",
          "national_park",
          "office",
          "office.government",
          "office.government.administrative",
          "office.government.register_office",
          "office.government.tax",
          "office.government.public_service",
          "office.government.ministry",
          "office.government.healthcare",
          "office.government.prosecutor",
          "office.government.transportation",
          "office.government.social_services",
          "office.government.legislative",
          "office.government.education",
          "office.government.customs",
          "office.government.embassy",
          "office.government.social_security",
          "office.government.environment",
          "office.government.migration",
          "office.government.cadaster",
          "office.government.forestry",
          "office.government.agriculture",
          "office.company",
          "office.estate_agent",
          "office.insurance",
          "office.lawyer",
          "office.telecommunication",
          "office.educational_institution",
          "office.association",
          "office.non_profit",
          "office.diplomatic",
          "office.it",
          "office.accountant",
          "office.employment_agency",
          "office.religion",
          "office.research",
          "office.architect",
          "office.financial",
          "office.tax_advisor",
          "office.advertising_agency",
          "office.notary",
          "office.newspaper",
          "office.political_party",
          "office.logistics",
          "office.energy_supplier",
          "office.travel_agent",
          "office.financial_advisor",
          "office.consulting",
          "office.foundation",
          "office.coworking",
          "office.water_utility",
          "office.forestry",
          "office.charity",
          "office.security",
          "parking",
          "parking.cars",
          "parking.cars.surface",
          "parking.cars.multistorey",
          "parking.cars.underground",
          "parking.cars.rooftop",
          "parking.surface",
          "parking.multistorey",
          "parking.underground",
          "parking.rooftop",
          "parking.motorcycle",
          "parking.bicycles",
          "pet",
          "pet.shop",
          "pet.veterinary",
          "pet.animal_boarding",
          "pet.animal_shelter",
          "pet.service",
          "pet.dog_park",
          "pet.crematorium",
          "continent",
          "country",
          "island",
          "populated_place",
          "populated_place.hamlet",
          "populated_place.village",
          "populated_place.unpopulated_locality",
          "populated_place.neighbourhood",
          "populated_place.suburb",
          "populated_place.town",
          "populated_place.city_block",
          "populated_place.quarter",
          "populated_place.city",
          "populated_place.allotments",
          "populated_place.county",
          "populated_place.municipality",
          "populated_place.district",
          "populated_place.region",
          "populated_place.state",
          "populated_place.borough",
          "populated_place.subdistrict",
          "populated_place.province",
          "populated_place.township",
          "power",
          "power.tower",
          "power.pole",
          "power.portal",
          "power.switch",
          "power.plant",
          "power.plant.solar",
          "power.plant.hydro",
          "power.plant.wind",
          "power.plant.gas",
          "power.plant.coal",
          "power.plant.biomass",
          "power.plant.oil",
          "power.plant.waste",
          "power.plant.geothermal",
          "power.plant.nuclear",
          "power.catenary_mast",
          "power.cable",
          "power.terminal",
          "power.insulator",
          "power.heliostat",
          "power.connection",
          "power.inverter",
          "power.converter",
          "power.compensator",
          "power.generator",
          "power.generator.solar",
          "power.generator.wind",
          "power.generator.gas",
          "power.generator.biomass",
          "power.generator.hydro",
          "power.generator.oil",
          "power.generator.coal",
          "power.generator.nuclear",
          "power.generator.geothermal",
          "power.line",
          "power.circuit",
          "power.minor_line",
          "power.substation",
          "power.transformer",
          "production",
          "production.factory",
          "production.winery",
          "production.brewery",
          "production.cheese",
          "production.pottery",
          "production.beekeeper",
          "production.distillery",
          "public_transport",
          "public_transport.train",
          "public_transport.light_rail",
          "public_transport.monorail",
          "public_transport.subway",
          "public_transport.subway.entrance",
          "public_transport.bus",
          "public_transport.tram",
          "public_transport.platform",
          "public_transport.ferry",
          "public_transport.aerialway",
          "railway",
          "railway.train",
          "railway.subway",
          "railway.tram",
          "railway.light_rail",
          "railway.funicular",
          "railway.construction",
          "railway.underground",
          "railway.surface",
          "religion",
          "religion.place_of_worship",
          "religion.place_of_worship.buddhism",
          "religion.place_of_worship.christianity",
          "religion.place_of_worship.hinduism",
          "religion.place_of_worship.islam",
          "religion.place_of_worship.judaism",
          "religion.place_of_worship.shinto",
          "religion.place_of_worship.sikhism",
          "religion.place_of_worship.multifaith",
          "rental",
          "rental.car",
          "rental.storage",
          "rental.bicycle",
          "rental.boat",
          "rental.ski",
          "service",
          "service.financial",
          "service.financial.atm",
          "service.financial.payment_terminal",
          "service.financial.bank",
          "service.financial.bureau_de_change",
          "service.financial.money_transfer",
          "service.financial.money_lender",
          "service.cleaning",
          "service.cleaning.lavoir",
          "service.cleaning.laundry",
          "service.cleaning.dry_cleaning",
          "service.crematorium",
          "service.crematorium.pet",
          "service.funeral_hall",
          "service.mortuary",
          "service.place_of_mourning",
          "service.travel_agency",
          "service.post",
          "service.post.office",
          "service.post.box",
          "service.post.parcel_locker",
          "service.police",
          "service.fire_station",
          "service.vehicle",
          "service.vehicle.fuel",
          "service.vehicle.car_wash",
          "service.vehicle.charging_station",
          "service.vehicle.repair",
          "service.vehicle.repair.car",
          "service.vehicle.repair.motorcycle",
          "service.beauty",
          "service.beauty.hairdresser",
          "service.beauty.spa",
          "service.beauty.massage",
          "service.beauty.tanning_salon",
          "service.beauty.tattoo",
          "service.advertising",
          "service.advertising.billboard",
          "service.advertising.column",
          "service.tailor",
          "service.funeral_directors",
          "service.bookmaker",
          "service.estate_agent",
          "service.locksmith",
          "service.taxi",
          "service.social_facility",
          "service.social_facility.shelter",
          "service.social_facility.food",
          "service.social_facility.day_care",
          "service.social_facility.nursing_home",
          "service.social_facility.clothers",
          "service.social_facility.retirement_home",
          "service.recycling",
          "service.recycling.container",
          "service.recycling.centre",
          "service.recycling.bin",
          "service.blacksmith",
          "service.carpenter",
          "service.chimney_sweeper",
          "service.electrician",
          "service.key_cutter",
          "service.metal_construction",
          "service.photographer",
          "service.shoemaker",
          "service.watchmaker",
          "ski",
          "ski.lift",
          "ski.lift.cable_car",
          "ski.lift.gondola",
          "ski.lift.mixed_lift",
          "ski.lift.chair_lift",
          "ski.lift.tow_line",
          "ski.lift.magic_carpet",
          "sport",
          "sport.stadium",
          "sport.dive_centre",
          "sport.shooting",
          "sport.skateboard",
          "sport.fishing",
          "sport.golf_course",
          "sport.dojo",
          "sport.horse_riding",
          "sport.ice_rink",
          "sport.pitch",
          "sport.sports_centre",
          "sport.sports_hall",
          "sport.swimming_pool",
          "sport.track",
          "sport.fitness",
          "sport.fitness.gym",
          "sport.fitness.fitness_centre",
          "sport.fitness.fitness_station",
          "tourism",
          "tourism.information",
          "tourism.information.office",
          "tourism.information.map",
          "tourism.information.ranger_station",
          "tourism.attraction",
          "tourism.attraction.artwork",
          "tourism.attraction.artwork.mural",
          "tourism.attraction.artwork.sculpture",
          "tourism.attraction.artwork.statue",
          "tourism.attraction.viewpoint",
          "tourism.attraction.fountain",
          "tourism.attraction.clock",
          "tourism.sights",
          "tourism.sights.square",
          "tourism.sights.place_of_worship",
          "tourism.sights.place_of_worship.church",
          "tourism.sights.place_of_worship.chapel",
          "tourism.sights.place_of_worship.cathedral",
          "tourism.sights.place_of_worship.mosque",
          "tourism.sights.place_of_worship.synagogue",
          "tourism.sights.place_of_worship.temple",
          "tourism.sights.place_of_worship.shrine",
          "tourism.sights.monastery",
          "tourism.sights.city_hall",
          "tourism.sights.conference_centre",
          "tourism.sights.lighthouse",
          "tourism.sights.windmill",
          "tourism.sights.tower",
          "tourism.sights.battlefield",
          "tourism.sights.fort",
          "tourism.sights.building",
          "tourism.sights.manor",
          "tourism.sights.castle",
          "tourism.sights.mine",
          "tourism.sights.ruines",
          "tourism.sights.archaeological_site",
          "tourism.sights.city_gate",
          "tourism.sights.wreck",
          "tourism.sights.bridge",
          "tourism.sights.memorial",
          "tourism.sights.memorial.aircraft",
          "tourism.sights.memorial.locomotive",
          "tourism.sights.memorial.railway_car",
          "tourism.sights.memorial.ship",
          "tourism.sights.memorial.tank",
          "tourism.sights.memorial.tomb",
          "tourism.sights.memorial.monument",
          "tourism.sights.memorial.wayside_cross",
          "tourism.sights.memorial.boundary_stone",
          "tourism.sights.memorial.pillory",
          "tourism.sights.memorial.milestone",
          "tourism.sights.memorial.necropolis",
          "tourism.sights.memorial.tumulus",
          "waterway",
          "waterway.navigation",
          "waterway.channels",
          "waterway.river_system",
          "waterway.hydraulic_structures",
          "waterway.whitewater",
          "waterway.water_point"
        ],
        "example": "catering.restaurant"
      },
      "PlacesPlaceCondition": {
        "type": "string",
        "description": "Supported hierarchical place condition accepted by the `conditions` parameter.",
        "enum": [
          "internet_access",
          "internet_access.free",
          "internet_access.for_customers",
          "wheelchair",
          "wheelchair.yes",
          "wheelchair.limited",
          "dogs",
          "dogs.yes",
          "dogs.leashed",
          "no-dogs",
          "access",
          "access.yes",
          "access.not_specified",
          "access_limited",
          "access_limited.private",
          "access_limited.customers",
          "access_limited.with_permit",
          "access_limited.services",
          "no_access",
          "fee",
          "no_fee",
          "no_fee.no",
          "no_fee.not_specified",
          "named",
          "vegetarian",
          "vegetarian.only",
          "vegan",
          "vegan.only",
          "halal",
          "halal.only",
          "kosher",
          "kosher.only",
          "organic",
          "organic.only",
          "gluten_free",
          "sugar_free",
          "egg_free",
          "soy_free"
        ],
        "example": "wheelchair.yes"
      },
      "PlacesGatewayError": {
        "type": "object",
        "required": [
          "statusCode",
          "error",
          "message"
        ],
        "properties": {
          "statusCode": {
            "type": "integer",
            "description": "HTTP status code returned by the gateway."
          },
          "error": {
            "type": "string",
            "description": "Standard HTTP error name."
          },
          "message": {
            "type": "string",
            "description": "Human-readable explanation of the error."
          }
        }
      },
      "PlacesPlaceProperties": {
        "type": "object",
        "description": "Common properties and known place-detail fields returned by the Places API. Additional category-specific properties may appear when available.",
        "additionalProperties": true,
        "properties": {
          "name": {
            "type": "string"
          },
          "continent": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "country_code": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "state_code": {
            "type": "string"
          },
          "state_COG": {
            "type": "string"
          },
          "department_COG": {
            "type": "string"
          },
          "state_district": {
            "type": "string"
          },
          "province": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "arrondissement": {
            "type": "string"
          },
          "county": {
            "type": "string"
          },
          "county_code": {
            "type": "string"
          },
          "county_district": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "city_district": {
            "type": "string"
          },
          "postcode": {
            "type": "string"
          },
          "postal_code": {
            "type": "string"
          },
          "openGeoDB:postal_codes": {
            "type": "string"
          },
          "district": {
            "type": "string"
          },
          "suburb": {
            "type": "string"
          },
          "municipality": {
            "type": "string"
          },
          "commune": {
            "type": "string"
          },
          "subdistrict": {
            "type": "string"
          },
          "city_block": {
            "type": "string"
          },
          "neighbourhood": {
            "type": "string"
          },
          "quarter": {
            "type": "string"
          },
          "section": {
            "type": "string"
          },
          "sector": {
            "type": "string"
          },
          "subdivision": {
            "type": "string"
          },
          "croft": {
            "type": "string"
          },
          "allotments": {
            "type": "string"
          },
          "residental": {
            "type": "string"
          },
          "farm": {
            "type": "string"
          },
          "farmyard": {
            "type": "string"
          },
          "industrial": {
            "type": "string"
          },
          "retail": {
            "type": "string"
          },
          "borough": {
            "type": "string"
          },
          "town": {
            "type": "string"
          },
          "township": {
            "type": "string"
          },
          "village": {
            "type": "string"
          },
          "hamlet": {
            "type": "string"
          },
          "locality": {
            "type": "string"
          },
          "isolated_dwelling": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "road": {
            "type": "string"
          },
          "footway": {
            "type": "string"
          },
          "pedestrian": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "housenumber": {
            "type": "string"
          },
          "house_number": {
            "type": "string"
          },
          "house_name": {
            "type": "string"
          },
          "old_name": {
            "type": "string"
          },
          "other": {
            "type": "string"
          },
          "formatted": {
            "type": "string"
          },
          "address_line1": {
            "type": "string"
          },
          "address_line2": {
            "type": "string"
          },
          "unlocode": {
            "type": "string"
          },
          "iso3166_2": {
            "type": "string"
          },
          "iso3166_2_sublevel": {
            "type": "string"
          },
          "iso3166_sublevel": {
            "type": "string"
          },
          "plus_code": {
            "type": "string"
          },
          "plus_code_short": {
            "type": "string"
          },
          "postcodes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "other_names": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "lon": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "lat": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          "parent_as_place_id": {
            "type": "boolean"
          },
          "timezone": {
            "$ref": "#/components/schemas/PlacesTimezoneOutput"
          },
          "population": {
            "oneOf": [
              {
                "type": "number"
              },
              {
                "$ref": "#/components/schemas/PlacesWikiPopulation"
              }
            ]
          },
          "distance": {
            "type": "number"
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "details": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "datasource": {
            "$ref": "#/components/schemas/PlacesPlacesDatasource"
          },
          "mappedTo": {
            "type": "object",
            "properties": {
              "lon": {
                "type": "number",
                "minimum": -180,
                "maximum": 180
              },
              "lat": {
                "type": "number",
                "minimum": -90,
                "maximum": 90
              }
            }
          },
          "place_id": {
            "type": "string",
            "minLength": 3,
            "maxLength": 2048
          },
          "website": {
            "type": "string"
          },
          "opening_hours": {
            "type": "string"
          },
          "opening_hours_covid19": {
            "type": "string"
          },
          "brand": {
            "type": "string"
          },
          "operator": {
            "type": "string"
          },
          "branch": {
            "type": "string"
          },
          "network": {
            "type": "string"
          },
          "owner": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "craft": {
            "type": "string"
          },
          "ref": {
            "type": "string"
          },
          "int_ref": {
            "type": "string"
          },
          "ele": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "water_source": {
            "type": "string"
          },
          "website_other": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "website_international": {
            "$ref": "#/components/schemas/PlacesStringMap"
          },
          "description_international": {
            "$ref": "#/components/schemas/PlacesStringMap"
          },
          "name_international": {
            "$ref": "#/components/schemas/PlacesStringMap"
          },
          "cuisine_international": {
            "$ref": "#/components/schemas/PlacesStringMap"
          },
          "ref_other": {
            "$ref": "#/components/schemas/PlacesStringMap"
          },
          "disused": {
            "type": "boolean"
          },
          "commercial": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
              }
            ]
          },
          "payment_options": {
            "$ref": "#/components/schemas/PlacesBooleanMap"
          },
          "recycling_options": {
            "$ref": "#/components/schemas/PlacesBooleanMap"
          },
          "fuel_options": {
            "$ref": "#/components/schemas/PlacesBooleanMap"
          },
          "targeted_for": {
            "$ref": "#/components/schemas/PlacesBooleanMap"
          },
          "socket_options": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
            }
          },
          "brand_details": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "operator_details": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "network_details": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "owner_details": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "name_other": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "contact": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "facilities": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "wiki_and_media": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "historic": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "heritage": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "artwork": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "accommodation": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "catering": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "parking": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "airport": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "power": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "way": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "building": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "place_of_worship": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "fire_hydrant": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "defibrilator": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "restrictions": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          },
          "production": {
            "$ref": "#/components/schemas/PlacesPlaceDetailGroup"
          }
        }
      },
      "IpIpGeolocationResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "ip": {
            "type": "string",
            "anyOf": [
              {
                "format": "ipv4"
              },
              {
                "format": "ipv6"
              }
            ]
          },
          "city": {
            "$ref": "#/components/schemas/IpIpGeolocationNamedEntity"
          },
          "state": {
            "$ref": "#/components/schemas/IpIpGeolocationNamedEntity"
          },
          "country": {
            "$ref": "#/components/schemas/IpIpGeolocationCountry"
          },
          "continent": {
            "$ref": "#/components/schemas/IpIpGeolocationContinent"
          },
          "location": {
            "$ref": "#/components/schemas/IpIpGeolocationLocation"
          },
          "subdivisions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IpIpGeolocationNamedEntity"
            }
          },
          "postal": {
            "$ref": "#/components/schemas/IpIpGeolocationPostal"
          }
        }
      },
      "IpLocalizedNames": {
        "type": "object",
        "description": "Names keyed by language code.",
        "additionalProperties": {
          "type": "string"
        }
      },
      "IpIpGeolocationNamedEntity": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "name": {
            "type": "string"
          },
          "names": {
            "$ref": "#/components/schemas/IpLocalizedNames"
          }
        }
      },
      "IpIpGeolocationCountry": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "name": {
            "type": "string"
          },
          "iso_code": {
            "type": "string",
            "pattern": "^[A-Z]{2}$"
          },
          "names": {
            "$ref": "#/components/schemas/IpLocalizedNames"
          },
          "geoname_id": {
            "type": "integer"
          },
          "name_native": {
            "type": "string"
          },
          "phone_code": {
            "type": "string"
          },
          "capital": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "flag": {
            "type": "string"
          },
          "languages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IpIpGeolocationLanguage"
            }
          }
        }
      },
      "IpIpGeolocationLanguage": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "iso_code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "name_native": {
            "type": "string"
          }
        }
      },
      "IpIpGeolocationContinent": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "names": {
            "$ref": "#/components/schemas/IpLocalizedNames"
          },
          "geoname_id": {
            "type": "integer"
          }
        }
      },
      "IpIpGeolocationLocation": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "latitude",
          "longitude"
        ],
        "properties": {
          "latitude": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          "longitude": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          }
        }
      },
      "IpIpGeolocationPostal": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "code": {
            "type": "string"
          }
        }
      },
      "IpGatewayError": {
        "type": "object",
        "required": [
          "statusCode",
          "error",
          "message"
        ],
        "properties": {
          "statusCode": {
            "type": "integer",
            "description": "HTTP status code returned by the gateway."
          },
          "error": {
            "type": "string",
            "description": "Standard HTTP error name."
          },
          "message": {
            "type": "string",
            "description": "Human-readable explanation of the error."
          }
        }
      },
      "PlaceInfoFeatureCollection": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "type",
          "features"
        ],
        "properties": {
          "type": {
            "const": "FeatureCollection"
          },
          "features": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlaceInfoFeature"
            }
          }
        }
      },
      "PlaceInfoFeature": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "type",
          "properties",
          "geometry"
        ],
        "properties": {
          "type": {
            "const": "Feature"
          },
          "properties": {
            "$ref": "#/components/schemas/PlaceInfoPlaceInfoProperties"
          },
          "geometry": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/PlaceInfoPointGeometry"
              },
              {
                "$ref": "#/components/schemas/PlaceInfoGenericGeometry"
              },
              {
                "$ref": "#/components/schemas/PlaceInfoGeometryCollection"
              }
            ]
          },
          "bbox": {
            "type": "array",
            "minItems": 4,
            "maxItems": 6,
            "items": {
              "type": "number"
            }
          }
        }
      },
      "PlaceInfoPointGeometry": {
        "type": "object",
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "const": "Point"
          },
          "coordinates": {
            "$ref": "#/components/schemas/PlaceInfoPosition"
          }
        }
      },
      "PlaceInfoGenericGeometry": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "LineString",
              "Polygon",
              "MultiPoint",
              "MultiLineString",
              "MultiPolygon"
            ]
          },
          "coordinates": {
            "type": "array"
          }
        }
      },
      "PlaceInfoGeometryCollection": {
        "type": "object",
        "required": [
          "type",
          "geometries"
        ],
        "properties": {
          "type": {
            "const": "GeometryCollection"
          },
          "geometries": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/PlaceInfoPointGeometry"
                },
                {
                  "$ref": "#/components/schemas/PlaceInfoGenericGeometry"
                },
                {
                  "$ref": "#/components/schemas/PlaceInfoGeometryCollection"
                }
              ]
            }
          }
        }
      },
      "PlaceInfoPosition": {
        "type": "array",
        "minItems": 2,
        "maxItems": 3,
        "prefixItems": [
          {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          {
            "type": "number"
          }
        ],
        "items": false
      },
      "PlaceInfoTimezoneOutput": {
        "type": "object",
        "required": [
          "name",
          "offset_STD",
          "offset_DST",
          "offset_STD_seconds",
          "offset_DST_seconds"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "name_alt": {
            "type": "string"
          },
          "country_codes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "offset_STD": {
            "type": "string"
          },
          "offset_DST": {
            "type": "string"
          },
          "offset_STD_seconds": {
            "type": "number"
          },
          "offset_DST_seconds": {
            "type": "number"
          },
          "abbreviation_STD": {
            "type": "string"
          },
          "abbreviation_DST": {
            "type": "string"
          }
        }
      },
      "PlaceInfoPublicDatasource": {
        "type": "object",
        "properties": {
          "sourcename": {
            "type": "string"
          },
          "attribution": {
            "type": "string"
          },
          "license": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "PlaceInfoPlacesDatasource": {
        "type": "object",
        "required": [
          "raw"
        ],
        "properties": {
          "sourcename": {
            "type": "string"
          },
          "attribution": {
            "type": "string"
          },
          "license": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "raw": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "PlaceInfoGeocodingRank": {
        "type": "object",
        "properties": {
          "confidence": {
            "type": "number"
          },
          "confidence_city_level": {
            "type": "number"
          },
          "confidence_street_level": {
            "type": "number"
          },
          "confidence_building_level": {
            "type": "number"
          },
          "match_type": {
            "type": "string",
            "enum": [
              "full_match",
              "inner_part",
              "match_by_building",
              "match_by_street",
              "match_by_postcode",
              "match_by_city_or_disrict",
              "match_by_country_or_state"
            ]
          },
          "importance": {
            "type": "number"
          },
          "popularity": {
            "type": "number"
          }
        }
      },
      "PlaceInfoPlaceDetailValue": {
        "oneOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlaceInfoPlaceDetailValue"
            }
          },
          {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/PlaceInfoPlaceDetailValue"
            }
          }
        ]
      },
      "PlaceInfoPlaceDetailGroup": {
        "type": "object",
        "additionalProperties": {
          "$ref": "#/components/schemas/PlaceInfoPlaceDetailValue"
        }
      },
      "PlaceInfoStringMap": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        }
      },
      "PlaceInfoBooleanMap": {
        "type": "object",
        "additionalProperties": {
          "type": "boolean"
        }
      },
      "PlaceInfoWikiPopulation": {
        "type": "object",
        "required": [
          "actual",
          "by_years"
        ],
        "properties": {
          "actual": {
            "type": "string"
          },
          "by_years": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "PlaceInfoPlaceInfoProperties": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "continent": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "country_code": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "state_code": {
            "type": "string"
          },
          "state_COG": {
            "type": "string"
          },
          "department_COG": {
            "type": "string"
          },
          "state_district": {
            "type": "string"
          },
          "province": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "arrondissement": {
            "type": "string"
          },
          "county": {
            "type": "string"
          },
          "county_code": {
            "type": "string"
          },
          "county_district": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "city_district": {
            "type": "string"
          },
          "postcode": {
            "type": "string"
          },
          "postal_code": {
            "type": "string"
          },
          "openGeoDB:postal_codes": {
            "type": "string"
          },
          "district": {
            "type": "string"
          },
          "suburb": {
            "type": "string"
          },
          "municipality": {
            "type": "string"
          },
          "commune": {
            "type": "string"
          },
          "subdistrict": {
            "type": "string"
          },
          "city_block": {
            "type": "string"
          },
          "neighbourhood": {
            "type": "string"
          },
          "quarter": {
            "type": "string"
          },
          "section": {
            "type": "string"
          },
          "sector": {
            "type": "string"
          },
          "subdivision": {
            "type": "string"
          },
          "croft": {
            "type": "string"
          },
          "allotments": {
            "type": "string"
          },
          "residental": {
            "type": "string"
          },
          "farm": {
            "type": "string"
          },
          "farmyard": {
            "type": "string"
          },
          "industrial": {
            "type": "string"
          },
          "retail": {
            "type": "string"
          },
          "borough": {
            "type": "string"
          },
          "town": {
            "type": "string"
          },
          "township": {
            "type": "string"
          },
          "village": {
            "type": "string"
          },
          "hamlet": {
            "type": "string"
          },
          "locality": {
            "type": "string"
          },
          "isolated_dwelling": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "road": {
            "type": "string"
          },
          "footway": {
            "type": "string"
          },
          "pedestrian": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "housenumber": {
            "type": "string"
          },
          "house_number": {
            "type": "string"
          },
          "house_name": {
            "type": "string"
          },
          "old_name": {
            "type": "string"
          },
          "other": {
            "type": "string"
          },
          "formatted": {
            "type": "string"
          },
          "address_line1": {
            "type": "string"
          },
          "address_line2": {
            "type": "string"
          },
          "unlocode": {
            "type": "string"
          },
          "iso3166_2": {
            "type": "string"
          },
          "iso3166_2_sublevel": {
            "type": "string"
          },
          "iso3166_sublevel": {
            "type": "string"
          },
          "plus_code": {
            "type": "string"
          },
          "plus_code_short": {
            "type": "string"
          },
          "postcodes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "other_names": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "lon": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "lat": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          "parent_as_place_id": {
            "type": "boolean"
          },
          "timezone": {
            "$ref": "#/components/schemas/PlaceInfoTimezoneOutput"
          },
          "population": {
            "oneOf": [
              {
                "type": "number"
              },
              {
                "$ref": "#/components/schemas/PlaceInfoWikiPopulation"
              }
            ]
          },
          "distance": {
            "type": "number"
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "details": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "datasource": {
            "$ref": "#/components/schemas/PlaceInfoPlacesDatasource"
          },
          "mappedTo": {
            "type": "object",
            "properties": {
              "lon": {
                "type": "number",
                "minimum": -180,
                "maximum": 180
              },
              "lat": {
                "type": "number",
                "minimum": -90,
                "maximum": 90
              }
            }
          },
          "place_id": {
            "type": "string",
            "minLength": 3,
            "maxLength": 2048
          },
          "website": {
            "type": "string"
          },
          "opening_hours": {
            "type": "string"
          },
          "opening_hours_covid19": {
            "type": "string"
          },
          "brand": {
            "type": "string"
          },
          "operator": {
            "type": "string"
          },
          "branch": {
            "type": "string"
          },
          "network": {
            "type": "string"
          },
          "owner": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "craft": {
            "type": "string"
          },
          "ref": {
            "type": "string"
          },
          "int_ref": {
            "type": "string"
          },
          "ele": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "water_source": {
            "type": "string"
          },
          "website_other": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "website_international": {
            "$ref": "#/components/schemas/PlaceInfoStringMap"
          },
          "description_international": {
            "$ref": "#/components/schemas/PlaceInfoStringMap"
          },
          "name_international": {
            "$ref": "#/components/schemas/PlaceInfoStringMap"
          },
          "cuisine_international": {
            "$ref": "#/components/schemas/PlaceInfoStringMap"
          },
          "ref_other": {
            "$ref": "#/components/schemas/PlaceInfoStringMap"
          },
          "disused": {
            "type": "boolean"
          },
          "commercial": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
              }
            ]
          },
          "payment_options": {
            "$ref": "#/components/schemas/PlaceInfoBooleanMap"
          },
          "recycling_options": {
            "$ref": "#/components/schemas/PlaceInfoBooleanMap"
          },
          "fuel_options": {
            "$ref": "#/components/schemas/PlaceInfoBooleanMap"
          },
          "targeted_for": {
            "$ref": "#/components/schemas/PlaceInfoBooleanMap"
          },
          "socket_options": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
            }
          },
          "brand_details": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "operator_details": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "network_details": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "owner_details": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "name_other": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "contact": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "facilities": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "wiki_and_media": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "historic": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "heritage": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "artwork": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "accommodation": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "catering": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "parking": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "airport": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "power": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "way": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "building": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "place_of_worship": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "fire_hydrant": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "defibrilator": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "restrictions": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          },
          "production": {
            "$ref": "#/components/schemas/PlaceInfoPlaceDetailGroup"
          }
        }
      },
      "PlaceDetailsTimezoneOutput": {
        "type": "object",
        "required": [
          "name",
          "offset_STD",
          "offset_DST",
          "offset_STD_seconds",
          "offset_DST_seconds"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "name_alt": {
            "type": "string"
          },
          "country_codes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "offset_STD": {
            "type": "string"
          },
          "offset_DST": {
            "type": "string"
          },
          "offset_STD_seconds": {
            "type": "number"
          },
          "offset_DST_seconds": {
            "type": "number"
          },
          "abbreviation_STD": {
            "type": "string"
          },
          "abbreviation_DST": {
            "type": "string"
          }
        }
      },
      "PlaceDetailsPublicDatasource": {
        "type": "object",
        "properties": {
          "sourcename": {
            "type": "string"
          },
          "attribution": {
            "type": "string"
          },
          "license": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "PlaceDetailsPlacesDatasource": {
        "type": "object",
        "required": [
          "raw"
        ],
        "properties": {
          "sourcename": {
            "type": "string"
          },
          "attribution": {
            "type": "string"
          },
          "license": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "raw": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "PlaceDetailsGeocodingRank": {
        "type": "object",
        "properties": {
          "confidence": {
            "type": "number"
          },
          "confidence_city_level": {
            "type": "number"
          },
          "confidence_street_level": {
            "type": "number"
          },
          "confidence_building_level": {
            "type": "number"
          },
          "match_type": {
            "type": "string",
            "enum": [
              "full_match",
              "inner_part",
              "match_by_building",
              "match_by_street",
              "match_by_postcode",
              "match_by_city_or_disrict",
              "match_by_country_or_state"
            ]
          },
          "importance": {
            "type": "number"
          },
          "popularity": {
            "type": "number"
          }
        }
      },
      "PlaceDetailsPlaceDetailValue": {
        "oneOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlaceDetailsPlaceDetailValue"
            }
          },
          {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/PlaceDetailsPlaceDetailValue"
            }
          }
        ]
      },
      "PlaceDetailsPlaceDetailGroup": {
        "type": "object",
        "additionalProperties": {
          "$ref": "#/components/schemas/PlaceDetailsPlaceDetailValue"
        }
      },
      "PlaceDetailsStringMap": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        }
      },
      "PlaceDetailsBooleanMap": {
        "type": "object",
        "additionalProperties": {
          "type": "boolean"
        }
      },
      "PlaceDetailsWikiPopulation": {
        "type": "object",
        "required": [
          "actual",
          "by_years"
        ],
        "properties": {
          "actual": {
            "type": "string"
          },
          "by_years": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "PlaceDetailsPlaceDetailsFeatureId": {
        "type": "string",
        "description": "Primary Place Details feature group accepted by the `features` parameter.",
        "enum": [
          "details",
          "building",
          "radius_100",
          "radius_500",
          "radius_1000",
          "walk_5",
          "walk_10",
          "walk_15",
          "walk_30",
          "drive_5",
          "drive_10",
          "drive_15"
        ],
        "example": "details"
      },
      "PlaceDetailsGatewayError": {
        "type": "object",
        "required": [
          "statusCode",
          "error",
          "message"
        ],
        "properties": {
          "statusCode": {
            "type": "integer",
            "description": "HTTP status code returned by the gateway."
          },
          "error": {
            "type": "string",
            "description": "Standard HTTP error name."
          },
          "message": {
            "type": "string",
            "description": "Human-readable explanation of the error."
          }
        }
      },
      "PlaceDetailsPlaceDetailsFeatureCollection": {
        "type": "object",
        "required": [
          "type",
          "features"
        ],
        "properties": {
          "type": {
            "const": "FeatureCollection"
          },
          "features": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlaceDetailsPlaceDetailsFeature"
            }
          }
        }
      },
      "PlaceDetailsPlaceDetailsFeature": {
        "type": "object",
        "required": [
          "type",
          "properties",
          "geometry"
        ],
        "properties": {
          "type": {
            "const": "Feature"
          },
          "properties": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailsProperties"
          },
          "geometry": {
            "$ref": "#/components/schemas/PlaceDetailsGeoJsonGeometry"
          },
          "bbox": {
            "type": "array",
            "minItems": 4,
            "maxItems": 4,
            "items": {
              "type": "number"
            }
          }
        }
      },
      "PlaceDetailsPlaceDetailsProperties": {
        "type": "object",
        "description": "Common properties and known place-detail fields returned by the Place Details API. Additional category-specific properties may appear when available.",
        "additionalProperties": true,
        "properties": {
          "name": {
            "type": "string"
          },
          "continent": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "country_code": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "state_code": {
            "type": "string"
          },
          "state_COG": {
            "type": "string"
          },
          "department_COG": {
            "type": "string"
          },
          "state_district": {
            "type": "string"
          },
          "province": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "arrondissement": {
            "type": "string"
          },
          "county": {
            "type": "string"
          },
          "county_code": {
            "type": "string"
          },
          "county_district": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "city_district": {
            "type": "string"
          },
          "postcode": {
            "type": "string"
          },
          "postal_code": {
            "type": "string"
          },
          "openGeoDB:postal_codes": {
            "type": "string"
          },
          "district": {
            "type": "string"
          },
          "suburb": {
            "type": "string"
          },
          "municipality": {
            "type": "string"
          },
          "commune": {
            "type": "string"
          },
          "subdistrict": {
            "type": "string"
          },
          "city_block": {
            "type": "string"
          },
          "neighbourhood": {
            "type": "string"
          },
          "quarter": {
            "type": "string"
          },
          "section": {
            "type": "string"
          },
          "sector": {
            "type": "string"
          },
          "subdivision": {
            "type": "string"
          },
          "croft": {
            "type": "string"
          },
          "allotments": {
            "type": "string"
          },
          "residental": {
            "type": "string"
          },
          "farm": {
            "type": "string"
          },
          "farmyard": {
            "type": "string"
          },
          "industrial": {
            "type": "string"
          },
          "retail": {
            "type": "string"
          },
          "borough": {
            "type": "string"
          },
          "town": {
            "type": "string"
          },
          "township": {
            "type": "string"
          },
          "village": {
            "type": "string"
          },
          "hamlet": {
            "type": "string"
          },
          "locality": {
            "type": "string"
          },
          "isolated_dwelling": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "road": {
            "type": "string"
          },
          "footway": {
            "type": "string"
          },
          "pedestrian": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "housenumber": {
            "type": "string"
          },
          "house_number": {
            "type": "string"
          },
          "house_name": {
            "type": "string"
          },
          "old_name": {
            "type": "string"
          },
          "other": {
            "type": "string"
          },
          "formatted": {
            "type": "string"
          },
          "address_line1": {
            "type": "string"
          },
          "address_line2": {
            "type": "string"
          },
          "unlocode": {
            "type": "string"
          },
          "iso3166_2": {
            "type": "string"
          },
          "iso3166_2_sublevel": {
            "type": "string"
          },
          "iso3166_sublevel": {
            "type": "string"
          },
          "plus_code": {
            "type": "string"
          },
          "plus_code_short": {
            "type": "string"
          },
          "postcodes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "other_names": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "lon": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "lat": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          "parent_as_place_id": {
            "type": "boolean"
          },
          "timezone": {
            "$ref": "#/components/schemas/PlaceDetailsTimezoneOutput"
          },
          "population": {
            "oneOf": [
              {
                "type": "number"
              },
              {
                "$ref": "#/components/schemas/PlaceDetailsWikiPopulation"
              }
            ]
          },
          "distance": {
            "type": "number"
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "details": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "datasource": {
            "$ref": "#/components/schemas/PlaceDetailsPublicDatasource"
          },
          "mappedTo": {
            "type": "object",
            "properties": {
              "lon": {
                "type": "number",
                "minimum": -180,
                "maximum": 180
              },
              "lat": {
                "type": "number",
                "minimum": -90,
                "maximum": 90
              }
            }
          },
          "place_id": {
            "type": "string",
            "minLength": 3,
            "maxLength": 2048
          },
          "website": {
            "type": "string"
          },
          "opening_hours": {
            "type": "string"
          },
          "opening_hours_covid19": {
            "type": "string"
          },
          "brand": {
            "type": "string"
          },
          "operator": {
            "type": "string"
          },
          "branch": {
            "type": "string"
          },
          "network": {
            "type": "string"
          },
          "owner": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "craft": {
            "type": "string"
          },
          "ref": {
            "type": "string"
          },
          "int_ref": {
            "type": "string"
          },
          "ele": {
            "oneOf": [
              {
                "type": "number"
              },
              {
                "type": "string"
              }
            ],
            "description": "Elevation when available."
          },
          "color": {
            "type": "string"
          },
          "water_source": {
            "type": "string"
          },
          "website_other": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "website_international": {
            "$ref": "#/components/schemas/PlaceDetailsStringMap"
          },
          "description_international": {
            "$ref": "#/components/schemas/PlaceDetailsStringMap"
          },
          "name_international": {
            "$ref": "#/components/schemas/PlaceDetailsStringMap"
          },
          "cuisine_international": {
            "$ref": "#/components/schemas/PlaceDetailsStringMap"
          },
          "ref_other": {
            "$ref": "#/components/schemas/PlaceDetailsStringMap"
          },
          "disused": {
            "type": "boolean"
          },
          "commercial": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
              }
            ]
          },
          "payment_options": {
            "$ref": "#/components/schemas/PlaceDetailsBooleanMap"
          },
          "recycling_options": {
            "$ref": "#/components/schemas/PlaceDetailsBooleanMap"
          },
          "fuel_options": {
            "$ref": "#/components/schemas/PlaceDetailsBooleanMap"
          },
          "targeted_for": {
            "$ref": "#/components/schemas/PlaceDetailsBooleanMap"
          },
          "socket_options": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
            }
          },
          "brand_details": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "operator_details": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "network_details": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "owner_details": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "name_other": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "contact": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "facilities": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "wiki_and_media": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "historic": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "heritage": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "artwork": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "accommodation": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "catering": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "parking": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "airport": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "power": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "way": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "building": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "place_of_worship": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "fire_hydrant": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "defibrilator": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "restrictions": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "production": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailGroup"
          },
          "feature_type": {
            "$ref": "#/components/schemas/PlaceDetailsPlaceDetailsFeatureId"
          },
          "area": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "range": {
            "type": "number"
          },
          "access_details": {
            "type": "object",
            "additionalProperties": true
          },
          "wikidata": {
            "type": "string"
          }
        }
      },
      "PlaceDetailsGeoJsonGeometry": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/PlaceDetailsPointGeometry"
          },
          {
            "$ref": "#/components/schemas/PlaceDetailsLineStringGeometry"
          },
          {
            "$ref": "#/components/schemas/PlaceDetailsPolygonGeometry"
          },
          {
            "$ref": "#/components/schemas/PlaceDetailsMultiPointGeometry"
          },
          {
            "$ref": "#/components/schemas/PlaceDetailsMultiLineStringGeometry"
          },
          {
            "$ref": "#/components/schemas/PlaceDetailsMultiPolygonGeometry"
          },
          {
            "$ref": "#/components/schemas/PlaceDetailsGeometryCollection"
          }
        ]
      },
      "PlaceDetailsPointGeometry": {
        "type": "object",
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "const": "Point"
          },
          "coordinates": {
            "$ref": "#/components/schemas/PlaceDetailsPosition"
          }
        }
      },
      "PlaceDetailsLineStringGeometry": {
        "type": "object",
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "const": "LineString"
          },
          "coordinates": {
            "type": "array",
            "minItems": 2,
            "items": {
              "$ref": "#/components/schemas/PlaceDetailsPosition"
            }
          }
        }
      },
      "PlaceDetailsPolygonGeometry": {
        "type": "object",
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "const": "Polygon"
          },
          "coordinates": {
            "type": "array",
            "items": {
              "type": "array",
              "minItems": 4,
              "items": {
                "$ref": "#/components/schemas/PlaceDetailsPosition"
              }
            }
          }
        }
      },
      "PlaceDetailsMultiPointGeometry": {
        "type": "object",
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "const": "MultiPoint"
          },
          "coordinates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlaceDetailsPosition"
            }
          }
        }
      },
      "PlaceDetailsMultiLineStringGeometry": {
        "type": "object",
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "const": "MultiLineString"
          },
          "coordinates": {
            "type": "array",
            "items": {
              "type": "array",
              "minItems": 2,
              "items": {
                "$ref": "#/components/schemas/PlaceDetailsPosition"
              }
            }
          }
        }
      },
      "PlaceDetailsMultiPolygonGeometry": {
        "type": "object",
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "const": "MultiPolygon"
          },
          "coordinates": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "array",
                "minItems": 4,
                "items": {
                  "$ref": "#/components/schemas/PlaceDetailsPosition"
                }
              }
            }
          }
        }
      },
      "PlaceDetailsGeometryCollection": {
        "type": "object",
        "required": [
          "type",
          "geometries"
        ],
        "properties": {
          "type": {
            "const": "GeometryCollection"
          },
          "geometries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlaceDetailsGeoJsonGeometry"
            }
          }
        }
      },
      "PlaceDetailsPosition": {
        "type": "array",
        "minItems": 2,
        "maxItems": 3,
        "prefixItems": [
          {
            "type": "number",
            "minimum": -180,
            "maximum": 180,
            "description": "Longitude."
          },
          {
            "type": "number",
            "minimum": -90,
            "maximum": 90,
            "description": "Latitude."
          },
          {
            "type": "number",
            "description": "Optional altitude."
          }
        ],
        "items": false
      },
      "BoundariesTimezoneOutput": {
        "type": "object",
        "required": [
          "name",
          "offset_STD",
          "offset_DST",
          "offset_STD_seconds",
          "offset_DST_seconds"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "name_alt": {
            "type": "string"
          },
          "country_codes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "offset_STD": {
            "type": "string"
          },
          "offset_DST": {
            "type": "string"
          },
          "offset_STD_seconds": {
            "type": "number"
          },
          "offset_DST_seconds": {
            "type": "number"
          },
          "abbreviation_STD": {
            "type": "string"
          },
          "abbreviation_DST": {
            "type": "string"
          }
        }
      },
      "BoundariesPublicDatasource": {
        "type": "object",
        "properties": {
          "sourcename": {
            "type": "string"
          },
          "attribution": {
            "type": "string"
          },
          "license": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "BoundariesPlacesDatasource": {
        "type": "object",
        "required": [
          "raw"
        ],
        "properties": {
          "sourcename": {
            "type": "string"
          },
          "attribution": {
            "type": "string"
          },
          "license": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "raw": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "BoundariesGeocodingRank": {
        "type": "object",
        "properties": {
          "confidence": {
            "type": "number"
          },
          "confidence_city_level": {
            "type": "number"
          },
          "confidence_street_level": {
            "type": "number"
          },
          "confidence_building_level": {
            "type": "number"
          },
          "match_type": {
            "type": "string",
            "enum": [
              "full_match",
              "inner_part",
              "match_by_building",
              "match_by_street",
              "match_by_postcode",
              "match_by_city_or_disrict",
              "match_by_country_or_state"
            ]
          },
          "importance": {
            "type": "number"
          },
          "popularity": {
            "type": "number"
          }
        }
      },
      "BoundariesPlaceDetailValue": {
        "oneOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BoundariesPlaceDetailValue"
            }
          },
          {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/BoundariesPlaceDetailValue"
            }
          }
        ]
      },
      "BoundariesPlaceDetailGroup": {
        "type": "object",
        "additionalProperties": {
          "$ref": "#/components/schemas/BoundariesPlaceDetailValue"
        }
      },
      "BoundariesStringMap": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        }
      },
      "BoundariesBooleanMap": {
        "type": "object",
        "additionalProperties": {
          "type": "boolean"
        }
      },
      "BoundariesWikiPopulation": {
        "type": "object",
        "required": [
          "actual",
          "by_years"
        ],
        "properties": {
          "actual": {
            "type": "string"
          },
          "by_years": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "BoundariesGatewayError": {
        "type": "object",
        "required": [
          "statusCode",
          "error",
          "message"
        ],
        "properties": {
          "statusCode": {
            "type": "integer",
            "description": "HTTP status code returned by the API gateway."
          },
          "error": {
            "type": "string",
            "description": "Standard HTTP error name."
          },
          "message": {
            "type": "string",
            "description": "Human-readable explanation of the error."
          }
        }
      },
      "BoundariesBoundaryFeatureCollection": {
        "type": "object",
        "required": [
          "type",
          "features"
        ],
        "properties": {
          "type": {
            "const": "FeatureCollection"
          },
          "features": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BoundariesBoundaryFeature"
            }
          }
        }
      },
      "BoundariesBoundaryFeature": {
        "type": "object",
        "required": [
          "type",
          "properties",
          "geometry"
        ],
        "properties": {
          "type": {
            "const": "Feature"
          },
          "properties": {
            "$ref": "#/components/schemas/BoundariesBoundaryProperties"
          },
          "geometry": {
            "$ref": "#/components/schemas/BoundariesGeoJsonGeometry"
          },
          "bbox": {
            "type": "array",
            "minItems": 4,
            "maxItems": 4,
            "items": {
              "type": "number"
            }
          }
        }
      },
      "BoundariesBoundaryProperties": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "continent": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "country_code": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "state_code": {
            "type": "string"
          },
          "state_COG": {
            "type": "string"
          },
          "department_COG": {
            "type": "string"
          },
          "state_district": {
            "type": "string"
          },
          "province": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "arrondissement": {
            "type": "string"
          },
          "county": {
            "type": "string"
          },
          "county_code": {
            "type": "string"
          },
          "county_district": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "city_district": {
            "type": "string"
          },
          "postcode": {
            "type": "string"
          },
          "postal_code": {
            "type": "string"
          },
          "openGeoDB:postal_codes": {
            "type": "string"
          },
          "district": {
            "type": "string"
          },
          "suburb": {
            "type": "string"
          },
          "municipality": {
            "type": "string"
          },
          "commune": {
            "type": "string"
          },
          "subdistrict": {
            "type": "string"
          },
          "city_block": {
            "type": "string"
          },
          "neighbourhood": {
            "type": "string"
          },
          "quarter": {
            "type": "string"
          },
          "section": {
            "type": "string"
          },
          "sector": {
            "type": "string"
          },
          "subdivision": {
            "type": "string"
          },
          "croft": {
            "type": "string"
          },
          "allotments": {
            "type": "string"
          },
          "residental": {
            "type": "string"
          },
          "farm": {
            "type": "string"
          },
          "farmyard": {
            "type": "string"
          },
          "industrial": {
            "type": "string"
          },
          "retail": {
            "type": "string"
          },
          "borough": {
            "type": "string"
          },
          "town": {
            "type": "string"
          },
          "township": {
            "type": "string"
          },
          "village": {
            "type": "string"
          },
          "hamlet": {
            "type": "string"
          },
          "locality": {
            "type": "string"
          },
          "isolated_dwelling": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "road": {
            "type": "string"
          },
          "footway": {
            "type": "string"
          },
          "pedestrian": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "housenumber": {
            "type": "string"
          },
          "house_number": {
            "type": "string"
          },
          "house_name": {
            "type": "string"
          },
          "old_name": {
            "type": "string"
          },
          "other": {
            "type": "string"
          },
          "formatted": {
            "type": "string"
          },
          "address_line1": {
            "type": "string"
          },
          "address_line2": {
            "type": "string"
          },
          "unlocode": {
            "type": "string"
          },
          "iso3166_2": {
            "type": "string"
          },
          "iso3166_2_sublevel": {
            "type": "string"
          },
          "iso3166_sublevel": {
            "type": "string"
          },
          "plus_code": {
            "type": "string"
          },
          "plus_code_short": {
            "type": "string"
          },
          "postcodes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "other_names": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "lon": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "lat": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          "parent_as_place_id": {
            "type": "boolean"
          },
          "timezone": {
            "$ref": "#/components/schemas/BoundariesTimezoneOutput"
          },
          "population": {
            "oneOf": [
              {
                "type": "number"
              },
              {
                "$ref": "#/components/schemas/BoundariesWikiPopulation"
              }
            ]
          },
          "distance": {
            "type": "number"
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "details": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "datasource": {
            "$ref": "#/components/schemas/BoundariesPlacesDatasource"
          },
          "mappedTo": {
            "type": "object",
            "properties": {
              "lon": {
                "type": "number",
                "minimum": -180,
                "maximum": 180
              },
              "lat": {
                "type": "number",
                "minimum": -90,
                "maximum": 90
              }
            }
          },
          "place_id": {
            "type": "string",
            "minLength": 3,
            "maxLength": 2048
          },
          "website": {
            "type": "string"
          },
          "opening_hours": {
            "type": "string"
          },
          "opening_hours_covid19": {
            "type": "string"
          },
          "brand": {
            "type": "string"
          },
          "operator": {
            "type": "string"
          },
          "branch": {
            "type": "string"
          },
          "network": {
            "type": "string"
          },
          "owner": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "craft": {
            "type": "string"
          },
          "ref": {
            "type": "string"
          },
          "int_ref": {
            "type": "string"
          },
          "ele": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "water_source": {
            "type": "string"
          },
          "website_other": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "website_international": {
            "$ref": "#/components/schemas/BoundariesStringMap"
          },
          "description_international": {
            "$ref": "#/components/schemas/BoundariesStringMap"
          },
          "name_international": {
            "$ref": "#/components/schemas/BoundariesStringMap"
          },
          "cuisine_international": {
            "$ref": "#/components/schemas/BoundariesStringMap"
          },
          "ref_other": {
            "$ref": "#/components/schemas/BoundariesStringMap"
          },
          "disused": {
            "type": "boolean"
          },
          "commercial": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
              }
            ]
          },
          "payment_options": {
            "$ref": "#/components/schemas/BoundariesBooleanMap"
          },
          "recycling_options": {
            "$ref": "#/components/schemas/BoundariesBooleanMap"
          },
          "fuel_options": {
            "$ref": "#/components/schemas/BoundariesBooleanMap"
          },
          "targeted_for": {
            "$ref": "#/components/schemas/BoundariesBooleanMap"
          },
          "socket_options": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
            }
          },
          "brand_details": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "operator_details": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "network_details": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "owner_details": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "name_other": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "contact": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "facilities": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "wiki_and_media": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "historic": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "heritage": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "artwork": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "accommodation": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "catering": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "parking": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "airport": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "power": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "way": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "building": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "place_of_worship": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "fire_hydrant": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "defibrilator": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "restrictions": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          },
          "production": {
            "$ref": "#/components/schemas/BoundariesPlaceDetailGroup"
          }
        }
      },
      "BoundariesGeoJsonGeometry": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/BoundariesPointGeometry"
          },
          {
            "$ref": "#/components/schemas/BoundariesLineStringGeometry"
          },
          {
            "$ref": "#/components/schemas/BoundariesPolygonGeometry"
          },
          {
            "$ref": "#/components/schemas/BoundariesMultiPointGeometry"
          },
          {
            "$ref": "#/components/schemas/BoundariesMultiLineStringGeometry"
          },
          {
            "$ref": "#/components/schemas/BoundariesMultiPolygonGeometry"
          },
          {
            "$ref": "#/components/schemas/BoundariesGeometryCollection"
          }
        ]
      },
      "BoundariesPointGeometry": {
        "type": "object",
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "const": "Point"
          },
          "coordinates": {
            "$ref": "#/components/schemas/BoundariesPosition"
          }
        }
      },
      "BoundariesLineStringGeometry": {
        "type": "object",
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "const": "LineString"
          },
          "coordinates": {
            "type": "array",
            "minItems": 2,
            "items": {
              "$ref": "#/components/schemas/BoundariesPosition"
            }
          }
        }
      },
      "BoundariesPolygonGeometry": {
        "type": "object",
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "const": "Polygon"
          },
          "coordinates": {
            "type": "array",
            "items": {
              "type": "array",
              "minItems": 4,
              "items": {
                "$ref": "#/components/schemas/BoundariesPosition"
              }
            }
          }
        }
      },
      "BoundariesMultiPointGeometry": {
        "type": "object",
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "const": "MultiPoint"
          },
          "coordinates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BoundariesPosition"
            }
          }
        }
      },
      "BoundariesMultiLineStringGeometry": {
        "type": "object",
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "const": "MultiLineString"
          },
          "coordinates": {
            "type": "array",
            "items": {
              "type": "array",
              "minItems": 2,
              "items": {
                "$ref": "#/components/schemas/BoundariesPosition"
              }
            }
          }
        }
      },
      "BoundariesMultiPolygonGeometry": {
        "type": "object",
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "const": "MultiPolygon"
          },
          "coordinates": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "array",
                "minItems": 4,
                "items": {
                  "$ref": "#/components/schemas/BoundariesPosition"
                }
              }
            }
          }
        }
      },
      "BoundariesGeometryCollection": {
        "type": "object",
        "required": [
          "type",
          "geometries"
        ],
        "properties": {
          "type": {
            "const": "GeometryCollection"
          },
          "geometries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BoundariesGeoJsonGeometry"
            }
          }
        }
      },
      "BoundariesPosition": {
        "type": "array",
        "minItems": 2,
        "maxItems": 3,
        "prefixItems": [
          {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          {
            "type": "number"
          }
        ],
        "items": false
      },
      "GeometryFeatureCollection": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "type",
          "features"
        ],
        "properties": {
          "type": {
            "const": "FeatureCollection"
          },
          "features": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GeometryFeature"
            }
          }
        }
      },
      "GeometryFeature": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "type",
          "properties",
          "geometry"
        ],
        "properties": {
          "type": {
            "const": "Feature"
          },
          "properties": {
            "$ref": "#/components/schemas/GeometryGeometryProperties"
          },
          "geometry": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/GeometryPointGeometry"
              },
              {
                "$ref": "#/components/schemas/GeometryGenericGeometry"
              },
              {
                "$ref": "#/components/schemas/GeometryGeometryCollection"
              }
            ]
          },
          "bbox": {
            "type": "array",
            "minItems": 4,
            "maxItems": 6,
            "items": {
              "type": "number"
            }
          }
        }
      },
      "GeometryPointGeometry": {
        "type": "object",
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "const": "Point"
          },
          "coordinates": {
            "$ref": "#/components/schemas/GeometryPosition"
          }
        }
      },
      "GeometryGenericGeometry": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "type",
          "coordinates"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "LineString",
              "Polygon",
              "MultiPoint",
              "MultiLineString",
              "MultiPolygon"
            ]
          },
          "coordinates": {
            "type": "array"
          }
        }
      },
      "GeometryGeometryCollection": {
        "type": "object",
        "required": [
          "type",
          "geometries"
        ],
        "properties": {
          "type": {
            "const": "GeometryCollection"
          },
          "geometries": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/GeometryPointGeometry"
                },
                {
                  "$ref": "#/components/schemas/GeometryGenericGeometry"
                },
                {
                  "$ref": "#/components/schemas/GeometryGeometryCollection"
                }
              ]
            }
          }
        }
      },
      "GeometryPosition": {
        "type": "array",
        "minItems": 2,
        "maxItems": 3,
        "prefixItems": [
          {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          {
            "type": "number"
          }
        ],
        "items": false
      },
      "GeometryGeometryProperties": {
        "type": "object",
        "additionalProperties": true
      },
      "GeometryGeoJsonInput": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/GeometryFeatureCollection"
          },
          {
            "$ref": "#/components/schemas/GeometryFeature"
          },
          {
            "$ref": "#/components/schemas/GeometryGenericGeometry"
          },
          {
            "$ref": "#/components/schemas/GeometryPointGeometry"
          }
        ]
      },
      "GeometryStoredGeometryResponse": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[a-f0-9]{32}$",
            "description": "Reusable identifier accepted by the GET operation."
          }
        }
      },
      "GeometryGatewayError": {
        "type": "object",
        "required": [
          "statusCode",
          "error",
          "message"
        ],
        "properties": {
          "statusCode": {
            "type": "integer",
            "description": "HTTP status code returned by the API gateway."
          },
          "error": {
            "type": "string",
            "description": "Standard HTTP error name."
          },
          "message": {
            "type": "string",
            "description": "Human-readable explanation of the error."
          }
        }
      },
      "BatchPendingResponse": {
        "type": "object",
        "required": [
          "id",
          "status"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[a-f0-9]{32}$",
            "description": "Batch job identifier."
          },
          "status": {
            "const": "pending",
            "description": "The batch job has been accepted and is still processing."
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "URL for polling the batch job. Query-authenticated submissions include the API key in this URL for backward compatibility. Header-authenticated clients receive a keyless URL and must authenticate polling requests with x-api-key; the polling endpoint accepts both documented authentication methods."
          }
        }
      },
      "BatchResultItem": {
        "type": "object",
        "required": [
          "result"
        ],
        "properties": {
          "id": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              }
            ],
            "description": "Optional caller-supplied input identifier."
          },
          "params": {
            "type": "object",
            "additionalProperties": true,
            "description": "Parameters used for this input."
          },
          "body": {
            "type": "object",
            "additionalProperties": true,
            "description": "Request body used for this input."
          },
          "result": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/GeocodingTextGeocodingFeatureCollection"
              },
              {
                "$ref": "#/components/schemas/GeocodingReverseGeocodingFeatureCollection"
              },
              {
                "$ref": "#/components/schemas/GeocodingGeocodingJsonResponse"
              },
              {
                "type": "string",
                "description": "A text result, such as an XML response requested from geocoding or routing."
              },
              {
                "$ref": "#/components/schemas/PlacesFeatureCollection"
              },
              {
                "$ref": "#/components/schemas/IsolineFeatureCollection"
              },
              {
                "$ref": "#/components/schemas/RoutingFeatureCollection"
              },
              {
                "$ref": "#/components/schemas/RoutingJsonResponse"
              },
              {
                "$ref": "#/components/schemas/MapMatchingFeatureCollection"
              },
              {
                "$ref": "#/components/schemas/RoutePlannerResponse"
              },
              {
                "$ref": "#/components/schemas/RouteMatrixResponse"
              },
              {
                "$ref": "#/components/schemas/IpIpGeolocationResponse"
              },
              {
                "$ref": "#/components/schemas/PlaceInfoFeatureCollection"
              },
              {
                "$ref": "#/components/schemas/PlaceDetailsPlaceDetailsFeatureCollection"
              },
              {
                "$ref": "#/components/schemas/BoundariesBoundaryFeatureCollection"
              },
              {
                "$ref": "#/components/schemas/GeometryFeatureCollection"
              },
              {
                "$ref": "#/components/schemas/BatchItemError"
              }
            ]
          }
        }
      },
      "BatchCompletedResponse": {
        "type": "object",
        "required": [
          "api",
          "id",
          "results"
        ],
        "properties": {
          "api": {
            "type": "string",
            "enum": [
              "/v1/isoline",
              "/v1/routing",
              "/v1/places",
              "/v1/geometry",
              "/v1/geocode/search",
              "/v1/geocode/reverse",
              "/v1/mapmatching",
              "/v2/places",
              "/v2/place-info",
              "/v2/place-details",
              "/v1/ipinfo",
              "/v1/routeplanner",
              "/v1/routematrix",
              "/v1/boundaries/part-of",
              "/v1/boundaries/consists-of",
              "/v1/boundaries/near-by",
              "/v1/boundaries/parent-of"
            ]
          },
          "params": {
            "type": "object",
            "additionalProperties": true,
            "description": "Request-level parameters applied to the batch."
          },
          "body": {
            "type": "object",
            "additionalProperties": true,
            "description": "Request-level body applied to the batch."
          },
          "id": {
            "type": "string",
            "pattern": "^[a-f0-9]{32}$"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BatchResultItem"
            }
          }
        }
      },
      "BatchItemError": {
        "type": "object",
        "required": [
          "statusCode",
          "error",
          "message"
        ],
        "properties": {
          "statusCode": {
            "type": "integer"
          },
          "error": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      },
      "GatewayError": {
        "type": "object",
        "required": [
          "statusCode",
          "error",
          "message"
        ],
        "properties": {
          "statusCode": {
            "type": "integer",
            "description": "HTTP status code returned by the gateway."
          },
          "error": {
            "type": "string",
            "description": "Standard HTTP error name."
          },
          "message": {
            "type": "string",
            "description": "Human-readable explanation of the error."
          }
        }
      },
      "BatchNotFoundError": {
        "type": "object",
        "required": [
          "statusCode",
          "error"
        ],
        "properties": {
          "statusCode": {
            "type": "integer",
            "const": 404
          },
          "error": {
            "type": "string",
            "const": "Not Found"
          },
          "message": {
            "type": "string",
            "description": "Optional explanation returned by the batch service."
          }
        }
      }
    },
    "securitySchemes": {
      "ApiKeyInQuery": {
        "type": "apiKey",
        "in": "query",
        "name": "apiKey",
        "description": "Geoapify API key query parameter. Recommended authentication method for public APIs. API keys in URLs can be logged; use x-api-key for server-to-server clients."
      },
      "ApiKeyInHeader": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key",
        "description": "Geoapify API key header. Supported as an alternative authentication method for public APIs."
      }
    }
  },
  "security": [
    {
      "ApiKeyInQuery": []
    },
    {
      "ApiKeyInHeader": []
    }
  ]
}
