Places Search
Find businesses and places near a point from Overture Maps open places data, with category, address, coordinates and licence per result.
places-search Example
{
"places": [
{
"name": "DOZ Apotek Stockholm St Eriksplan",
"brand": "DOZ Apotek",
"phones": [],
"address": {
"region": null,
"country": "SE",
"freeform": "Sankt Eriksplan 4",
"locality": "Stockholm",
"postcode": "113 20"
},
"sources": [
{
"dataset": "AllThePlaces",
"license": "CC0-1.0"
},
{
"dataset": "Overture",
"license": "CDLA-Permissive-2.0"
}
],
"category": "pharmacy_and_drug_store",
"latitude": 59.332603454589844,
"licenses": [
"CC0-1.0",
"CDLA-Permissive-2.0"
],
"taxonomy": "pharmacy",
"websites": [
"https://dozapotek.se/doz-apotek-stockholm-st-eriksplan-7350051481567-n2j4"
],
"longitude": 18.064900398254395,
"confidence": 0.8,
"distance_m": 0,
"overture_id": "bc998858-186b-4904-aa35-c729022a556e",
"operating_status": null
},
{
"name": "DOZ Apotek Stockholm Garnisonen",
"brand": "DOZ Apotek",
"phones": [],
"address": {
"region": null,
"country": "SE",
"freeform": "Karlavägen 100 A",
"locality": "Stockholm",
"postcode": "115 26"
},
"sources": [
{
"dataset": "AllThePlaces",
"license": "CC0-1.0"
},
{
"dataset": "Overture",
"license": "CDLA-Permissive-2.0"
}
],
"category": "pharmacy_and_drug_store",
"latitude": 59.332603454589844,
"licenses": [
"CC0-1.0",
"CDLA-Permissive-2.0"
],
"taxonomy": "pharmacy",
"websites": [
"https://dozapotek.se/doz-apotek-stockholm-garnisonen-7350051480508-eq7t"
],
"longitude": 18.064900398254395,
"confidence": 0.8,
"distance_m": 0,
"overture_id": "98b074f3-ef37-49d8-b62a-ad59f023c891",
"operating_status": null
},
{
"name": "Nordic Wellness",
"brand": null,
"phones": [
"0101555200"
],
"address": {
"region": "Västra Götalands län",
"country": "SE",
"freeform": "Ångemannagatan 151",
"locality": "Stockholm",
"postcode": "162 65"
},
"sources": [
{
"dataset": "Microsoft",
"license": "CDLA-Permissive-2.0"
},
{
"dataset": "Overture",
"license": "CDLA-Permissive-2.0"
}
],
"category": "gym",
"latitude": 59.332576751708984,
"licenses": [
"CDLA-Permissive-2.0"
],
"taxonomy": "gym",
"websites": [
"https://nordicwellness.se/vara-klubbar/stockholm/vallingby-centrum/"
],
"longitude": 18.064900398254395,
"confidence": 0.85,
"distance_m": 3,
"overture_id": "345e83bc-fb73-4ad0-8a48-25d4b54d5b5f",
"operating_status": null
},
{
"name": "Samfundet Sverige-Israel",
"brand": null,
"phones": [
"08-679 91 27"
],
"address": {
"region": "Stockholms Län",
"country": "SE",
"freeform": null,
"locality": "Stockholm",
"postcode": "102 42"
},
"sources": [
{
"dataset": "Foursquare",
"license": "Apache-2.0"
},
{
"dataset": "Overture",
"license": "CDLA-Permissive-2.0"
}
],
"category": "professional_service",
"latitude": 59.332584381103516,
"licenses": [
"Apache-2.0",
"CDLA-Permissive-2.0"
],
"taxonomy": "professional_service",
"websites": [
"http://sverigeisrael.org"
],
"longitude": 18.06484889984131,
"confidence": 0.77,
"distance_m": 3,
"overture_id": "47b679f9-6d54-47f0-a0f4-2abb6c81f1af",
"operating_status": null
},
{
"name": "Nationalmusem Design",
"brand": null,
"phones": [
"08-480 018 10"
],
"address": {
"region": "Stockholm",
"country": "SE",
"freeform": "Södra Blasieholmshamnen 2, Stockholm 111 48, Sweden",
"locality": "Stockholm",
"postcode": null
},
"sources": [
{
"dataset": "Foursquare",
"license": "Apache-2.0"
},
{
"dataset": "Overture",
"license": "CDLA-Permissive-2.0"
}
],
"category": "museum",
"latitude": 59.33263397216797,
"licenses": [
"Apache-2.0",
"CDLA-Permissive-2.0"
],
"taxonomy": "art_museum",
"websites": [
"https://www.nationalmuseum.se/en"
],
"longitude": 18.06498908996582,
"confidence": 0.77,
"distance_m": 6,
"overture_id": "2f8f37d0-ef94-4449-bbc3-5eec12c2f81a",
"operating_status": null
}
],
"search": {
"limit": 5,
"query": null,
"category": null,
"latitude": 59.3326,
"radius_m": 500,
"longitude": 18.0649
},
"licenses": [
{
"id": "Apache-2.0",
"text_url": "https://www.apache.org/licenses/LICENSE-2.0",
"notice_url": "https://docs.overturemaps.org/attribution/"
},
{
"id": "CC0-1.0",
"text_url": "https://creativecommons.org/publicdomain/zero/1.0/"
},
{
"id": "CDLA-Permissive-2.0",
"text_url": "https://cdla.dev/permissive-2-0/"
}
],
"attribution": [
"Data from AllThePlaces. Available under CC0 1.0.",
"Data from Overture. Available under CDLA Permissive 2.0.",
"Data from Microsoft. Available under CDLA Permissive 2.0.",
"Copyright 2024 Foursquare Labs, Inc. All rights reserved. Available under Apache 2.0. Foursquare data was transformed to the Overture schema."
],
"result_count": 5,
"overture_release": "2026-10-21.0",
"withheld_unknown_license": 0
} Inputs
| Field | Type | Required | What it is |
|---|---|---|---|
limit | integer | No | Maximum results, 1 to 50. Default 20. |
query | string | No | Optional free text matched against place names and categories, such as "pharmacy" or "Espresso House". |
category | string | No | Optional Overture category id, such as "pharmacy", "coffee_shop" or "restaurant"; matches the basic category, the primary taxonomy entry or any level of its hierarchy. |
latitude | number | Yes | Centre latitude in decimal degrees (-90 to 90). Geocode an address or city first with address-geocode. |
radius_m | number | No | Search radius in metres, 10 to 5000. Default 1000. |
longitude | number | Yes | Centre longitude in decimal degrees (-180 to 180). |
Output fields
How reliably each field appears in a successful answer.
| Field | Type | Appears |
|---|---|---|
places | array | Always (present in every successful answer) |
search | object | Always (present in every successful answer) |
licenses | array | Always (present in every successful answer) |
attribution | array | Always (present in every successful answer) |
result_count | integer | Always (present in every successful answer) |
overture_release | string | Always (present in every successful answer) |
withheld_unknown_license | integer | Always (present in every successful answer) |
How to call it
The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.
# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
-H "Authorization: Bearer $STRALE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"capability_slug": "places-search",
"inputs": {
"latitude": 59.3326,
"longitude": 18.0649,
"radius_m": 1000,
"query": "cafe",
"limit": 10
},
"max_price_cents": 5
}' {
"tool": "strale_execute",
"arguments": {
"slug": "places-search",
"inputs": {
"latitude": 59.3326,
"longitude": 18.0649,
"radius_m": 1000,
"query": "cafe",
"limit": 10
},
"max_price_cents": 5
}
} import { Strale } from "straleio";
const strale = new Strale({ apiKey: process.env.STRALE_API_KEY! });
const result = await strale.do({
capability_slug: "places-search",
inputs: {
"latitude": 59.3326,
"longitude": 18.0649,
"radius_m": 1000,
"query": "cafe",
"limit": 10
},
max_price_cents: 5,
}); import os
from straleio import Strale, DoRequest
strale = Strale(api_key=os.environ["STRALE_API_KEY"])
result = strale.do(DoRequest(
capability_slug="places-search",
inputs={
"latitude": 59.3326,
"longitude": 18.0649,
"radius_m": 1000,
"query": "cafe",
"limit": 10,
},
max_price_cents=5,
)) # No account. The first request answers 402 with the price in USDC;
# an x402 client pays it from your wallet and repeats the request.
curl -i -X POST https://api.strale.io/x402/v2/places-search \
-H 'Content-Type: application/json' \
-d '{
"latitude": 59.3326,
"longitude": 18.0649,
"radius_m": 1000,
"query": "cafe",
"limit": 10
}' Limitations
Coordinates required
Searches around a latitude and longitude. To search near an address or a city, geocode it first (for example with address-geocode) and pass the coordinates.
What to do instead: Chain address-geocode, then places-search.
Monthly open-data snapshot
Results come from the latest monthly Overture Maps release (named in overture_release), not live listings. New, moved or closed businesses can be missing or out of date; operating_status reflects the sources, not a check.
Coverage follows the open sources
Overture places merges Meta, Microsoft, Foursquare and other providers. Coverage and categorisation are strongest in North America and Western Europe and thinner elsewhere; no ratings, reviews, opening hours or photos are returned.
Licence and attribution duties pass to you
Each result lists every dataset behind it with its licence (CDLA-Permissive-2.0, Apache-2.0 or CC0-1.0). If you republish results, include the licence texts and NOTICE links in licenses and the attribution lines. A row with any source under another licence is withheld and counted in withheld_unknown_license.
Simple text matching
The query field is a case-insensitive substring match on the place name and category id, not a ranked semantic search. Results are ordered by distance only.
First call in a region is slower
The first search in a region reads that part of the dataset from Overture's public bucket (measured 3–7 s); repeat searches nearby take about 0.1–1.5 s.
Related tools
- Address Geocoding €0.02
- Barcode Lookup €0.05
- Container Tracking €0.05
- Country Lookup €0.02
- Country Tax Rates €0.02
- Country Trade Data €0.20