Location Intelligence — 76M Global POIs (Overture Maps) avatar

Location Intelligence — 76M Global POIs (Overture Maps)

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Location Intelligence — 76M Global POIs (Overture Maps)

Location Intelligence — 76M Global POIs (Overture Maps)

Search ~76M points of interest worldwide from Overture Maps by area (point+radius or bounding box). Name, category, brand, phone, email, website, socials, full address & exact coordinates. Official open data, commercial reuse permitted. No API key.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

Berkan Kaplan

Berkan Kaplan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 hours ago

Last modified

Share

Location Intelligence — 76M Global POIs (Overture Maps)

Location Intelligence — 76M Global POIs (Overture Maps)

Need local-business & place data anywhere on Earth — not a fragile HTML scrape that breaks next week? This Actor turns Overture Maps (~76 million points of interest worldwide) into clean, structured records: name, category, brand, phone, email, website, social profiles, full address and exact coordinates — for any area you point it at.

Built directly on Overture Maps, the open map-data foundation backed by Meta, Microsoft, Amazon and TomTom. Data is released under CDLA-Permissive 2.0, which permits commercial reuse and redistribution with no share-alike obligation. No API key, no login, no HTML scraping — the Actor queries Overture's public cloud Parquet directly and reads only the map tiles your search needs (never the whole 76M-row dataset).

  • 🌍 ~76M places worldwide — every business and POI, one global open dataset
  • 📇 Contact-richphone, email, website and socials[], with hasContact + contactMethods[] flags for instant lead lists
  • 🗺️ Exact geolatitude / longitude + full address; search by point + radius or bounding box, anywhere
  • Open & resellable — CDLA-Permissive 2.0, no API key, no fragile scraping — it doesn't break when a website changes

Quick start (API)

Get up to 100 restaurants with contact info within 2 km of central Mexico City, in one call:

curl -X POST "https://api.apify.com/v2/acts/foxlabs~location-intelligence/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "location": { "latitude": 19.4326, "longitude": -99.1332, "radiusKm": 2 }, "category": "restaurant", "onlyWithContact": true, "maxResults": 100 }'

Prefer no code? Open the Input tab, drop a point or a bounding box, set your filters, and click Start — then download the results.

What you get

One clean, flat JSON record per place:

