3 The [/reverse](Reverse.md), [/search](Search.md) and [/lookup](Lookup.md)
4 API calls produce very similar output which is explained in this section.
5 There is one section for each format which is selectable via the `format`
12 The JSON format returns an array of places (for search and lookup) or
13 a single place (for reverse) of the following format:
18 "licence": "Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright",
21 "boundingbox": ["51.3473219", "51.6673219", "-0.2876474", "0.0323526"],
24 "display_name": "London, Greater London, England, SW1A 2DU, United Kingdom",
27 "importance": 0.9654895765402,
28 "icon": "https://nominatim.openstreetmap.org/images/mapicons/poi_place_city.p.20.png",
31 "state_district": "Greater London",
33 "postcode": "SW1A 2DU",
34 "country": "United Kingdom",
39 "website": "http://www.london.gov.uk",
41 "wikipedia": "en:London",
42 "population": "8416535"
47 The possible fields are:
49 * `place_id` - reference to the Nominatim internal database ID ([see notes](#place_id-is-not-a-persistent-id))
50 * `osm_type`, `osm_id` - reference to the OSM object
51 * `boundingbox` - area of corner coordinates ([see notes](#boundingbox))
52 * `lat`, `lon` - latitude and longitude of the centroid of the object
53 * `display_name` - full comma-separated address
54 * `class`, `type` - key and value of the main OSM tag
55 * `importance` - computed importance rank
56 * `icon` - link to class icon (if available)
57 * `address` - dictionary of address details (only with `addressdetails=1`)
58 * `extratags` - dictionary with additional useful tags like website or maxspeed
59 (only with `extratags=1`)
60 * `namedetails` - dictionary with full list of available names including ref etc.
61 * `geojson`, `svg`, `geotext`, `geokml` - full geometry
62 (only with the appropriate `polygon_*` parameter)
66 This is the same as the JSON format with two changes:
68 * `class` renamed to `category`
69 * additional field `place_rank` with the search rank of the object
73 This format follows the [RFC7946](https://geojson.org). Every feature includes
74 a bounding box (`bbox`).
76 The feature list has the following fields:
78 * `place_id` - reference to the Nominatim internal database ID ([see notes](#place_id-is-not-a-persistent-id))
79 * `osm_type`, `osm_id` - reference to the OSM object
80 * `category`, `type` - key and value of the main OSM tag
81 * `display_name` - full comma-separated address
82 * `place_rank` - class search rank
83 * `importance` - computed importance rank
84 * `icon` - link to class icon (if available)
85 * `address` - dictionary of address details (only with `addressdetails=1`)
86 * `extratags` - dictionary with additional useful tags like `website` or `maxspeed`
87 (only with `extratags=1`)
88 * `namedetails` - dictionary with full list of available names including ref etc.
90 Use `polygon_geojson` to output the full geometry of the object instead
95 The GeocodeJSON format follows the
96 [GeocodeJSON spec 0.1.0](https://github.com/geocoders/geocodejson-spec).
97 The following feature attributes are implemented:
99 * `osm_type`, `osm_id` - reference to the OSM object (unofficial extension)
100 * `type` - value of the main tag of the object (e.g. residential, restaurant, ...)
101 * `label` - full comma-separated address
102 * `name` - localised name of the place
103 * `housenumber`, `street`, `locality`, `district`, `postcode`, `city`,
104 `county`, `state`, `country` -
105 provided when it can be determined from the address
106 * `admin` - list of localised names of administrative boundaries (only with `addressdetails=1`)
108 Use `polygon_geojson` to output the full geometry of the object instead
113 The XML response returns one or more place objects in slightly different
114 formats depending on the API call.
119 <reversegeocode timestamp="Sat, 11 Aug 18 11:53:21 +0000"
120 attribution="Data © OpenStreetMap contributors, ODbL 1.0. https://www.openstreetmap.org/copyright"
121 querystring="lat=48.400381&lon=11.745876&zoom=5&format=xml">
122 <result place_id="179509537" osm_type="relation" osm_id="2145268" ref="BY"
123 lat="48.9467562" lon="11.4038717"
124 boundingbox="47.2701114,50.5647142,8.9763497,13.8396373">
128 <state>Bavaria</state>
129 <country>Germany</country>
130 <country_code>de</country_code>
133 <tag key="place" value="state"/>
134 <tag key="wikidata" value="Q980"/>
135 <tag key="wikipedia" value="de:Bayern"/>
136 <tag key="population" value="12520000"/>
137 <tag key="name:prefix" value="Freistaat"/>
142 The attributes of the outer `reversegeocode` element return generic information
143 about the query, including the time when the response was sent (in UTC),
144 attribution to OSM and the original querystring.
146 The place information can be found in the `result` element. The attributes of that element contain:
148 * `place_id` - reference to the Nominatim internal database ID ([see notes](#place_id-is-not-a-persistent-id))
149 * `osm_type`, `osm_id` - reference to the OSM object
150 * `ref` - content of `ref` tag if it exists
151 * `lat`, `lon` - latitude and longitude of the centroid of the object
152 * `boundingbox` - comma-separated list of corner coordinates ([see notes](#boundingbox))
154 The full address of the result can be found in the content of the
155 `result` element as a comma-separated list.
157 Additional information requested with `addressdetails=1`, `extratags=1` and
158 `namedetails=1` can be found in extra elements.
160 #### Search and Lookup
163 <searchresults timestamp="Sat, 11 Aug 18 11:55:35 +0000"
164 attribution="Data © OpenStreetMap contributors, ODbL 1.0. https://www.openstreetmap.org/copyright"
165 querystring="london" polygon="false" exclude_place_ids="100149"
166 more_url="https://nominatim.openstreetmap.org/search.php?q=london&addressdetails=1&extratags=1&exclude_place_ids=100149&format=xml&accept-language=en-US%2Cen%3Bq%3D0.7%2Cde%3Bq%3D0.3">
167 <place place_id="100149" osm_type="node" osm_id="107775" place_rank="15"
168 boundingbox="51.3473219,51.6673219,-0.2876474,0.0323526" lat="51.5073219" lon="-0.1276474"
169 display_name="London, Greater London, England, SW1A 2DU, United Kingdom"
170 class="place" type="city" importance="0.9654895765402"
171 icon="https://nominatim.openstreetmap.org/images/mapicons/poi_place_city.p.20.png">
173 <tag key="capital" value="yes"/>
174 <tag key="website" value="http://www.london.gov.uk"/>
175 <tag key="wikidata" value="Q84"/>
176 <tag key="wikipedia" value="en:London"/>
177 <tag key="population" value="8416535"/>
180 <state_district>Greater London</state_district>
181 <state>England</state>
182 <postcode>SW1A 2DU</postcode>
183 <country>United Kingdom</country>
184 <country_code>gb</country_code>
189 The attributes of the outer `searchresults` or `lookupresults` element return
190 generic information about the query:
192 * `timestamp` - UTC time when the response was sent
193 * `attribution` - OSM licensing information
194 * `querystring` - original query
195 * `polygon` - true when extra geometry information was requested
196 * `exclude_place_ids` - IDs of places that should be ignored in a follow-up request
197 * `more_url` - search call that will yield additional results for the query
200 The place information can be found in the `place` elements, of which there may
201 be more than one. The attributes of that element contain:
203 * `place_id` - reference to the Nominatim internal database ID ([see notes](#place_id-is-not-a-persistent-id))
204 * `osm_type`, `osm_id` - reference to the OSM object
205 * `ref` - content of `ref` tag if it exists
206 * `lat`, `lon` - latitude and longitude of the centroid of the object
207 * `boundingbox` - comma-separated list of corner coordinates ([see notes](#boundingbox))
208 * `place_rank` - class search rank
209 * `display_name` - full comma-separated address
210 * `class`, `type` - key and value of the main OSM tag
211 * `importance` - computed importance rank
212 * `icon` - link to class icon (if available)
214 When `addressdetails=1` is requested, the localised address parts appear
215 as subelements with the type of the address part.
217 Additional information requested with `extratags=1` and `namedetails=1` can
218 be found in extra elements as sub-element of each place.
221 ## Notes on field values
223 ### place_id is not a persistent id
225 The `place_id` is created when a Nominatim database gets installed. A
226 single place will have a different value on another server or even when
227 the same data gets re-imported. It's thus not useful to treat it as
228 permanent for later use.
230 The combination `osm_type`+`osm_id` is slighly better but remember in
231 OpenStreetMap mappers can delete, split, recreate places (and those
232 get a new `osm_id`), there is no link between those old and new ids.
233 Places can also change their meaning without changing their `osm_id`,
234 e.g. when a restaurant is retagged as supermarket. For a more in-depth
235 discussion see [Permanent ID](https://wiki.openstreetmap.org/wiki/Permanent_ID).
237 Nominatim merges some places (e.g. center node of a city with the boundary
238 relation) so `osm_type`+`osm_id`+`class_name` would be more unique.
242 Comma separated list of min latitude, max latitude, min longitude, max longitude.
243 The whole planet would be `-90,90,-180,180`.
245 Can we used to pan and center the map on the result, for example with leafletjs
247 `map.fitBounds([[bbox[0],bbox[2]],[bbox[1],bbox[3]]], {padding: [20, 20], maxzoom: 16});`
249 Bounds crossing the antimeridian have a min latitude -180 and max latitude 180,
250 essentially covering the planet (See [issue 184](https://github.com/openstreetmap/Nominatim/issues/184)).