From 22ec782a11d930439f7dd596eaad9f437d65616b Mon Sep 17 00:00:00 2001 From: Alessio Cimarelli Date: Wed, 22 Nov 2023 14:45:30 +0100 Subject: [PATCH] fix: info description and pre-commit --- .githooks/pre-commit | 2 +- docs/nominatim.openapi.json | 2 +- docs/nominatim.openapi.json.checksum | 2 +- src/nominatim.openapi.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.githooks/pre-commit b/.githooks/pre-commit index 3bf890b..76f97f7 100755 --- a/.githooks/pre-commit +++ b/.githooks/pre-commit @@ -56,5 +56,5 @@ echo "Checksum ($OUTPUT_DIR/$OAS_FILE.checksum): $SHA_PREFIX-$SHA_OAS_CHECKSUM" echo -n "$SHA_PREFIX-$SHA_OAS_CHECKSUM" > $OUTPUT_DIR/$OAS_FILE.checksum # Stage new checksums -git add $OUTPUT_DIR/$OAS_FILE.checksum +git add $OUTPUT_DIR/$OAS_FILE $OUTPUT_DIR/$OAS_FILE.checksum exit 0 diff --git a/docs/nominatim.openapi.json b/docs/nominatim.openapi.json index 3ce239a..36ce7d1 100644 --- a/docs/nominatim.openapi.json +++ b/docs/nominatim.openapi.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"OpenStreetMap Nominatim API","version":"4.3.2","description":"OpenStreetMap Nominatim API\n\nNeed some help?\n[nominatim.org](https://nominatim.org/)","termsOfService":"https://operations.osmfoundation.org/policies/nominatim/","contact":{"url":"https://github.com/osm-search/Nominatim/issues"}},"servers":[{"url":"https://nominatim.openstreetmap.org"},{"url":"http://localhost:{port}","variables":{"port":{"default":"80"}}},{"url":"{protocol}://{host}:{port}{path}","variables":{"protocol":{"default":"https"},"host":{"default":"nominatim.openstreetmap.org"},"port":{"default":"443"},"path":{"default":""}}}],"paths":{"/search":{"get":{"summary":"Look up a location from a textual description or address","operationId":"search","description":"The search API allows you to look up a location from a textual description or address. Nominatim supports structured and free-form search queries. The search query may also contain special phrases which are translated into specific OpenStreetMap (OSM) tags. This can be used to narrow down the kind of objects to be returned.","parameters":[{"schema":{"type":"string"},"in":"query","name":"q","description":"Free-form query string to search for. Free-form queries are processed first left-to-right and then right-to-left if that fails. Commas are optional, but improve performance by reducing the complexity of the search. The free-form may also contain special phrases to describe the type of place to be returned or a coordinate to search close to a position."},{"schema":{"type":"string"},"in":"query","name":"amenity","description":"Name and/or type of POI. Do not combine with `q=` parameter."},{"schema":{"type":"string"},"in":"query","name":"street","description":"Name of street with optional housenumber. Do not combine with `q=` parameter."},{"schema":{"type":"string"},"in":"query","name":"city","description":"Name of city. Do not combine with `q=` parameter."},{"schema":{"type":"string"},"in":"query","name":"county","description":"Name of county. Do not combine with `q=` parameter."},{"schema":{"type":"string"},"in":"query","name":"state","description":"Name of state. Do not combine with `q=` parameter."},{"schema":{"type":"string"},"in":"query","name":"country","description":"Name of country. Do not combine with `q=` parameter."},{"schema":{"type":"string"},"in":"query","name":"postalcode","description":"Postal code. Do not combine with `q=` parameter."},{"schema":{"type":"string","enum":["xml","json","jsonv2","geojson","geocodejson"],"default":"geocodejson"},"in":"query","name":"format","description":"Format of response. See [Place Output Formats](https://nominatim.org/release-docs/develop/api/Output/) for details on each format. If not specified, it is equal to `jsonv2`."},{"schema":{"type":"string"},"in":"query","name":"json_callback","description":"Wrap JSON output in a callback function (JSONP) i.e. (). Only has an effect for JSON output formats."},{"schema":{"type":"integer","maximum":40,"minimum":1},"in":"query","name":"limit","description":"Limit the maximum number of returned results. Nominatim may decide to return less results than given, if additional results do not sufficiently match the query. If not specified, it is equal to `10`."},{"schema":{"type":"integer","maximum":1,"minimum":0,"default":1},"in":"query","name":"addressdetails","description":"Include a breakdown of the address into elements. If not specified, it is equal to `0`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"extratags","description":"Include additional information in the result if available, e.g. wikipedia link, opening hours. If not specified, it is equal to `0`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"namedetails","description":"Include a full list of names for the result. These may include language variants, older names, references and brand. If not specified, it is equal to `0`."},{"schema":{"type":"string"},"in":"query","name":"accept-language","description":"Preferred language order for showing search results. This may either be a simple comma-separated list of language codes or have the same format as the [Accept-Language HTTP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language). If not specified, it is equal to the content of Accept-Language HTTP header (browsers send the currently chosen browser language, command-line tools usually don't send any Accept-Language header)."},{"schema":{"type":"string","pattern":"^[a-zA-Z]{2}$"},"in":"query","name":"countrycodes","description":"Limit search results to one or more countries. The country code must be the [ISO 3166-1alpha2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code of the country, e.g. gb for the United Kingdom, de for Germany. Each place in Nominatim is assigned to one country code based on OSM country boundaries. In rare cases a place may not be in any country at all, for example, when it is in international waters. These places are also excluded when the filter is set."},{"schema":{"type":"string"},"in":"query","name":"layer","description":"The layer filter allows to select places by themes, a comma-separated list of `address` (all places that make up an address: address points with house numbers, streets, inhabited places like suburbs, villages, cities, states, and administrative boundaries), `poi` (all points of interest like restaurants, shops, hotels but also less obvious features like recycling bins, guideposts or benches), `railway` (infrastructures like tracks), `natural` (feautures like rivers, lakes and mountains), `manmade` (catch-all for features not covered by the other layers)."},{"schema":{"type":"string","enum":["country","state","city","settlement"]},"in":"query","name":"featureType","description":"The featureType allows to have a more fine-grained selection for places from the address layer. Results can be restricted to places that make up the 'state', 'country' or 'city' part of an address. A featureType of settlement selects any human inhabited feature from 'state' down to 'neighbourhood'. If not specified, results are automatically restricted to the address layer."},{"schema":{"type":"string"},"in":"query","name":"exclude_place_ids","description":"If you do not want certain OSM objects to appear in the search result, give a comma separated list of the `place_ids` you want to skip. This can be used to retrieve additional search results. For example, if a previous query only returned a few results, then including those here would cause the search to return other, less accurate, matches (if possible)."},{"schema":{"type":"string"},"in":"query","name":"viewbox","description":"The preferred area to find search results. Any two corner points of the box are accepted as long as they span a real box. In `viewbox=,,,` x is longitude, y is latitude."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"bounded","description":"When a viewbox is given, restrict the result to items contained within that viewbox (see above). When `viewbox` and `bounded=1` are given, an amenity only search is allowed. Give the special keyword for the amenity in square brackets, e.g. `[pub]` and a selection of objects of this type is returned. There is no guarantee that the result is complete."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_geojson","description":"Output geometry of results as a GeoJSON."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_kml","description":"Output geometry of results as a KML."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_svg","description":"Output geometry of results as a SVG."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_text","description":"Output geometry of results as a WKT."},{"schema":{"type":"number","minimum":0},"in":"query","name":"polygon_threshold","description":"When one of the polygon_* outputs is chosen, return a simplified version of the output geometry. The parameter is the tolerance in degrees with which the geometry may differ from the original geometry. Topology is preserved in the result."},{"schema":{"type":"string","format":"email"},"in":"query","name":"email","description":"If you are making large numbers of request please include an appropriate email address to identify your requests. See Nominatim's [Usage Policy](https://operations.osmfoundation.org/policies/nominatim/) for more details."},{"schema":{"type":"integer","default":1,"maximum":1,"minimum":0},"in":"query","name":"dedupe","description":"Sometimes you have several objects in OSM identifying the same place or object in reality. The simplest case is a street being split into many different OSM ways due to different characteristics. Nominatim will attempt to detect such duplicates and only return one match unless this parameter is set to 0. If not specified, it is equal to `0`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"debug","description":"Output assorted developer debug information. Data on internals of Nominatim's Search Loop logic, and SQL queries. The output is (rough) HTML format. This overrides the specified machine readable format. If not specified, it is equal to `0`."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OSMGeocodeJson"}}}}},"tags":["Search"]}},"/reverse":{"get":{"summary":"Generate an address from a coordinate given as latitude and longitude","operationId":"reverse","description":"The reverse geocoding API returns exactly one result or an error when the coordinate is in an area with no OSM data coverage. It does not exactly compute the address for the coordinate it receives. It works by finding the closest suitable OSM object and returning its address information. This may occasionally lead to unexpected results. First of all, Nominatim only includes OSM objects in its index that are suitable for searching. Small, unnamed paths for example are missing from the database and can therefore not be used for reverse geocoding either. The other issue to be aware of is that the closest OSM object may not always have a similar enough address to the coordinate you were requesting. For example, in dense city areas it may belong to a completely different street.","parameters":[{"schema":{"type":"number","minimum":0},"in":"query","name":"lat","description":"Latitude of a coordinate in WGS84 projection."},{"schema":{"type":"number","minimum":0},"in":"query","name":"lon","description":"Longitude of a coordinate in WGS84 projection."},{"schema":{"type":"string","enum":["xml","json","jsonv2","geojson","geocodejson"],"default":"geocodejson"},"in":"query","name":"format","description":"Format of response. See [Place Output Formats](https://nominatim.org/release-docs/develop/api/Output/) for details on each format. If not specified, it is equal to `xml`."},{"schema":{"type":"string"},"in":"query","name":"json_callback","description":"Wrap JSON output in a callback function (JSONP) i.e. (). Only has an effect for JSON output formats."},{"schema":{"type":"integer","maximum":1,"minimum":0,"default":1},"in":"query","name":"addressdetails","description":"Include a breakdown of the address into elements. If not specified, it is equal to `1`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"extratags","description":"Include additional information in the result if available, e.g. wikipedia link, opening hours. If not specified, it is equal to `0`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"namedetails","description":"Include a full list of names for the result. These may include language variants, older names, references and brand. If not specified, it is equal to `0`."},{"schema":{"type":"string"},"in":"query","name":"accept-language","description":"Preferred language order for showing search results. This may either be a simple comma-separated list of language codes or have the same format as the [Accept-Language HTTP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language). If not specified, it is equal to the content of Accept-Language HTTP header (browsers send the currently chosen browser language, command-line tools usually don't send any Accept-Language header)."},{"schema":{"type":"integer","minimum":0,"maximum":18,"default":18},"in":"query","name":"zoom","description":"Level of detail required for the address. This is a number that corresponds roughly to the zoom level used in XYZ tile sources in frameworks like Leaflet.js, Openlayers etc. In terms of address details the zoom levels are as follows: 3) country, 5) state, 8) county, 10) city, 12) town / borough, 13) village / suburb, 14) neighbourhood, 15) any settlement, 16) major streets, 17) major and minor streets, 18) building."},{"schema":{"type":"string"},"in":"query","name":"layer","description":"The layer filter allows to select places by themes, a comma-separated list of `address` (all places that make up an address: address points with house numbers, streets, inhabited places like suburbs, villages, cities, states, and administrative boundaries), `poi` (all points of interest like restaurants, shops, hotels but also less obvious features like recycling bins, guideposts or benches), `railway` (infrastructures like tracks), `natural` (feautures like rivers, lakes and mountains), `manmade` (catch-all for features not covered by the other layers)."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_geojson","description":"Output geometry of results as a GeoJSON."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_kml","description":"Output geometry of results as a KML."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_svg","description":"Output geometry of results as a SVG."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_text","description":"Output geometry of results as a WKT."},{"schema":{"type":"number","minimum":0},"in":"query","name":"polygon_threshold","description":"When one of the polygon_* outputs is chosen, return a simplified version of the output geometry. The parameter is the tolerance in degrees with which the geometry may differ from the original geometry. Topology is preserved in the result."},{"schema":{"type":"string","format":"email"},"in":"query","name":"email","description":"If you are making large numbers of request please include an appropriate email address to identify your requests. See Nominatim's [Usage Policy](https://operations.osmfoundation.org/policies/nominatim/) for more details."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"debug","description":"Output assorted developer debug information. Data on internals of Nominatim's Search Loop logic, and SQL queries. The output is (rough) HTML format. This overrides the specified machine readable format."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OSMGeocodeJson"}}}}},"tags":["Reverse"]}},"/lookup":{"get":{"summary":"Query the address and other details of one or multiple OSM objects like node, way or relation","operationId":"lookup","description":"The lookup API allows to query the address and other details of one or multiple OSM objects like node, way or relation.","parameters":[{"schema":{"type":"string","pattern":"^([RWN][0-9]+,?)+$"},"in":"query","required":true,"name":"osm_ids","description":"Comma-separated list of OSM ids each prefixed with its type, one of node (N), way (W) or relation (R). Up to 50 ids can be queried at the same time."},{"schema":{"type":"string","enum":["xml","json","jsonv2","geojson","geocodejson"],"default":"geocodejson"},"in":"query","name":"format","description":"Format of response. See [Place Output Formats](https://nominatim.org/release-docs/develop/api/Output/) for details on each format. If not specified, it is equal to `jsonv2`."},{"schema":{"type":"string"},"in":"query","name":"json_callback","description":"Wrap JSON output in a callback function (JSONP) i.e. (). Only has an effect for JSON output formats."},{"schema":{"type":"integer","maximum":1,"minimum":0,"default":1},"in":"query","name":"addressdetails","description":"Include a breakdown of the address into elements. If not specified, it is equal to `0`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"extratags","description":"Include additional information in the result if available, e.g. wikipedia link, opening hours. If not specified, it is equal to `0`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"namedetails","description":"Include a full list of names for the result. These may include language variants, older names, references and brand. If not specified, it is equal to `0`."},{"schema":{"type":"string"},"in":"query","name":"accept-language","description":"Preferred language order for showing search results. This may either be a simple comma-separated list of language codes or have the same format as the [Accept-Language HTTP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language). If not specified, it is equal to the content of Accept-Language HTTP header (browsers send the currently chosen browser language, command-line tools usually don't send any Accept-Language header)."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_geojson","description":"Output geometry of results as a GeoJSON."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_kml","description":"Output geometry of results as a KML."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_svg","description":"Output geometry of results as a SVG."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_text","description":"Output geometry of results as a WKT."},{"schema":{"type":"number","minimum":0},"in":"query","name":"polygon_threshold","description":"When one of the polygon_* outputs is chosen, return a simplified version of the output geometry. The parameter is the tolerance in degrees with which the geometry may differ from the original geometry. Topology is preserved in the result."},{"schema":{"type":"string","format":"email"},"in":"query","name":"email","description":"If you are making large numbers of request please include an appropriate email address to identify your requests. See Nominatim's [Usage Policy](https://operations.osmfoundation.org/policies/nominatim/) for more details."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"debug","description":"Output assorted developer debug information. Data on internals of Nominatim's Search Loop logic, and SQL queries. The output is (rough) HTML format. This overrides the specified machine readable format."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OSMGeocodeJson"}}}}}},"tags":["Lookup"]}},"/status":{"get":{"summary":"Report on the state of the service and database","operationId":"status","description":"Report on the state of the service and database. Useful for checking if the service is up and running. The JSON output also reports when the database was last updated.","parameters":[{"schema":{"type":"string","enum":["text","json"],"default":"json"},"in":"query","name":"format","description":"Selects the output format. See [Status Output Formats](https://nominatim.org/release-docs/develop/api/Status/#output) for details on each format. If not specified, it is equal to `text`."}],"responses":{"200":{"description":"If `format` is `json` always returns a HTTP code 200, when the status call could be executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusResponse"}}}}},"tags":["Status"]}},"/details":{"get":{"summary":"Show all details about a single place saved in the database","operationId":"details","description":"This API endpoint is meant for visual inspection of the data in the database, mainly together with [Nominatim UI](https://github.com/osm-search/nominatim-ui/). The parameters of the endpoint and the output may change occasionally between versions of Nominatim. Do not rely on the output in scripts or applications.","parameters":[{"schema":{"$ref":"#/components/schemas/OSMType"},"in":"query","required":true,"name":"osmtype","description":"The type is required and it is one of node (N), way (W) or relation (R)."},{"schema":{"type":"integer","minimum":0},"in":"query","required":true,"name":"osmid","description":"The id is required and it must be a number."},{"schema":{"type":"string"},"in":"query","name":"class","description":"The class parameter is optional and allows to distinguish between entries, when the corresponding OSM object has more than one main tag. For example, when a place is tagged with tourism=hotel and amenity=restaurant, there will be two place entries in Nominatim, one for a restaurant, one for a hotel. You need to specify class=tourism or class=amentity to get exactly the one you want. If there are multiple places in the database but the class parameter is left out, then one of the places will be chosen at random and displayed."},{"schema":{"type":"integer","minimum":0},"in":"query","name":"place_id","description":"Place IDs are assigned sequentially during Nominatim data import. The ID for a place is different between Nominatim installation (servers) and changes when data gets reimported. Therefore it cannot be used as a permanent id and shouldn't be used in bug reports."},{"schema":{"type":"string","enum":["json"],"default":"json"},"in":"query","name":"format","description":"Format of response. See [Place Output Formats](https://nominatim.org/release-docs/develop/api/Output/) for details on each format. If not specified, it is equal to `json`."},{"schema":{"type":"string"},"in":"query","name":"json_callback","description":"Wrap JSON output in a callback function (JSONP) i.e. (). Only has an effect for JSON output formats."},{"schema":{"type":"integer","maximum":1,"minimum":0,"default":1},"in":"query","name":"addressdetails","description":"Include a breakdown of the address into elements. If not specified, it is equal to `0`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"keywords","description":"Include a list of name keywords and address keywords in the result. If not specified, it is equal to `0`."},{"schema":{"type":"integer","maximum":1,"minimum":0,"default":1},"in":"query","name":"linkedplaces","description":"Include details of places that are linked with this one. Places get linked together when they are different forms of the same physical object. Nominatim links two kinds of objects together: place nodes get linked with the corresponding administrative boundaries. Waterway relations get linked together with their members. If not specified, it is equal to `1`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"hierarchy","description":"Include details of places lower in the address hierarchy. If not specified, it is equal to `0`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"group_hierarchy","description":"The output of the address hierarchy will be grouped by type. If not specified, it is equal to `0`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_geojson","description":"Include geometry of result as a GeoJSON. If not specified, it is equal to `0`."},{"schema":{"type":"string"},"in":"query","name":"accept-language","description":"Preferred language order for showing search results. This may either be a simple comma-separated list of language codes or have the same format as the [Accept-Language HTTP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language). If not specified, it is equal to the content of Accept-Language HTTP header (browsers send the currently chosen browser language, command-line tools usually don't send any Accept-Language header)."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailsResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Debug"]}},"/deletable":{"get":{"summary":"List objects that have been deleted in OSM but are held back in Nominatim in case the deletion was accidental","operationId":"deletable","description":"Redirect to https://nominatim.openstreetmap.org/ui/deletable.html.","responses":{"302":{"description":"Redirect","headers":{"location":{"schema":{"type":"string","const":"https://nominatim.openstreetmap.org/ui/deletable.html"}}}}},"tags":["Debug"]}},"/polygons":{"get":{"summary":"List of broken polygons detected by Nominatim","operationId":"polygons","description":"Redirect to https://nominatim.openstreetmap.org/ui/polygons.html.","responses":{"302":{"description":"Redirect","headers":{"location":{"schema":{"type":"string","const":"https://nominatim.openstreetmap.org/ui/polygons.html"}}}}},"tags":["Debug"]}}},"components":{"schemas":{"OSMGeocodeJson":{"allOf":[{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://geocoders.github.io/geocodejson-spec/draft/geocodejson.schema.json","title":"GeocodeJSON Schema","description":"GeocodeJSON is an extension of the GeoJSON format and it is an attempt to create a standard for handling geocoding results.","allOf":[{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://geojson.org/schema/GeoJSON.json","title":"GeoJSON","oneOf":[{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON GeometryCollection","type":"object","required":["type","geometries"],"properties":{"type":{"type":"string","enum":["GeometryCollection"]},"geometries":{"type":"array","items":{"oneOf":[{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Feature","type":"object","required":["type","properties","geometry"],"properties":{"type":{"type":"string","enum":["Feature"]},"id":{"oneOf":[{"type":"number"},{"type":"string"}]},"properties":{"oneOf":[{"type":"null"},{"type":"object"}]},"geometry":{"oneOf":[{"type":"null"},{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON GeometryCollection","type":"object","required":["type","geometries"],"properties":{"type":{"type":"string","enum":["GeometryCollection"]},"geometries":{"type":"array","items":{"oneOf":[{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON FeatureCollection","type":"object","required":["type","features"],"properties":{"type":{"type":"string","enum":["FeatureCollection"]},"features":{"type":"array","items":{"title":"GeoJSON Feature","type":"object","required":["type","properties","geometry"],"properties":{"type":{"type":"string","enum":["Feature"]},"id":{"oneOf":[{"type":"number"},{"type":"string"}]},"properties":{"oneOf":[{"type":"null"},{"type":"object"}]},"geometry":{"oneOf":[{"type":"null"},{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON GeometryCollection","type":"object","required":["type","geometries"],"properties":{"type":{"type":"string","enum":["GeometryCollection"]},"geometries":{"type":"array","items":{"oneOf":[{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]},{"type":"object","description":"GeocodeJSON extension of GeoJSON Feature Collection","properties":{"type":{"const":"FeatureCollection","description":"REQUIRED. GeocodeJSON result is a FeatureCollection."},"geocoding":{"type":"object","description":"REQUIRED. Namespace.","properties":{"version":{"description":"A semver.org compliant version number. Describes the version of the GeocodeJSON spec that is implemented by this instance.","$schema":"http://json-schema.org/draft-07/schema#","$id":"https://semver.org/semver.schema.json","type":"string","pattern":"^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$","minLength":5,"maxLength":256,"examples":["0.1.0","1.0.0-beta.1","1.0.0-0.3.7","2.2.4"]},"licence":{"type":"string","description":"OPTIONAL. The licence of the data. In case of multiple sources, and then multiple licences, can be an object with one key by source.","examples":["ODbL"]},"attribution":{"type":"string","description":"OPTIONAL. The attribution of the data. In case of multiple sources, and then multiple attributions, can be an object with one key by source.","examples":["OpenStreetMap Contributors"]},"query":{"type":"string","description":"OPTIONAL. The query that has been issued to trigger the search.","examples":["24 allée de Bercy 75012 Paris"]}},"required":["version"]}},"required":["geocoding"]},{"type":"object","description":"GeocodeJSON extension of GeoJSON Feature","properties":{"features":{"type":"array","description":"REQUIRED. As per GeoJSON spec.","items":{"type":"object","description":"OPTIONAL. An array of feature objects.","properties":{"type":{"const":"Feature","description":"REQUIRED. As per GeoJSON spec."},"properties":{"type":"object","description":"REQUIRED. As per GeoJSON spec.","properties":{"geocoding":{"type":"object","description":"REQUIRED. Namespace.","properties":{"type":{"type":"string","description":"REQUIRED. One of house, street, locality, city, region, country.","examples":["house","street","district","city","county","state","country","locality"]},"accuracy":{"type":"number","minimum":0,"description":"OPTIONAL. Result accuracy, in meters.","examples":[20]},"label":{"type":"string","description":"RECOMMENDED. Suggested label for the result.","examples":["My Shoes Shop, 64 rue de Metz 59280 Armentières"]},"name":{"type":"string","description":"OPTIONAL. Name of the place.","examples":["My Shoes Shop"]},"housenumber":{"type":"string","description":"OPTIONAL. Housenumber of the place.","examples":["64"]},"street":{"type":"string","description":"OPTIONAL. Street of the place.","examples":["Rue de Metz"]},"locality":{"type":"string","description":"OPTIONAL. Locality of the place.","examples":["Les Clarons"]},"postcode":{"type":"string","description":"OPTIONAL. Postcode of the place.","examples":["59280"]},"city":{"type":"string","description":"OPTIONAL. City of the place.","examples":["Armentières"]},"district":{"type":"string","description":"OPTIONAL. District of the place."},"county":{"type":"string","description":"OPTIONAL. County of the place."},"state":{"type":"string","description":"OPTIONAL. State of the place."},"country":{"type":"string","description":"OPTIONAL. Country of the place.","examples":["France"]},"admin":{"type":"object","description":"OPTIONAL. Administratives boundaries the feature is included in, as defined in http://wiki.osm.org/wiki/Key:admin_level#admin_level.","patternProperties":{"^level[0-9]+$":{"type":"string"}}},"geohash":{"description":"OPTIONAL. Geohash encoding of coordinates (see http://geohash.org/site/tips.html).","$schema":"http://json-schema.org/draft-07/schema#","$id":"http://geohash.org/geohash.schema.json","type":"string","pattern":"^[0123456789bcdefghjkmnpqrstuvwxyz]+(:.+)?$","examples":["6gkzmg1w","6gkzwgjzn820","c216ne:Mt_Hood"]}},"required":["type"]}},"required":["geocoding"]}}}}}}]},{"type":"object","properties":{"features":{"type":"array","items":{"type":"object","properties":{"properties":{"type":"object","properties":{"geocoding":{"type":"object","properties":{"osm_type":{"type":"string","examples":["node","way","relation"]},"osm_id":{"type":"integer"},"osm_key":{"type":"string","examples":["boundary","highway","amenity"]},"osm_value":{"type":"string","examples":["residential","restaurant"]}}}}}}}}}}]},"StatusResponse":{"type":"object","properties":{"status":{"type":"integer","minimum":0,"example":[0,700]},"message":{"type":"string","example":["OK","Database connection failed"]},"data_updated":{"type":"string","format":"date-time"},"software_version":{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://semver.org/semver.schema.json","type":"string","description":"A semver.org compliant version number (see https://semver.org).","pattern":"^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$","minLength":5,"maxLength":256,"examples":["0.1.0","1.0.0-beta.1","1.0.0-0.3.7","2.2.4"]},"database_version":{"$ref":"#/components/schemas/StatusResponse/properties/software_version"}},"required":["status","message"]},"DetailsResponse":{"type":"object","properties":{"place_id":{"type":"integer","minimum":0},"parent_place_id":{"type":"integer","minimum":0},"osm_type":{"$ref":"#/components/schemas/OSMType"},"osm_id":{"type":"integer"},"category":{"type":"string"},"type":{"type":"string"},"admin_level":{"type":"integer","minimum":0},"localname":{"type":"string"},"names":{"type":"object","properties":{"name":{"type":"string"}}},"addresstags":{"type":"object"},"calculated_postcode":{"type":"string"},"country_code":{"type":"string","pattern":"^[a-zA-Z]{2}$"},"indexed_date":{"type":"string","format":"date-time"},"importance":{"type":"number","minimum":0},"calculated_importance":{"type":"number","minimum":0},"extratags":{"type":"object"},"rank_address":{"type":"integer","minimum":1},"rank_search":{"type":"integer","minimum":1},"isarea":{"type":"boolean"},"centroid":{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://geojson.org/schema/Point.json","title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},"geometry":{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://geojson.org/schema/GeoJSON.json","title":"GeoJSON","oneOf":[{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON GeometryCollection","type":"object","required":["type","geometries"],"properties":{"type":{"type":"string","enum":["GeometryCollection"]},"geometries":{"type":"array","items":{"oneOf":[{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Feature","type":"object","required":["type","properties","geometry"],"properties":{"type":{"type":"string","enum":["Feature"]},"id":{"oneOf":[{"type":"number"},{"type":"string"}]},"properties":{"oneOf":[{"type":"null"},{"type":"object"}]},"geometry":{"oneOf":[{"type":"null"},{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON GeometryCollection","type":"object","required":["type","geometries"],"properties":{"type":{"type":"string","enum":["GeometryCollection"]},"geometries":{"type":"array","items":{"oneOf":[{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON FeatureCollection","type":"object","required":["type","features"],"properties":{"type":{"type":"string","enum":["FeatureCollection"]},"features":{"type":"array","items":{"title":"GeoJSON Feature","type":"object","required":["type","properties","geometry"],"properties":{"type":{"type":"string","enum":["Feature"]},"id":{"oneOf":[{"type":"number"},{"type":"string"}]},"properties":{"oneOf":[{"type":"null"},{"type":"object"}]},"geometry":{"oneOf":[{"type":"null"},{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON GeometryCollection","type":"object","required":["type","geometries"],"properties":{"type":{"type":"string","enum":["GeometryCollection"]},"geometries":{"type":"array","items":{"oneOf":[{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]},"address":{"type":"array","items":{"type":"object","properties":{"localname":{"type":"string"},"place_id":{"type":"integer","minimum":0},"osm_id":{"type":"integer"},"osm_type":{"$ref":"#/components/schemas/OSMType"},"class":{"type":"string"},"type":{"type":"string"},"admin_level":{"type":"integer","minimum":0},"rank_address":{"type":"integer","minimum":1},"distance":{"type":"number","minimum":0},"isaddress":{"type":"boolean"}}}}}},"ErrorResponse":{"type":"object","properties":{"code":{"type":"integer","minimum":0},"message":{"type":"string"}}},"OSMType":{"type":"string","enum":["N","W","R"]}}}} \ No newline at end of file +{"openapi":"3.1.0","info":{"title":"OpenStreetMap Nominatim API","version":"4.3.2","description":"Nominatim (from the Latin, 'by name') is a tool to search OSM data by name and address and to generate synthetic addresses of OSM points (reverse geocoding). It has also limited capability to search features by their type (pubs, hotels, churches, etc).\n\nNeed some help?\n[nominatim.org](https://nominatim.org/)","termsOfService":"https://operations.osmfoundation.org/policies/nominatim/","contact":{"url":"https://github.com/osm-search/Nominatim/issues"}},"servers":[{"url":"https://nominatim.openstreetmap.org"},{"url":"http://localhost:{port}","variables":{"port":{"default":"80"}}},{"url":"{protocol}://{host}:{port}{path}","variables":{"protocol":{"default":"https"},"host":{"default":"nominatim.openstreetmap.org"},"port":{"default":"443"},"path":{"default":""}}}],"paths":{"/search":{"get":{"summary":"Look up a location from a textual description or address","operationId":"search","description":"The search API allows you to look up a location from a textual description or address. Nominatim supports structured and free-form search queries. The search query may also contain special phrases which are translated into specific OpenStreetMap (OSM) tags. This can be used to narrow down the kind of objects to be returned.","parameters":[{"schema":{"type":"string"},"in":"query","name":"q","description":"Free-form query string to search for. Free-form queries are processed first left-to-right and then right-to-left if that fails. Commas are optional, but improve performance by reducing the complexity of the search. The free-form may also contain special phrases to describe the type of place to be returned or a coordinate to search close to a position."},{"schema":{"type":"string"},"in":"query","name":"amenity","description":"Name and/or type of POI. Do not combine with `q=` parameter."},{"schema":{"type":"string"},"in":"query","name":"street","description":"Name of street with optional housenumber. Do not combine with `q=` parameter."},{"schema":{"type":"string"},"in":"query","name":"city","description":"Name of city. Do not combine with `q=` parameter."},{"schema":{"type":"string"},"in":"query","name":"county","description":"Name of county. Do not combine with `q=` parameter."},{"schema":{"type":"string"},"in":"query","name":"state","description":"Name of state. Do not combine with `q=` parameter."},{"schema":{"type":"string"},"in":"query","name":"country","description":"Name of country. Do not combine with `q=` parameter."},{"schema":{"type":"string"},"in":"query","name":"postalcode","description":"Postal code. Do not combine with `q=` parameter."},{"schema":{"type":"string","enum":["xml","json","jsonv2","geojson","geocodejson"],"default":"geocodejson"},"in":"query","name":"format","description":"Format of response. See [Place Output Formats](https://nominatim.org/release-docs/develop/api/Output/) for details on each format. If not specified, it is equal to `jsonv2`."},{"schema":{"type":"string"},"in":"query","name":"json_callback","description":"Wrap JSON output in a callback function (JSONP) i.e. (). Only has an effect for JSON output formats."},{"schema":{"type":"integer","maximum":40,"minimum":1},"in":"query","name":"limit","description":"Limit the maximum number of returned results. Nominatim may decide to return less results than given, if additional results do not sufficiently match the query. If not specified, it is equal to `10`."},{"schema":{"type":"integer","maximum":1,"minimum":0,"default":1},"in":"query","name":"addressdetails","description":"Include a breakdown of the address into elements. If not specified, it is equal to `0`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"extratags","description":"Include additional information in the result if available, e.g. wikipedia link, opening hours. If not specified, it is equal to `0`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"namedetails","description":"Include a full list of names for the result. These may include language variants, older names, references and brand. If not specified, it is equal to `0`."},{"schema":{"type":"string"},"in":"query","name":"accept-language","description":"Preferred language order for showing search results. This may either be a simple comma-separated list of language codes or have the same format as the [Accept-Language HTTP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language). If not specified, it is equal to the content of Accept-Language HTTP header (browsers send the currently chosen browser language, command-line tools usually don't send any Accept-Language header)."},{"schema":{"type":"string","pattern":"^[a-zA-Z]{2}$"},"in":"query","name":"countrycodes","description":"Limit search results to one or more countries. The country code must be the [ISO 3166-1alpha2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code of the country, e.g. gb for the United Kingdom, de for Germany. Each place in Nominatim is assigned to one country code based on OSM country boundaries. In rare cases a place may not be in any country at all, for example, when it is in international waters. These places are also excluded when the filter is set."},{"schema":{"type":"string"},"in":"query","name":"layer","description":"The layer filter allows to select places by themes, a comma-separated list of `address` (all places that make up an address: address points with house numbers, streets, inhabited places like suburbs, villages, cities, states, and administrative boundaries), `poi` (all points of interest like restaurants, shops, hotels but also less obvious features like recycling bins, guideposts or benches), `railway` (infrastructures like tracks), `natural` (feautures like rivers, lakes and mountains), `manmade` (catch-all for features not covered by the other layers)."},{"schema":{"type":"string","enum":["country","state","city","settlement"]},"in":"query","name":"featureType","description":"The featureType allows to have a more fine-grained selection for places from the address layer. Results can be restricted to places that make up the 'state', 'country' or 'city' part of an address. A featureType of settlement selects any human inhabited feature from 'state' down to 'neighbourhood'. If not specified, results are automatically restricted to the address layer."},{"schema":{"type":"string"},"in":"query","name":"exclude_place_ids","description":"If you do not want certain OSM objects to appear in the search result, give a comma separated list of the `place_ids` you want to skip. This can be used to retrieve additional search results. For example, if a previous query only returned a few results, then including those here would cause the search to return other, less accurate, matches (if possible)."},{"schema":{"type":"string"},"in":"query","name":"viewbox","description":"The preferred area to find search results. Any two corner points of the box are accepted as long as they span a real box. In `viewbox=,,,` x is longitude, y is latitude."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"bounded","description":"When a viewbox is given, restrict the result to items contained within that viewbox (see above). When `viewbox` and `bounded=1` are given, an amenity only search is allowed. Give the special keyword for the amenity in square brackets, e.g. `[pub]` and a selection of objects of this type is returned. There is no guarantee that the result is complete."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_geojson","description":"Output geometry of results as a GeoJSON."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_kml","description":"Output geometry of results as a KML."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_svg","description":"Output geometry of results as a SVG."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_text","description":"Output geometry of results as a WKT."},{"schema":{"type":"number","minimum":0},"in":"query","name":"polygon_threshold","description":"When one of the polygon_* outputs is chosen, return a simplified version of the output geometry. The parameter is the tolerance in degrees with which the geometry may differ from the original geometry. Topology is preserved in the result."},{"schema":{"type":"string","format":"email"},"in":"query","name":"email","description":"If you are making large numbers of request please include an appropriate email address to identify your requests. See Nominatim's [Usage Policy](https://operations.osmfoundation.org/policies/nominatim/) for more details."},{"schema":{"type":"integer","default":1,"maximum":1,"minimum":0},"in":"query","name":"dedupe","description":"Sometimes you have several objects in OSM identifying the same place or object in reality. The simplest case is a street being split into many different OSM ways due to different characteristics. Nominatim will attempt to detect such duplicates and only return one match unless this parameter is set to 0. If not specified, it is equal to `0`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"debug","description":"Output assorted developer debug information. Data on internals of Nominatim's Search Loop logic, and SQL queries. The output is (rough) HTML format. This overrides the specified machine readable format. If not specified, it is equal to `0`."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OSMGeocodeJson"}}}}},"tags":["Search"]}},"/reverse":{"get":{"summary":"Generate an address from a coordinate given as latitude and longitude","operationId":"reverse","description":"The reverse geocoding API returns exactly one result or an error when the coordinate is in an area with no OSM data coverage. It does not exactly compute the address for the coordinate it receives. It works by finding the closest suitable OSM object and returning its address information. This may occasionally lead to unexpected results. First of all, Nominatim only includes OSM objects in its index that are suitable for searching. Small, unnamed paths for example are missing from the database and can therefore not be used for reverse geocoding either. The other issue to be aware of is that the closest OSM object may not always have a similar enough address to the coordinate you were requesting. For example, in dense city areas it may belong to a completely different street.","parameters":[{"schema":{"type":"number","minimum":0},"in":"query","name":"lat","description":"Latitude of a coordinate in WGS84 projection."},{"schema":{"type":"number","minimum":0},"in":"query","name":"lon","description":"Longitude of a coordinate in WGS84 projection."},{"schema":{"type":"string","enum":["xml","json","jsonv2","geojson","geocodejson"],"default":"geocodejson"},"in":"query","name":"format","description":"Format of response. See [Place Output Formats](https://nominatim.org/release-docs/develop/api/Output/) for details on each format. If not specified, it is equal to `xml`."},{"schema":{"type":"string"},"in":"query","name":"json_callback","description":"Wrap JSON output in a callback function (JSONP) i.e. (). Only has an effect for JSON output formats."},{"schema":{"type":"integer","maximum":1,"minimum":0,"default":1},"in":"query","name":"addressdetails","description":"Include a breakdown of the address into elements. If not specified, it is equal to `1`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"extratags","description":"Include additional information in the result if available, e.g. wikipedia link, opening hours. If not specified, it is equal to `0`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"namedetails","description":"Include a full list of names for the result. These may include language variants, older names, references and brand. If not specified, it is equal to `0`."},{"schema":{"type":"string"},"in":"query","name":"accept-language","description":"Preferred language order for showing search results. This may either be a simple comma-separated list of language codes or have the same format as the [Accept-Language HTTP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language). If not specified, it is equal to the content of Accept-Language HTTP header (browsers send the currently chosen browser language, command-line tools usually don't send any Accept-Language header)."},{"schema":{"type":"integer","minimum":0,"maximum":18,"default":18},"in":"query","name":"zoom","description":"Level of detail required for the address. This is a number that corresponds roughly to the zoom level used in XYZ tile sources in frameworks like Leaflet.js, Openlayers etc. In terms of address details the zoom levels are as follows: 3) country, 5) state, 8) county, 10) city, 12) town / borough, 13) village / suburb, 14) neighbourhood, 15) any settlement, 16) major streets, 17) major and minor streets, 18) building."},{"schema":{"type":"string"},"in":"query","name":"layer","description":"The layer filter allows to select places by themes, a comma-separated list of `address` (all places that make up an address: address points with house numbers, streets, inhabited places like suburbs, villages, cities, states, and administrative boundaries), `poi` (all points of interest like restaurants, shops, hotels but also less obvious features like recycling bins, guideposts or benches), `railway` (infrastructures like tracks), `natural` (feautures like rivers, lakes and mountains), `manmade` (catch-all for features not covered by the other layers)."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_geojson","description":"Output geometry of results as a GeoJSON."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_kml","description":"Output geometry of results as a KML."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_svg","description":"Output geometry of results as a SVG."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_text","description":"Output geometry of results as a WKT."},{"schema":{"type":"number","minimum":0},"in":"query","name":"polygon_threshold","description":"When one of the polygon_* outputs is chosen, return a simplified version of the output geometry. The parameter is the tolerance in degrees with which the geometry may differ from the original geometry. Topology is preserved in the result."},{"schema":{"type":"string","format":"email"},"in":"query","name":"email","description":"If you are making large numbers of request please include an appropriate email address to identify your requests. See Nominatim's [Usage Policy](https://operations.osmfoundation.org/policies/nominatim/) for more details."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"debug","description":"Output assorted developer debug information. Data on internals of Nominatim's Search Loop logic, and SQL queries. The output is (rough) HTML format. This overrides the specified machine readable format."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OSMGeocodeJson"}}}}},"tags":["Reverse"]}},"/lookup":{"get":{"summary":"Query the address and other details of one or multiple OSM objects like node, way or relation","operationId":"lookup","description":"The lookup API allows to query the address and other details of one or multiple OSM objects like node, way or relation.","parameters":[{"schema":{"type":"string","pattern":"^([RWN][0-9]+,?)+$"},"in":"query","required":true,"name":"osm_ids","description":"Comma-separated list of OSM ids each prefixed with its type, one of node (N), way (W) or relation (R). Up to 50 ids can be queried at the same time."},{"schema":{"type":"string","enum":["xml","json","jsonv2","geojson","geocodejson"],"default":"geocodejson"},"in":"query","name":"format","description":"Format of response. See [Place Output Formats](https://nominatim.org/release-docs/develop/api/Output/) for details on each format. If not specified, it is equal to `jsonv2`."},{"schema":{"type":"string"},"in":"query","name":"json_callback","description":"Wrap JSON output in a callback function (JSONP) i.e. (). Only has an effect for JSON output formats."},{"schema":{"type":"integer","maximum":1,"minimum":0,"default":1},"in":"query","name":"addressdetails","description":"Include a breakdown of the address into elements. If not specified, it is equal to `0`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"extratags","description":"Include additional information in the result if available, e.g. wikipedia link, opening hours. If not specified, it is equal to `0`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"namedetails","description":"Include a full list of names for the result. These may include language variants, older names, references and brand. If not specified, it is equal to `0`."},{"schema":{"type":"string"},"in":"query","name":"accept-language","description":"Preferred language order for showing search results. This may either be a simple comma-separated list of language codes or have the same format as the [Accept-Language HTTP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language). If not specified, it is equal to the content of Accept-Language HTTP header (browsers send the currently chosen browser language, command-line tools usually don't send any Accept-Language header)."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_geojson","description":"Output geometry of results as a GeoJSON."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_kml","description":"Output geometry of results as a KML."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_svg","description":"Output geometry of results as a SVG."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_text","description":"Output geometry of results as a WKT."},{"schema":{"type":"number","minimum":0},"in":"query","name":"polygon_threshold","description":"When one of the polygon_* outputs is chosen, return a simplified version of the output geometry. The parameter is the tolerance in degrees with which the geometry may differ from the original geometry. Topology is preserved in the result."},{"schema":{"type":"string","format":"email"},"in":"query","name":"email","description":"If you are making large numbers of request please include an appropriate email address to identify your requests. See Nominatim's [Usage Policy](https://operations.osmfoundation.org/policies/nominatim/) for more details."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"debug","description":"Output assorted developer debug information. Data on internals of Nominatim's Search Loop logic, and SQL queries. The output is (rough) HTML format. This overrides the specified machine readable format."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OSMGeocodeJson"}}}}}},"tags":["Lookup"]}},"/status":{"get":{"summary":"Report on the state of the service and database","operationId":"status","description":"Report on the state of the service and database. Useful for checking if the service is up and running. The JSON output also reports when the database was last updated.","parameters":[{"schema":{"type":"string","enum":["text","json"],"default":"json"},"in":"query","name":"format","description":"Selects the output format. See [Status Output Formats](https://nominatim.org/release-docs/develop/api/Status/#output) for details on each format. If not specified, it is equal to `text`."}],"responses":{"200":{"description":"If `format` is `json` always returns a HTTP code 200, when the status call could be executed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusResponse"}}}}},"tags":["Status"]}},"/details":{"get":{"summary":"Show all details about a single place saved in the database","operationId":"details","description":"This API endpoint is meant for visual inspection of the data in the database, mainly together with [Nominatim UI](https://github.com/osm-search/nominatim-ui/). The parameters of the endpoint and the output may change occasionally between versions of Nominatim. Do not rely on the output in scripts or applications.","parameters":[{"schema":{"$ref":"#/components/schemas/OSMType"},"in":"query","required":true,"name":"osmtype","description":"The type is required and it is one of node (N), way (W) or relation (R)."},{"schema":{"type":"integer","minimum":0},"in":"query","required":true,"name":"osmid","description":"The id is required and it must be a number."},{"schema":{"type":"string"},"in":"query","name":"class","description":"The class parameter is optional and allows to distinguish between entries, when the corresponding OSM object has more than one main tag. For example, when a place is tagged with tourism=hotel and amenity=restaurant, there will be two place entries in Nominatim, one for a restaurant, one for a hotel. You need to specify class=tourism or class=amentity to get exactly the one you want. If there are multiple places in the database but the class parameter is left out, then one of the places will be chosen at random and displayed."},{"schema":{"type":"integer","minimum":0},"in":"query","name":"place_id","description":"Place IDs are assigned sequentially during Nominatim data import. The ID for a place is different between Nominatim installation (servers) and changes when data gets reimported. Therefore it cannot be used as a permanent id and shouldn't be used in bug reports."},{"schema":{"type":"string","enum":["json"],"default":"json"},"in":"query","name":"format","description":"Format of response. See [Place Output Formats](https://nominatim.org/release-docs/develop/api/Output/) for details on each format. If not specified, it is equal to `json`."},{"schema":{"type":"string"},"in":"query","name":"json_callback","description":"Wrap JSON output in a callback function (JSONP) i.e. (). Only has an effect for JSON output formats."},{"schema":{"type":"integer","maximum":1,"minimum":0,"default":1},"in":"query","name":"addressdetails","description":"Include a breakdown of the address into elements. If not specified, it is equal to `0`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"keywords","description":"Include a list of name keywords and address keywords in the result. If not specified, it is equal to `0`."},{"schema":{"type":"integer","maximum":1,"minimum":0,"default":1},"in":"query","name":"linkedplaces","description":"Include details of places that are linked with this one. Places get linked together when they are different forms of the same physical object. Nominatim links two kinds of objects together: place nodes get linked with the corresponding administrative boundaries. Waterway relations get linked together with their members. If not specified, it is equal to `1`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"hierarchy","description":"Include details of places lower in the address hierarchy. If not specified, it is equal to `0`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"group_hierarchy","description":"The output of the address hierarchy will be grouped by type. If not specified, it is equal to `0`."},{"schema":{"type":"integer","maximum":1,"minimum":0},"in":"query","name":"polygon_geojson","description":"Include geometry of result as a GeoJSON. If not specified, it is equal to `0`."},{"schema":{"type":"string"},"in":"query","name":"accept-language","description":"Preferred language order for showing search results. This may either be a simple comma-separated list of language codes or have the same format as the [Accept-Language HTTP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language). If not specified, it is equal to the content of Accept-Language HTTP header (browsers send the currently chosen browser language, command-line tools usually don't send any Accept-Language header)."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailsResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Debug"]}},"/deletable":{"get":{"summary":"List objects that have been deleted in OSM but are held back in Nominatim in case the deletion was accidental","operationId":"deletable","description":"Redirect to https://nominatim.openstreetmap.org/ui/deletable.html.","responses":{"302":{"description":"Redirect","headers":{"location":{"schema":{"type":"string","const":"https://nominatim.openstreetmap.org/ui/deletable.html"}}}}},"tags":["Debug"]}},"/polygons":{"get":{"summary":"List of broken polygons detected by Nominatim","operationId":"polygons","description":"Redirect to https://nominatim.openstreetmap.org/ui/polygons.html.","responses":{"302":{"description":"Redirect","headers":{"location":{"schema":{"type":"string","const":"https://nominatim.openstreetmap.org/ui/polygons.html"}}}}},"tags":["Debug"]}}},"components":{"schemas":{"OSMGeocodeJson":{"allOf":[{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://geocoders.github.io/geocodejson-spec/draft/geocodejson.schema.json","title":"GeocodeJSON Schema","description":"GeocodeJSON is an extension of the GeoJSON format and it is an attempt to create a standard for handling geocoding results.","allOf":[{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://geojson.org/schema/GeoJSON.json","title":"GeoJSON","oneOf":[{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON GeometryCollection","type":"object","required":["type","geometries"],"properties":{"type":{"type":"string","enum":["GeometryCollection"]},"geometries":{"type":"array","items":{"oneOf":[{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Feature","type":"object","required":["type","properties","geometry"],"properties":{"type":{"type":"string","enum":["Feature"]},"id":{"oneOf":[{"type":"number"},{"type":"string"}]},"properties":{"oneOf":[{"type":"null"},{"type":"object"}]},"geometry":{"oneOf":[{"type":"null"},{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON GeometryCollection","type":"object","required":["type","geometries"],"properties":{"type":{"type":"string","enum":["GeometryCollection"]},"geometries":{"type":"array","items":{"oneOf":[{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON FeatureCollection","type":"object","required":["type","features"],"properties":{"type":{"type":"string","enum":["FeatureCollection"]},"features":{"type":"array","items":{"title":"GeoJSON Feature","type":"object","required":["type","properties","geometry"],"properties":{"type":{"type":"string","enum":["Feature"]},"id":{"oneOf":[{"type":"number"},{"type":"string"}]},"properties":{"oneOf":[{"type":"null"},{"type":"object"}]},"geometry":{"oneOf":[{"type":"null"},{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON GeometryCollection","type":"object","required":["type","geometries"],"properties":{"type":{"type":"string","enum":["GeometryCollection"]},"geometries":{"type":"array","items":{"oneOf":[{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]},{"type":"object","description":"GeocodeJSON extension of GeoJSON Feature Collection","properties":{"type":{"const":"FeatureCollection","description":"REQUIRED. GeocodeJSON result is a FeatureCollection."},"geocoding":{"type":"object","description":"REQUIRED. Namespace.","properties":{"version":{"description":"A semver.org compliant version number. Describes the version of the GeocodeJSON spec that is implemented by this instance.","$schema":"http://json-schema.org/draft-07/schema#","$id":"https://semver.org/semver.schema.json","type":"string","pattern":"^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$","minLength":5,"maxLength":256,"examples":["0.1.0","1.0.0-beta.1","1.0.0-0.3.7","2.2.4"]},"licence":{"type":"string","description":"OPTIONAL. The licence of the data. In case of multiple sources, and then multiple licences, can be an object with one key by source.","examples":["ODbL"]},"attribution":{"type":"string","description":"OPTIONAL. The attribution of the data. In case of multiple sources, and then multiple attributions, can be an object with one key by source.","examples":["OpenStreetMap Contributors"]},"query":{"type":"string","description":"OPTIONAL. The query that has been issued to trigger the search.","examples":["24 allée de Bercy 75012 Paris"]}},"required":["version"]}},"required":["geocoding"]},{"type":"object","description":"GeocodeJSON extension of GeoJSON Feature","properties":{"features":{"type":"array","description":"REQUIRED. As per GeoJSON spec.","items":{"type":"object","description":"OPTIONAL. An array of feature objects.","properties":{"type":{"const":"Feature","description":"REQUIRED. As per GeoJSON spec."},"properties":{"type":"object","description":"REQUIRED. As per GeoJSON spec.","properties":{"geocoding":{"type":"object","description":"REQUIRED. Namespace.","properties":{"type":{"type":"string","description":"REQUIRED. One of house, street, locality, city, region, country.","examples":["house","street","district","city","county","state","country","locality"]},"accuracy":{"type":"number","minimum":0,"description":"OPTIONAL. Result accuracy, in meters.","examples":[20]},"label":{"type":"string","description":"RECOMMENDED. Suggested label for the result.","examples":["My Shoes Shop, 64 rue de Metz 59280 Armentières"]},"name":{"type":"string","description":"OPTIONAL. Name of the place.","examples":["My Shoes Shop"]},"housenumber":{"type":"string","description":"OPTIONAL. Housenumber of the place.","examples":["64"]},"street":{"type":"string","description":"OPTIONAL. Street of the place.","examples":["Rue de Metz"]},"locality":{"type":"string","description":"OPTIONAL. Locality of the place.","examples":["Les Clarons"]},"postcode":{"type":"string","description":"OPTIONAL. Postcode of the place.","examples":["59280"]},"city":{"type":"string","description":"OPTIONAL. City of the place.","examples":["Armentières"]},"district":{"type":"string","description":"OPTIONAL. District of the place."},"county":{"type":"string","description":"OPTIONAL. County of the place."},"state":{"type":"string","description":"OPTIONAL. State of the place."},"country":{"type":"string","description":"OPTIONAL. Country of the place.","examples":["France"]},"admin":{"type":"object","description":"OPTIONAL. Administratives boundaries the feature is included in, as defined in http://wiki.osm.org/wiki/Key:admin_level#admin_level.","patternProperties":{"^level[0-9]+$":{"type":"string"}}},"geohash":{"description":"OPTIONAL. Geohash encoding of coordinates (see http://geohash.org/site/tips.html).","$schema":"http://json-schema.org/draft-07/schema#","$id":"http://geohash.org/geohash.schema.json","type":"string","pattern":"^[0123456789bcdefghjkmnpqrstuvwxyz]+(:.+)?$","examples":["6gkzmg1w","6gkzwgjzn820","c216ne:Mt_Hood"]}},"required":["type"]}},"required":["geocoding"]}}}}}}]},{"type":"object","properties":{"features":{"type":"array","items":{"type":"object","properties":{"properties":{"type":"object","properties":{"geocoding":{"type":"object","properties":{"osm_type":{"type":"string","examples":["node","way","relation"]},"osm_id":{"type":"integer"},"osm_key":{"type":"string","examples":["boundary","highway","amenity"]},"osm_value":{"type":"string","examples":["residential","restaurant"]}}}}}}}}}}]},"StatusResponse":{"type":"object","properties":{"status":{"type":"integer","minimum":0,"example":[0,700]},"message":{"type":"string","example":["OK","Database connection failed"]},"data_updated":{"type":"string","format":"date-time"},"software_version":{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://semver.org/semver.schema.json","type":"string","description":"A semver.org compliant version number (see https://semver.org).","pattern":"^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$","minLength":5,"maxLength":256,"examples":["0.1.0","1.0.0-beta.1","1.0.0-0.3.7","2.2.4"]},"database_version":{"$ref":"#/components/schemas/StatusResponse/properties/software_version"}},"required":["status","message"]},"DetailsResponse":{"type":"object","properties":{"place_id":{"type":"integer","minimum":0},"parent_place_id":{"type":"integer","minimum":0},"osm_type":{"$ref":"#/components/schemas/OSMType"},"osm_id":{"type":"integer"},"category":{"type":"string"},"type":{"type":"string"},"admin_level":{"type":"integer","minimum":0},"localname":{"type":"string"},"names":{"type":"object","properties":{"name":{"type":"string"}}},"addresstags":{"type":"object"},"calculated_postcode":{"type":"string"},"country_code":{"type":"string","pattern":"^[a-zA-Z]{2}$"},"indexed_date":{"type":"string","format":"date-time"},"importance":{"type":"number","minimum":0},"calculated_importance":{"type":"number","minimum":0},"extratags":{"type":"object"},"rank_address":{"type":"integer","minimum":1},"rank_search":{"type":"integer","minimum":1},"isarea":{"type":"boolean"},"centroid":{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://geojson.org/schema/Point.json","title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},"geometry":{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://geojson.org/schema/GeoJSON.json","title":"GeoJSON","oneOf":[{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON GeometryCollection","type":"object","required":["type","geometries"],"properties":{"type":{"type":"string","enum":["GeometryCollection"]},"geometries":{"type":"array","items":{"oneOf":[{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Feature","type":"object","required":["type","properties","geometry"],"properties":{"type":{"type":"string","enum":["Feature"]},"id":{"oneOf":[{"type":"number"},{"type":"string"}]},"properties":{"oneOf":[{"type":"null"},{"type":"object"}]},"geometry":{"oneOf":[{"type":"null"},{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON GeometryCollection","type":"object","required":["type","geometries"],"properties":{"type":{"type":"string","enum":["GeometryCollection"]},"geometries":{"type":"array","items":{"oneOf":[{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON FeatureCollection","type":"object","required":["type","features"],"properties":{"type":{"type":"string","enum":["FeatureCollection"]},"features":{"type":"array","items":{"title":"GeoJSON Feature","type":"object","required":["type","properties","geometry"],"properties":{"type":{"type":"string","enum":["Feature"]},"id":{"oneOf":[{"type":"number"},{"type":"string"}]},"properties":{"oneOf":[{"type":"null"},{"type":"object"}]},"geometry":{"oneOf":[{"type":"null"},{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON GeometryCollection","type":"object","required":["type","geometries"],"properties":{"type":{"type":"string","enum":["GeometryCollection"]},"geometries":{"type":"array","items":{"oneOf":[{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]},"address":{"type":"array","items":{"type":"object","properties":{"localname":{"type":"string"},"place_id":{"type":"integer","minimum":0},"osm_id":{"type":"integer"},"osm_type":{"$ref":"#/components/schemas/OSMType"},"class":{"type":"string"},"type":{"type":"string"},"admin_level":{"type":"integer","minimum":0},"rank_address":{"type":"integer","minimum":1},"distance":{"type":"number","minimum":0},"isaddress":{"type":"boolean"}}}}}},"ErrorResponse":{"type":"object","properties":{"code":{"type":"integer","minimum":0},"message":{"type":"string"}}},"OSMType":{"type":"string","enum":["N","W","R"]}}}} \ No newline at end of file diff --git a/docs/nominatim.openapi.json.checksum b/docs/nominatim.openapi.json.checksum index 4f9b7c0..3bf7d92 100644 --- a/docs/nominatim.openapi.json.checksum +++ b/docs/nominatim.openapi.json.checksum @@ -1 +1 @@ -sha512-d4a1109aab4f9a8467ef1ac325f1ff794b2e1a401a3424e75158bdb9c28ffb8811caa3ba906de92a59cd25c3cb2ccd489b404231860334a5ce4a457045da1f93 \ No newline at end of file +sha512-093fdfd8b9b9ca163a372a0edf6b2e6eaa0fadab9fdcded79c6f15e3726b1a96c6a696077cbf1fbec18f09a5a0845698ed81ef6de86d289de3532ff8ddc54d4a \ No newline at end of file diff --git a/src/nominatim.openapi.json b/src/nominatim.openapi.json index 6e2bbe3..6929dc2 100644 --- a/src/nominatim.openapi.json +++ b/src/nominatim.openapi.json @@ -3,7 +3,7 @@ "info": { "title": "OpenStreetMap Nominatim API", "version": "4.3.2", - "description": "OpenStreetMap Nominatim API\n\nNeed some help?\n[nominatim.org](https://nominatim.org/)", + "description": "Nominatim (from the Latin, 'by name') is a tool to search OSM data by name and address and to generate synthetic addresses of OSM points (reverse geocoding). It has also limited capability to search features by their type (pubs, hotels, churches, etc).\n\nNeed some help?\n[nominatim.org](https://nominatim.org/)", "termsOfService": "https://operations.osmfoundation.org/policies/nominatim/", "contact": { "url": "https://github.com/osm-search/Nominatim/issues"