FieldTypeDescription
idstringOverture GERS id — stable global place id
namestringPlace / business name
categorystringPrimary Overture category (e.g. restaurant)
alternateCategoriesarrayAdditional categories for the place
brandstringBrand name, where the place belongs to one
confidencenumberOverture source-confidence score (0–1)
phonestringPublic phone
emailstringPublic email
websitestringWebsite URL
socialsarraySocial profile URLs
hasContactbooltrue if any contact method is present
contactMethodsarrayWhich contacts exist: phone / email / website / social
addressstringFreeform street address
citystringLocality / city
regionstringRegion / state
postcodestringPostal code
countrystringISO-2 country code
latitude / longitudenumberExact coordinates (the place's point location)
source / licensestringProvenance: Overture release + CDLA-Permissive 2.0
scrapedAtstringISO timestamp of the run

Sample output

{
"id": "08f2f5b0e8a3c1a2039e7d4c6b1f0a2d",
"name": "Café de la Reforma",
"category": "cafe",
"alternateCategories": ["restaurant", "coffee_shop"],
"brand": null,
"confidence": 0.94,
"phone": "+52 55 5512 3456",
"email": null,
"website": "https://cafedelareforma.mx",
"socials": ["https://facebook.com/cafedelareforma"],
"hasContact": true,
"contactMethods": ["phone", "website", "social"],
"address": "Paseo de la Reforma 222",
"city": "Ciudad de México",
"region": "CDMX",
"postcode": "06600",
"country": "MX",
"latitude": 19.4267,
"longitude": -99.1642,
"source": "Overture Maps — places theme (release 2026-06-17.0)",
"license": "CDLA-Permissive 2.0 (© Overture Maps Foundation)",
"scrapedAt": "2026-07-05T10:22:41.000Z"
}

Illustrative record showing the exact field shape. Missing values are returned as null (or []), never guessed.

Example inputs (copy & paste)

// 1) Lead list: restaurants near a point that publish contact info
{ "location": { "latitude": 19.4326, "longitude": -99.1332, "radiusKm": 3 }, "category": "restaurant", "onlyWithContact": true, "maxResults": 1000 }
// 2) Brand footprint: every Starbucks inside a bounding box
{ "boundingBox": { "minLatitude": 19.30, "minLongitude": -99.25, "maxLatitude": 19.55, "maxLongitude": -99.05 }, "nameQuery": "Starbucks" }
// 3) Every place in a neighbourhood, restricted to one country
{ "location": { "latitude": 40.7580, "longitude": -73.9855, "radiusKm": 1 }, "country": "US", "maxResults": 5000 }
// 4) Market sizing: every pharmacy within 5 km of a point
{ "location": { "latitude": 19.4326, "longitude": -99.1332, "radiusKm": 5 }, "category": "pharmacy", "maxResults": 3000 }
// 5) Brand footprint within a country — Oxxo stores across a wide radius in Mexico
{ "location": { "latitude": 19.4326, "longitude": -99.1332, "radiusKm": 25 }, "nameQuery": "Oxxo", "country": "MX", "maxResults": 5000 }
// 6) Bounding-box lead list: hotels in a city box that publish contact info
{ "boundingBox": { "minLatitude": 40.70, "minLongitude": -74.02, "maxLatitude": 40.80, "maxLongitude": -73.93 }, "category": "hotel", "onlyWithContact": true, "maxResults": 2000 }
// 7) Reproducible export — pin a specific Overture release (cafés in central Paris)
{ "location": { "latitude": 48.8566, "longitude": 2.3522, "radiusKm": 2 }, "category": "cafe", "release": "2026-06-17.0" }

Input & filters

  • Where to search (required). Either a point + radiuslocation: { latitude, longitude, radiusKm } (radius 0.1–50 km, default 2) — or an explicit bounding box { minLatitude, minLongitude, maxLatitude, maxLongitude }. One of the two is required; everything else is optional.
  • Category — case-insensitive substring match on the place's primary category ("restaurant", "hotel", "pharmacy", "gym" …).
  • Name contains (nameQuery, or name) — case-insensitive substring on the place name; great for mapping a brand's footprint ("Starbucks", "Oxxo").
  • Country — restrict to a 2-letter ISO code ("MX", "US", "DE").
  • Only places with contact info (onlyWithContact) — keep only places that have a phone, email, website or social profile.
  • Max results — 1–50,000 per run. A dense urban area can hold thousands.
  • Overture release (advanced) — pin a specific release (e.g. "2026-06-17.0"); leave blank for the built-in current release.

Use cases

  • B2B lead generation. You sell to local businesses in a city. Set a location + category: "restaurant" + onlyWithContact: true → a CRM-ready list of places with a phone / website / email and exact address, filtered to just the ones you can actually reach — no manual list-building.
  • Competitor & brand footprint mapping. Pass nameQuery: "Starbucks" over a bounding box → every branch in the area with coordinates, ready to geo-plot and compare against your own locations.
  • Market sizing & site selection. Sweep a neighbourhood (or several) and count the density and mix of categories — how many cafés, gyms or pharmacies per area — to size a market or choose where to open next.
  • Store locators & map layers. Build a "places near me" layer for an app or website from latitude / longitude + address, refreshed on a schedule.
  • Local dataset enrichment. Have a rough list of areas or brands? Feed them in area by area to append category, brand, contact and precise geo — missing fields return null, never a guess.
  • Geospatial / GIS analysis. Export exact coordinates into your GIS for catchment, coverage or accessibility analysis across any region worldwide.

Performance & throughput

The Actor uses DuckDB spatial predicate push-down on Overture's public Parquet, so each run reads only the map tiles (row-groups) your area overlaps — never the full 76M rows. A tight neighbourhood or city-district search touches a small fraction of the data and returns quickly; expanding the radius or bounding box reads more tiles and takes longer, and very large areas trigger a warning. maxResults caps the rows returned. There are no external API keys, proxies or rate limits — the data comes from Overture's anonymous public cloud storage — so throughput is bounded mainly by your search area and Apify plan.

Integrations

JavaScript (apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('foxlabs/location-intelligence').call({
location: { latitude: 19.4326, longitude: -99.1332, radiusKm: 2 },
category: 'restaurant', onlyWithContact: true, maxResults: 500,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python (apify-client):

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("foxlabs/location-intelligence").call(run_input={
"location": {"latitude": 19.4326, "longitude": -99.1332, "radiusKm": 2},
"category": "restaurant", "onlyWithContact": True, "maxResults": 500,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["name"], item.get("phone"))

Also works with Make / n8n / Zapier (Apify app → run this Actor, map the input), scheduled runs, webhooks, and the Apify MCP server for AI agents.

Data quality (measured, not promised)

Live-measured on a 150-place sample in central Mexico City:

FieldFill rate
Name · Category · Coordinates~100%
City / Region / Country~99%
Address~94%
Postcode~91%
Phone~82%
Website~66%
Email~44%

Contact coverage is unusually high because Overture conflates multiple sources per place. Coverage varies by region and category. Contact fields come only from Overture's sources — never fabricated; missing values are null. Turn on Only places with contact info for lead-ready lists.

Pricing

Pay per result — you're billed per place returned. Turning on Only places with contact info narrows the set to lead-ready records so you don't pay for places you can't reach. There's an Apify free tier to evaluate the full feature set before you scale. No proxies or third-party costs.

FAQ

Can I use this data commercially / resell it? Yes — Overture Maps is licensed CDLA-Permissive 2.0, which permits commercial reuse and redistribution with attribution. Each record carries the required © Overture Maps Foundation attribution.

Do I need an API key or account with Overture? No. No key, no login — the Actor reads Overture's public cloud data directly.

How do I search a whole city or country? Search is area-based: give a point + radius or a bounding box. For large regions, break them into areas and run each — this is deliberate, so a run only reads the tiles it needs instead of the entire dataset.

How fresh is the data? Overture publishes a new release roughly monthly; the Actor targets the current release automatically. Pin an older one with the release field if you need to.

What export formats are available? JSON, CSV, Excel, or via the Apify API / integrations.

Is the contact info verified? No — it's source-conflated from Overture's upstream sources, not independently verified. A place may carry an out-of-date number. The confidence field reflects Overture's own source agreement (0–1).

How many places can I get in one run? Up to 50,000 via maxResults.

Can I map a specific brand? Yes — put the brand in nameQuery (e.g. "Starbucks") and search over a bounding box or radius.

What area size can I search? A radius up to 50 km, or any bounding box. Very large boxes read more map tiles and run slower — narrow the area or add a category filter for speed.

Which countries are covered? It's global (~76M places worldwide). Filter to one country with the ISO-2 country field.

Troubleshooting

  • 0 results → your area is too small or your filters too narrow. Widen the radiusKm / bounding box, clear category or onlyWithContact, and check your latitude / longitude aren't swapped.
  • "Provide a location or bounding box" error → you must supply an area to search — either location (latitude/longitude/radiusKm) or boundingBox (min/max latitude & longitude). It's the one required input.
  • Run is slow / reads a lot of data → your search area is large. Narrow the radius or bounding box, or add a category filter — the spatial push-down reads more tiles the bigger the area.
  • A place has no phone/email → not every place publishes contact info; that's the source data, not a miss (the value is null, never fabricated). Use Only places with contact info to keep just the ones that do.
  • Search is area-based. Overture is spatially indexed, so queries run per geographic area (point + radius or bounding box). Country-wide or global sweeps without an area are intentionally not offered — they'd read the entire dataset. Break big regions into areas.
  • Contact is source-conflated, not verified — coverage is high (measured ~82% phone on the sample above) but a place may carry an out-of-date number. confidence reflects Overture's own source agreement.
  • Coordinates are the place's point location; addresses are provided where a source supplied them (~94% on the sample).
  • Attribution required. Each record carries the CDLA-Permissive attribution © Overture Maps Foundation; keep it when you redistribute.
  • Freshness. Data refreshes roughly monthly; the Actor targets the current Overture release automatically (override with release).
  • Not affiliated with the Overture Maps Foundation; this Actor redistributes their public open data.

Support

Questions, a field you'd like added, or a custom build? Open the Issues tab on this Actor, or email info@foxlabs.com.tr. We reply fast.

If this Actor saves you time, a ⭐ review really helps.

Changelog

0.2 — 2026-07-05

  • Reworked docs: API quick-start, sample output, integrations, FAQ & troubleshooting.

0.1

  • Initial release. Area search (point+radius or bounding box) over Overture Maps' ~76M places with category/name/country filters; name, category, brand, contact (phone/email/website/socials), address, geo and confidence; DuckDB spatial push-down on public Parquet, no API key.

Part of the foXLabs data platform — official public-data company, contact, ownership, jobs, charity, location & AI-search intelligence scrapers. Browse the full suite at data.foxlabs.com.tr.