OpenStreetMap Nominatim
App · Travel & Places · 8 actions
Turn place names and addresses into coordinates, and coordinates back into addresses, using OpenStreetMap's own geocoder. Search the whole world map by text or by separate address fields, look places up by their OpenStreetMap id, and read everything the map holds about one of them. No account or API key required.
Actions
| Action | What it does |
|---|---|
| Check the server | Check that the Nominatim server is up, and see how recently it pulled in edits from OpenStreetMap. |
| Find the address of a coordinate | Turn a latitude and longitude into the place that is there - its address, its name, and what kind of thing it is. |
| Get everything about one place | Read the deepest view Nominatim has of a single place: every name variant, the tags behind it, the address hierarchy it sits in, the places it contains, and its search ranks. |
| List broken area boundaries | List the areas whose outline this server could not import cleanly - a boundary that doesn't close, or a shape that had to be simplified - each with the error that was recorded. |
| List places pending deletion | List the places that have been deleted from OpenStreetMap but are still in this server's index, waiting for the deletion to be confirmed. |
| Look up places by OSM id | Fetch up to 50 known OpenStreetMap objects by their ids in one call. |
| Search by address fields | Find a place from the separate parts of its address - street, city, postcode, country - rather than one line of text. |
| Search for places | Search OpenStreetMap for anything you can describe in words - 'Brandenburg Gate', '10 Downing Street, London', a postcode, or 'coffee' near a point - and get back each match with its coordinates, full address, and OpenStreetMap id. |
Check the server
Check that the Nominatim server is up, and see how recently it pulled in edits from OpenStreetMap. Worth running first in a long workflow, and the quickest way to confirm your own Nominatim server is reachable.
Inputs
None.
Outputs
data_updatedtext- When the server last pulled in OpenStreetMap edits. A place mapped after this is not searchable yet.
database_versiontext- Version of the data format in its database
healthytrue/false- True when the server is ready to answer queries
messagetext- 'OK', or what is wrong with the server
server_urltext- The Nominatim server that answered
software_versiontext- Version of Nominatim running
statusnumber- Status code; 0 means everything is fine
Example output
{
"data_updated": "2026-08-23T22:41:45+00:00",
"database_version": "5.3.99-3",
"healthy": true,
"message": "OK",
"server_url": "https://nominatim.openstreetmap.org",
"software_version": "5.3.0",
"status": 0
}Find the address of a coordinate
Turn a latitude and longitude into the place that is there - its address, its name, and what kind of thing it is. Choose how zoomed in the answer should be, from the exact building up to the country. A point with nothing mapped near it comes back as 'found: false' rather than as an error.
Inputs
- Latitude
latitudenumberRequired - Latitude of the point, between -90 and 90.From -90 to 90.
- Longitude
longitudenumberRequired - Longitude of the point, between -180 and 180. Locations in the Americas take a negative longitude.From -180 to 180.
- Level of detail
zoomnumber - How specific the answer should be. 'Building' names the exact address; 'City' names the city the point falls in. Defaults to the building.One of:
3(Country),5(State or region),8(County),10(City),12(Town or borough),13(Village or suburb),14(Neighbourhood),15(Any settlement),16(Major streets),17(All streets),18(Building). Default:18. - Kinds of place
layerslist - Only match these kinds of object - the same list as on the search actions. Defaults to addresses and points of interest.One or more of:
address(Addresses and places),poi(Points of interest),railway(Railway features),natural(Natural features),manmade(Man-made features). Default:["address", "poi"]. - Language
languagetext - Language for the returned place and country names. Defaults to English. A place with no name mapped in the chosen language comes back under its local name.One of:
ab(Abkhaz),aa(Afar),af(Afrikaans),ak(Akan),sq(Albanian),am(Amharic),ar(Arabic),an(Aragonese),hy(Armenian),as(Assamese), and 174 more. Default:en. - Include the address breakdown
address_detailstrue/false - Return the address split into its parts - house number, road, city, postcode, country - alongside the single-line version. On by default.Default:
true. - Include extra OSM tags
extra_tagstrue/false - Return the rest of the OpenStreetMap tags on the object, such as its website, phone number, opening hours, or Wikipedia article.Default:
false. - Include every name variant
name_detailstrue/false - Return all of the place's names - its official name, its short name, and its name in every language mapped for it.Default:
false. - Include entrances
entrancestrue/false - Return the mapped entrances to the place, each with its own coordinate. Useful for routing someone to a door rather than to the middle of a building.Default:
false. - Shape of the place
geometrytext - Return the outline of the place as well as its centre point. Choose the format that suits what you will do with it: GeoJSON for mapping libraries, KML for Google Earth, SVG for drawing, or Well-Known Text. Off by default - an outline can be very large.One of:
none(Don't include the shape),geojson,kml,svg,text(Well-Known Text (WKT)). Default:none. - Simplify the shape by
geometry_simplificationnumber - Smooth the outline to make it smaller, in degrees - 0.001 is roughly 100 metres. Leave blank for the exact shape. Only used when a shape format is chosen above.From 0 to 10.
Outputs
attributiontext- The OpenStreetMap attribution to display alongside these results
foundtrue/false- False when nothing is mapped at this coordinate
latitudenumber- The latitude that was looked up
longitudenumber- The longitude that was looked up
messagetext- Why nothing was found, when found is false
placeobject- The place at the coordinate
Example output
{
"attribution": "Data \u00a9 OpenStreetMap contributors, ODbL 1.0. http://osm.org/copyright",
"found": true,
"latitude": 52.5163,
"longitude": 13.3777,
"place": {
"address": {
"city": "Berlin",
"country": "Germany",
"country_code": "de",
"postcode": "10117",
"road": "Pariser Platz",
"suburb": "Mitte"
},
"address_type": "tourism",
"bounding_box": {
"max_latitude": 52.51632,
"max_longitude": 13.3777521,
"min_latitude": 52.51622,
"min_longitude": 13.3776521
},
"category": "tourism",
"display_name": "Quadriga, 1, Pariser Platz, Mitte, Berlin, 10117, Germany",
"importance": 8.875486381318407e-05,
"latitude": 52.51627,
"longitude": 13.3777021,
"name": "Quadriga",
"osm_id": 3786417057,
"osm_reference": "N3786417057",
"osm_type": "node",
"osm_url": "https://www.openstreetmap.org/node/3786417057",
"place_id": 145816286,
"place_rank": 30,
"type": "artwork"
}
}Get everything about one place
Read the deepest view Nominatim has of a single place: every name variant, the tags behind it, the address hierarchy it sits in, the places it contains, and its search ranks. Name the place by its OpenStreetMap type and id, or by the 'place_id' from an earlier step.
Inputs
- Kind of OpenStreetMap object
osm_typetext - Which kind of object the id below refers to: a node is a single point such as a shop, a way is a line or an area such as a street or a building, and a relation is a group of objects such as a city boundary. Give this and the id, or give a place id instead.One of:
N(Node),W(Way),R(Relation). - OpenStreetMap id
osm_idnumber - The object's numeric OpenStreetMap id, without the type letter.
- Nominatim place id
place_idnumber - Nominatim's own id for the place, as returned by a search. Use this instead of the type and id above. Note that it is only valid on the server it came from.
- Which entry to read
osm_classtext - Only needed when one OpenStreetMap object is indexed several times - a building that is also a tourist attraction, say. Give the tag key to choose between them, such as 'tourism'.
- Include the places inside this one
hierarchytrue/false - List the addresses and points of interest that sit within this place. Can be a very long list for a city.Default:
false. - Group those places by kind
group_hierarchytrue/false - Return the list above grouped by what each place is, rather than as one flat list.Default:
false. - Include linked places
linked_placestrue/false - Include the other OpenStreetMap objects that describe this same place, such as the city node linked to a city boundary. On by default.Default:
true. - Include search keywords
keywordstrue/false - Include the words Nominatim indexed this place under. Useful for working out why a search did or didn't match it.Default:
false. - Include the shape of the place
include_geometrytrue/false - Return the place's outline as GeoJSON.Default:
false. - Include the address breakdown
address_detailstrue/false - Return the address split into its parts - house number, road, city, postcode, country - alongside the single-line version. On by default.Default:
true. - Include entrances
entrancestrue/false - Return the mapped entrances to the place, each with its own coordinate. Useful for routing someone to a door rather than to the middle of a building.Default:
false. - Language
languagetext - Language for the returned place and country names. Defaults to English. A place with no name mapped in the chosen language comes back under its local name.One of:
ab(Abkhaz),aa(Afar),af(Afrikaans),ak(Akan),sq(Albanian),am(Amharic),ar(Arabic),an(Aragonese),hy(Armenian),as(Assamese), and 174 more. Default:en.
Outputs
attributiontext- The OpenStreetMap attribution to display alongside these results
placeobject- Everything Nominatim holds about the place
Example output
{
"attribution": "Data \u00a9 OpenStreetMap contributors, ODbL 1.0. http://osm.org/copyright",
"place": {
"address": [
{
"admin_level": 4,
"class": "boundary",
"isaddress": true,
"localname": "Berlin",
"osm_id": 62422,
"osm_type": "R",
"place_id": 145205353,
"rank_address": 16,
"type": "administrative"
}
],
"address_rank": 16,
"address_tags": {},
"admin_level": 4,
"category": "boundary",
"country_code": "de",
"extra_tags": {
"population": "3755251",
"wikidata": "Q64"
},
"house_number": "",
"importance": 0.8522196536088086,
"indexed_date": "2026-08-18T06:55:42.856732+00:00",
"is_area": true,
"latitude": 52.5173885,
"linked_places": [],
"longitude": 13.3951309,
"name": "Berlin",
"names": {
"name": "Berlin",
"name:en": "Berlin",
"name:fr": "Berlin"
},
"osm_id": 62422,
"osm_reference": "R62422",
"osm_type": "relation",
"osm_url": "https://www.openstreetmap.org/relation/62422",
"parent_place_id": 0,
"place_id": 145205353,
"postcode": "",
"search_rank": 8,
"type": "administrative",
"wikipedia": "de:Berlin"
}
}List broken area boundaries
List the areas whose outline this server could not import cleanly - a boundary that doesn't close, or a shape that had to be simplified - each with the error that was recorded. How mappers find boundaries that need fixing, and how a self-hosted server's import is checked for damage.
Inputs
- Only from the last N days
daysnumber - Only list problems recorded in the last few days. Leave blank for all of them.From 1 to 3650.
- Only this kind of area
osm_classtext - Only list problems on one kind of object, given as an OpenStreetMap tag key such as 'boundary' or 'landuse'. Leave blank for all of them.
- Only shapes that had to be shrunk
reduced_onlytrue/false - Only list the areas whose shape Nominatim had to reduce, rather than every kind of problem.Default:
false.
Outputs
countnumber- Number of broken areas returned
polygonslist- The areas that could not be imported cleanly
Example output
{
"count": 1,
"polygons": [
{
"category": "boundary",
"country_code": "",
"error_message": "Area reduced from 0.18513026839153993 to 0.05390398062177981",
"name": "South Goa",
"osm_id": 1997194,
"osm_reference": "R1997194",
"osm_type": "relation",
"osm_url": "https://www.openstreetmap.org/relation/1997194",
"type": "administrative",
"updated": "2026-08-20 17:17:18"
}
]
}List places pending deletion
List the places that have been deleted from OpenStreetMap but are still in this server's index, waiting for the deletion to be confirmed. A maintenance view, most useful for keeping an eye on your own Nominatim server.
Inputs
None.
Outputs
countnumber- Number of places waiting to be deleted
placeslist- The places still in the index
Example output
{
"count": 1,
"places": [
{
"category": "boundary",
"country_code": "cz",
"name": "Jihoz\u00e1pad",
"osm_id": 435511,
"osm_reference": "R435511",
"osm_type": "relation",
"osm_url": "https://www.openstreetmap.org/relation/435511",
"place_id": 130334717,
"type": "administrative"
}
]
}Look up places by OSM id
Fetch up to 50 known OpenStreetMap objects by their ids in one call. Search results move as the map is edited, so a workflow that must keep pointing at the same place stores its id once and looks it up from then on. Every place this integration returns carries that id as 'osm_reference'.
Inputs
- OpenStreetMap ids
osm_idslistRequired - The objects to fetch, each written as a type letter and an id: N for a node, W for a way, R for a relation. Up to 50 at a time.
- Language
languagetext - Language for the returned place and country names. Defaults to English. A place with no name mapped in the chosen language comes back under its local name.One of:
ab(Abkhaz),aa(Afar),af(Afrikaans),ak(Akan),sq(Albanian),am(Amharic),ar(Arabic),an(Aragonese),hy(Armenian),as(Assamese), and 174 more. Default:en. - Include the address breakdown
address_detailstrue/false - Return the address split into its parts - house number, road, city, postcode, country - alongside the single-line version. On by default.Default:
true. - Include extra OSM tags
extra_tagstrue/false - Return the rest of the OpenStreetMap tags on the object, such as its website, phone number, opening hours, or Wikipedia article.Default:
false. - Include every name variant
name_detailstrue/false - Return all of the place's names - its official name, its short name, and its name in every language mapped for it.Default:
false. - Include entrances
entrancestrue/false - Return the mapped entrances to the place, each with its own coordinate. Useful for routing someone to a door rather than to the middle of a building.Default:
false. - Shape of the place
geometrytext - Return the outline of the place as well as its centre point. Choose the format that suits what you will do with it: GeoJSON for mapping libraries, KML for Google Earth, SVG for drawing, or Well-Known Text. Off by default - an outline can be very large.One of:
none(Don't include the shape),geojson,kml,svg,text(Well-Known Text (WKT)). Default:none. - Simplify the shape by
geometry_simplificationnumber - Smooth the outline to make it smaller, in degrees - 0.001 is roughly 100 metres. Leave blank for the exact shape. Only used when a shape format is chosen above.From 0 to 10.
Outputs
attributiontext- The OpenStreetMap attribution to display alongside these results
countnumber- Number of places returned
not_foundlist- Ids Nominatim has no place for
placeslist- The places that were found
requestedlist- The ids that were asked for
Example output
{
"attribution": "Data \u00a9 OpenStreetMap contributors, ODbL 1.0. http://osm.org/copyright",
"count": 2,
"not_found": [],
"places": [
{
"address": {
"city": "Manchester",
"country": "United Kingdom",
"country_code": "gb",
"state": "England"
},
"address_type": "city",
"bounding_box": {
"max_latitude": 53.5445923,
"max_longitude": -2.1468288,
"min_latitude": 53.3401044,
"min_longitude": -2.3199185
},
"category": "boundary",
"display_name": "Manchester, Greater Manchester, England, United Kingdom",
"importance": 0.7396662642520947,
"latitude": 53.4424618,
"longitude": -2.2324547,
"name": "Manchester",
"osm_id": 146656,
"osm_reference": "R146656",
"osm_type": "relation",
"osm_url": "https://www.openstreetmap.org/relation/146656",
"place_id": 277214488,
"place_rank": 16,
"type": "administrative"
}
],
"requested": [
"R146656",
"W518071791"
]
}Search by address fields
Find a place from the separate parts of its address - street, city, postcode, country - rather than one line of text. More accurate than pasting the parts back together, because Nominatim is told which part is which instead of guessing. Use it when the address already arrives in columns.
Inputs
- Street
streettext - House number and street name.
- City
citytext - City, town, or village.
- County
countytext - County or district, where the country uses them.
- State or region
statetext - State, province, or region.
- Postal code
postal_codetext - Postcode or ZIP code.
- Country
countrytext - Country name or two-letter code. Fill at least one field on this form.
- Place name or type
amenitytext - The name or kind of place at the address, such as 'Town Hall' or 'pharmacy'.
- Max results
limitnumber - How many matches to return, from 1 to 40. Defaults to 10.From 1 to 40. Default:
10. - Only these countries
country_codeslist - Restrict the search to one or more countries. Leave empty to search the whole world.One or more of:
AF(Afghanistan),AL(Albania),DZ(Algeria),AD(Andorra),AO(Angola),AI(Anguilla),AQ(Antarctica),AG(Antigua & Barbuda),AR(Argentina),AM(Armenia), and 239 more. - Language
languagetext - Language for the returned place and country names. Defaults to English. A place with no name mapped in the chosen language comes back under its local name.One of:
ab(Abkhaz),aa(Afar),af(Afrikaans),ak(Akan),sq(Albanian),am(Amharic),ar(Arabic),an(Aragonese),hy(Armenian),as(Assamese), and 174 more. Default:en. - Include the address breakdown
address_detailstrue/false - Return the address split into its parts - house number, road, city, postcode, country - alongside the single-line version. On by default.Default:
true. - Include extra OSM tags
extra_tagstrue/false - Return the rest of the OpenStreetMap tags on the object, such as its website, phone number, opening hours, or Wikipedia article.Default:
false. - Include every name variant
name_detailstrue/false - Return all of the place's names - its official name, its short name, and its name in every language mapped for it.Default:
false. - Include entrances
entrancestrue/false - Return the mapped entrances to the place, each with its own coordinate. Useful for routing someone to a door rather than to the middle of a building.Default:
false. - Shape of the place
geometrytext - Return the outline of the place as well as its centre point. Choose the format that suits what you will do with it: GeoJSON for mapping libraries, KML for Google Earth, SVG for drawing, or Well-Known Text. Off by default - an outline can be very large.One of:
none(Don't include the shape),geojson,kml,svg,text(Well-Known Text (WKT)). Default:none. - Simplify the shape by
geometry_simplificationnumber - Smooth the outline to make it smaller, in degrees - 0.001 is roughly 100 metres. Leave blank for the exact shape. Only used when a shape format is chosen above.From 0 to 10.
- Remove duplicate places
dedupetrue/false - Drop results that describe the same place more than once, which happens where a place is mapped as both a point and an area. On by default.Default:
true.
Outputs
attributiontext- The OpenStreetMap attribution to display alongside these results
countnumber- Number of places returned
placeslist- Matching places, best match first
queryobject- The address fields that were searched on
Example output
{
"attribution": "Data \u00a9 OpenStreetMap contributors, ODbL 1.0. http://osm.org/copyright",
"count": 1,
"places": [
{
"address": {
"city": "Washington",
"country": "United States",
"country_code": "us",
"house_number": "1600",
"office": "White House",
"postcode": "20500",
"road": "Pennsylvania Avenue Northwest",
"state": "District of Columbia"
},
"address_type": "office",
"bounding_box": {
"max_latitude": 38.8979065,
"max_longitude": -77.0355981,
"min_latitude": 38.8974908,
"min_longitude": -77.0374527
},
"category": "office",
"display_name": "White House, 1600, Pennsylvania Avenue Northwest, Washington, District of Columbia, 20500, United States",
"importance": 0.6958339719610435,
"latitude": 38.8976387,
"longitude": -77.0365525,
"name": "White House",
"osm_id": 19761182,
"osm_reference": "R19761182",
"osm_type": "relation",
"osm_url": "https://www.openstreetmap.org/relation/19761182",
"place_id": 347426922,
"place_rank": 30,
"type": "government"
}
],
"query": {
"city": "Washington",
"country": "United States",
"street": "1600 Pennsylvania Avenue NW"
}
}Search for places
Search OpenStreetMap for anything you can describe in words - 'Brandenburg Gate', '10 Downing Street, London', a postcode, or 'coffee' near a point - and get back each match with its coordinates, full address, and OpenStreetMap id. This is the search box from openstreetmap.org.
Inputs
- Search for
querytextRequired - What to look for. A place name, a full address, a postcode, or a kind of place such as 'pharmacy'.
- Max results
limitnumber - How many matches to return, from 1 to 40. Defaults to 10.From 1 to 40. Default:
10. - Only these countries
country_codeslist - Restrict the search to one or more countries. Leave empty to search the whole world.One or more of:
AF(Afghanistan),AL(Albania),DZ(Algeria),AD(Andorra),AO(Angola),AI(Anguilla),AQ(Antarctica),AG(Antigua & Barbuda),AR(Argentina),AM(Armenia), and 239 more. - Kinds of place
layerslist - Only return these kinds of object: addresses and places are countries, cities, streets and houses; points of interest are shops, restaurants and landmarks; railway covers stations, tracks and platforms; natural covers rivers, forests, peaks and lakes; man-made covers bridges, piers and towers. Leave empty to search all of them.One or more of:
address(Addresses and places),poi(Points of interest),railway(Railway features),natural(Natural features),manmade(Man-made features). - Only this level of place
feature_typetext - Narrow the search to one level of the map's hierarchy, so a search for 'Berlin' returns the city rather than a street named after it. 'Any settlement' covers towns, villages and hamlets as well as cities. Leave empty for every level.One of:
country,state(State or region),city,settlement(Any settlement). - Search near this latitude
near_latitudenumber - Latitude of the point to search around. Set this and the longitude to prefer nearby results.From -90 to 90.
- Search near this longitude
near_longitudenumber - Longitude of the point to search around. Locations in the Americas take a negative longitude.From -180 to 180.
- Within this many kilometres
radius_kmnumber - How far around the point to look. Defaults to 10 km. Only used alongside a latitude and longitude.From 0.1 to 5000.0. Default:
10. - Only return places inside that radius
restrict_to_areatrue/false - Throw away matches outside the radius instead of just ranking them lower. Off by default, so a good match further away is still returned.Default:
false. - Skip these places
exclude_place_idslist - Place ids to leave out of the results. Feed in the 'place_id' values from an earlier search to page through more matches.
- Language
languagetext - Language for the returned place and country names. Defaults to English. A place with no name mapped in the chosen language comes back under its local name.One of:
ab(Abkhaz),aa(Afar),af(Afrikaans),ak(Akan),sq(Albanian),am(Amharic),ar(Arabic),an(Aragonese),hy(Armenian),as(Assamese), and 174 more. Default:en. - Include the address breakdown
address_detailstrue/false - Return the address split into its parts - house number, road, city, postcode, country - alongside the single-line version. On by default.Default:
true. - Include extra OSM tags
extra_tagstrue/false - Return the rest of the OpenStreetMap tags on the object, such as its website, phone number, opening hours, or Wikipedia article.Default:
false. - Include every name variant
name_detailstrue/false - Return all of the place's names - its official name, its short name, and its name in every language mapped for it.Default:
false. - Include entrances
entrancestrue/false - Return the mapped entrances to the place, each with its own coordinate. Useful for routing someone to a door rather than to the middle of a building.Default:
false. - Shape of the place
geometrytext - Return the outline of the place as well as its centre point. Choose the format that suits what you will do with it: GeoJSON for mapping libraries, KML for Google Earth, SVG for drawing, or Well-Known Text. Off by default - an outline can be very large.One of:
none(Don't include the shape),geojson,kml,svg,text(Well-Known Text (WKT)). Default:none. - Simplify the shape by
geometry_simplificationnumber - Smooth the outline to make it smaller, in degrees - 0.001 is roughly 100 metres. Leave blank for the exact shape. Only used when a shape format is chosen above.From 0 to 10.
- Remove duplicate places
dedupetrue/false - Drop results that describe the same place more than once, which happens where a place is mapped as both a point and an area. On by default.Default:
true.
Outputs
attributiontext- The OpenStreetMap attribution to display alongside these results
countnumber- Number of places returned
placeslist- Matching places, best match first
querytext- The text that was searched for
Example output
{
"attribution": "Data \u00a9 OpenStreetMap contributors, ODbL 1.0. http://osm.org/copyright",
"count": 1,
"places": [
{
"address": {
"building": "Brandenburg Gate",
"city": "Berlin",
"country": "Germany",
"country_code": "de",
"house_number": "1",
"postcode": "10117",
"road": "Pariser Platz",
"suburb": "Mitte"
},
"address_type": "building",
"bounding_box": {
"max_latitude": 52.5164328,
"max_longitude": 13.3778251,
"min_latitude": 52.516117,
"min_longitude": 13.3775798
},
"category": "building",
"display_name": "Brandenburg Gate, 1, Pariser Platz, Mitte, Berlin, 10117, Germany",
"importance": 0.5504719991549523,
"latitude": 52.5162699,
"longitude": 13.3777034,
"name": "Brandenburg Gate",
"osm_id": 518071791,
"osm_reference": "W518071791",
"osm_type": "way",
"osm_url": "https://www.openstreetmap.org/way/518071791",
"place_id": 144765639,
"place_rank": 30,
"type": "gate"
}
],
"query": "Brandenburg Gate"
}