GET ./places
Allows you to get all the Places in the Overture Maps Database. You can filter by Lat/Long, Brand, Country and Categories.
Query Parameters
Consult the Open API documentation for the full list of query parameters that can be used to filter the results. Here are some examples
By Latitude / Longitude / Radius
Query params:
lat, lng, radius
Example Request to GET all the 'categories=cafe' within 2000m of Bondi Beach:
curl -H "x-api-key: DEMO-API-KEY" -X GET -G 'https://api.overturemapsapi.com/places?lat=-33.8910&lng=151.2769&radius=2000&categories=cafe'
Categories
e.g. categories=water_park - Comma separated string of Categories to filter
Example Request to GET all the Water Parks within 25km of Sydney
curl -H "x-api-key: DEMO-API-KEY" -X GET -G 'https://api.overturemapsapi.com/places' \
-d 'lat=-33.8688' -d 'lng=151.2093' -d 'radius=25000' -d 'categories=water_park'
categories in September 2026Overture replaces the places categories property with basic_category + taxonomy upstream in September 2026. Nothing breaks in this API: the categories response field and filter are staying (derived from the taxonomy once the upstream column is gone), and the categories filter already matches values from both vocabularies. Note the values inside categories will shift to the new taxonomy vocabulary at that point. If you match on specific category strings, we recommend the taxonomy filter below.
Taxonomy (hierarchy-aware)
taxonomy — comma-separated Overture taxonomy categories. Matches the primary category or any ancestor in the taxonomy hierarchy, so one value covers every descendant: taxonomy=food_and_drink matches every restaurant, café, bar and bakery.
curl -H "x-api-key: DEMO-API-KEY" -X GET -G 'https://api.overturemapsapi.com/places' \
-d 'lat=40.7128' -d 'lng=-74.0060' -d 'radius=1500' -d 'taxonomy=food_and_drink'
Every place also returns its full taxonomy in the response:
"taxonomy": {
"primary": "coffee_shop",
"hierarchy": ["food_and_drink", "non_alcoholic_beverage_venue", "coffee_shop"],
"alternates": []
},
"basic_category": "coffee_shop"
Operating Status
operating_status — filter by operating status, e.g. open or permanently_closed. Places without signals have a null status and are excluded when this filter is used. The field is also present on every place response.
curl -H "x-api-key: DEMO-API-KEY" -X GET -G 'https://api.overturemapsapi.com/places' \
-d 'lat=51.5074' -d 'lng=-0.1278' -d 'radius=1000' -d 'operating_status=open'
Brand Details (logos, websites) via Wikidata
enrichment_fields=brand — adds an ext_brand object to branded places with the brand's logo URL, official website, industry and parent organisation, sourced from Wikidata (CC0):
"ext_brand": {
"label": "Bank of America",
"logo_url": "http://commons.wikimedia.org/wiki/Special:FilePath/Bank%20of%20America%20logo.svg",
"website": "https://www.bankofamerica.com/",
"industry": "financial sector"
}
Logo URLs are Wikimedia Commons links — append ?width=200 for a resized image. Present where Overture links the place's brand to a Wikidata QID (~1.5M places across ~3,000 chains).
Contact details (websites, phones, emails, socials)
Every place returns its contact details by default — no special parameter is required:
"websites": ["https://www.example-cafe.co.uk"],
"phones": ["+441234567890"],
"emails": ["hello@example-cafe.co.uk"],
"socials": ["https://www.facebook.com/examplecafe"]
You do not need enrichment_fields for websites or phones. enrichment_fields=brand is only for the Wikidata brand layer (logos, industry, parent). The four contact arrays above are always in the response when Overture has them.
Coverage varies by country and category. In well-mapped markets, websites and phones are populated for the large majority of businesses; emails and socials are sparser.
Filter to places that have contact details — has_contact
has_contact returns only places that already have at least one of the listed contact fields. It's comma-separated and matched with OR, which is ideal when you only want businesses you can actually reach or verify:
# only places with a website
curl -H "x-api-key: DEMO-API-KEY" -X GET -G 'https://api.overturemapsapi.com/places' \
-d 'lat=51.5074' -d 'lng=-0.1278' -d 'radius=2000' -d 'categories=restaurant' -d 'has_contact=website'
# places with a website OR a social link (catches businesses that use a Facebook page instead of a site)
curl -H "x-api-key: DEMO-API-KEY" -X GET -G 'https://api.overturemapsapi.com/places' \
-d 'lat=51.5074' -d 'lng=-0.1278' -d 'radius=2000' -d 'categories=restaurant' -d 'has_contact=website,social'
Allowed values: website, phone, email, social. The Pagination-Count header reflects the filtered total, so you can see how many places match before paging through them.
Brands / Retail Chain
e.g. brand_name=H&M - The name of the Brand to filter by e.g. Uniqlo, McDonalds
Example Request to GET Uniqlo stores within 10km of New York City
curl -H "x-api-key: DEMO-API-KEY" -X GET -G 'https://api.overturemapsapi.com/places' \
-d 'lat=40.7128' -d 'lng=-74.0060' -d 'radius=10000' -d 'brand_name=Uniqlo'
Example of a response for a 7-Eleven store near New York City:
curl -H "x-api-key: DEMO-API-KEY" -X GET -G 'https://api.overturemapsapi.com/places' \
-d 'lat=40.7128' -d 'lng=-74.0060' -d 'radius=10000' -d 'limit=1' -d 'brand_name=7-Eleven'
By Name
name filters to places whose own name matches — an additional filter on top of your lat/lng/radius (or country) search, not a standalone text search. It's a case-insensitive exact match against the place's primary name (and any localized common name, where Overture has one):
curl -H "x-api-key: DEMO-API-KEY" -X GET -G 'https://api.overturemapsapi.com/places' \
-d 'lat=40.785091' -d 'lng=-73.968285' -d 'radius=3000' -d 'name=Central Park'
Combine it with other filters as needed, e.g. brand_name to pin a chain down to one specific location by name.
By Partial Name (type-ahead)
name_prefix finds places whose name starts with what someone has typed so far, or has a word that does. blue bo and bottle both match "Blue Bottle Coffee". It's case-insensitive and needs at least 2 characters.
With lat/lng, results come back nearest first, so a small limit gives you the closest few matches for a suggestions dropdown:
curl -H "x-api-key: DEMO-API-KEY" -X GET -G 'https://api.overturemapsapi.com/places' \
-d 'lat=40.7128' -d 'lng=-74.0060' -d 'radius=5000' -d 'name_prefix=blue bo' -d 'limit=5'
Each call is a normal request and counts towards your monthly allowance, so debounce keystrokes (around 300 ms) and wait for 2 or 3 characters before searching. Responses typically take a second or two, so show a loading state.
By Country
e.g. ?country=US - The ISO 3166-1 alpha-2 country code to filter by. e.g. US, GB, FR (UK is GB).
Country-level queries (a country with no lat/lng) are available on paid plans and must include a narrowing filter such as categories, taxonomy, brand_name or name. On the Free plan and with the demo key, search by lat, lng and radius (up to 25 km) instead; you can still add country alongside them as an extra filter. A Free key sending a country-level query gets a 403 explaining this. See Usage limits.
Example Request to GET 10 restaurants in the US (paid plan):
curl -H "x-api-key: YOUR-API-KEY" -X GET -G 'https://api.overturemapsapi.com/places' \
-d 'country=US' -d 'categories=restaurant' -d 'limit=10'
Pagination
limit (page size) + page (0-indexed). Totals come back in the Pagination-Count / Pagination-Page / Pagination-Limit response headers.
Enriched Responses
e.g. Conflating with the OpenStreetMap equivalent