Overture Maps Places Extractor
Pricing
Pay per event
Overture Maps Places Extractor
🌍 Query public Overture Maps Places by bounding box or radius. Export normalized POIs, contacts, addresses, categories, coordinates, confidence, provenance, and GERS IDs.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Extract public points of interest from Overture Maps Places without a Google Maps API key, browser, proxy, or login.
Choose a bounding box or a point and radius, add optional place filters, and receive a clean dataset of names, categories, addresses, contacts, coordinates, confidence scores, provenance, and stable GERS IDs.
The Actor reads Overture's official global GeoParquet release directly from public S3. DuckDB applies area and attribute predicates before returning a bounded result set, so your workflow does not download the full planet dataset.
- 🌍 Search public global POI data by area.
- 📍 Use a rectangle or point-and-radius workflow.
- 🏷️ Filter by place name, Overture category, country, and confidence.
- 📞 Export phones, emails, websites, and social links when available.
- 🔁 Pin a release for repeatable GIS and enrichment jobs.
- 🧩 Integrate through API, schedules, webhooks, Make, n8n, Zapier, or MCP.
What does Overture Maps Places Extractor do?
The Actor turns Overture Maps' large Places GeoParquet distribution into a simple Apify input and dataset.
Instead of operating DuckDB yourself, discovering new releases, understanding nested Overture fields, and flattening records for CSV or CRM imports, you provide one small JSON input.
For every matching place, the Actor can return:
- GERS place ID;
- primary and translated names;
- primary, alternate, basic, and taxonomy categories;
- free-form address, locality, postcode, region, and country;
- phone numbers, emails, websites, and socials;
- Overture confidence and operating status;
- latitude and longitude;
- source dataset and source record identifiers;
- Overture release, record version, and public source URL.
The Actor automatically discovers the newest public release unless you supply a pinned release.
Who is it for?
Lead generation teams
Build territory lists of cafes, shops, restaurants, service providers, or other local organizations. Export contact fields to your qualification or enrichment pipeline.
GIS and location intelligence analysts
Create bounded POI layers for density comparisons, catchment analysis, market coverage, or map visualization. Stable GERS IDs help deduplicate and join records over time.
Retail and location planners
Compare business presence around candidate sites, transport hubs, neighborhoods, and competitor territories.
Data engineering teams
Schedule repeatable snapshots of selected regions, pin releases for reproducibility, and send structured output to warehouses or object storage.
Researchers and open-data users
Explore a commercial-use-friendly public map dataset without maintaining a Parquet query environment.
Why use this Overture Maps extractor?
- Official public data: queries Overture's published Places release, not a protected consumer website.
- No credentials: no API key, paid map account, cookies, or CAPTCHA solving.
- Bounded queries: every run requires a geographic area and a strict output limit.
- Useful normalization: nested source records become export-friendly place rows.
- Reproducibility: use the latest release or pin a known release.
- Apify-native delivery: datasets, schedules, webhooks, API clients, integrations, and MCP work out of the box.
- Source transparency: output includes release and provenance fields.
Choose this Actor when open Overture data is appropriate. Choose a consumer-map scraper when you specifically need reviews, ratings, opening hours, photos, or ranking signals that Overture does not publish.
What Overture Maps place data can I extract?
| Field | Description |
|---|---|
gersId | Stable Overture GERS identifier |
name | Primary place name |
nameTranslations | Available language-to-name translations |
category | Primary Overture category |
alternateCategories | Alternate Overture categories |
basicCategory | Broad basic category |
taxonomyHierarchy | Category hierarchy |
address | Free-form address |
locality | City or locality |
postcode | Postal code |
region | State, province, or region |
country | Two-letter country code |
phones | Published phone numbers |
emails | Published email addresses |
websites | Published websites |
socials | Published social profile URLs |
confidence | Overture confidence from 0 to 1 |
operatingStatus | Available operating-status value |
latitude, longitude | Coordinates derived from the point bbox center |
sourceDatasets | Contributing source datasets |
sourceRecordIds | Contributing source record IDs |
version | Overture entity version |
release | Queried Overture release |
sourceUrl | Public S3 Places prefix |
extractedAt | UTC extraction timestamp |
Sparse source fields are emitted as empty arrays or omitted, rather than invented.
How to extract Overture Maps places
- Open the Actor input page.
- Keep the prefilled central-Berlin bounding box for a quick first run, or enter your own box.
- Alternatively, remove
boundingBoxand providelatitude,longitude, andradiusKmtogether. - Add a category such as
cafe,restaurant,shoe_store, orpolice_departmentif needed. - Optionally add a name substring, country code, or minimum confidence.
- Set a conservative
maxItemswhile validating your area. - Start the Actor and inspect the Overture places dataset view.
- Export JSON, CSV, Excel, XML, or another Apify-supported format.
- Scale the limit or schedule the input after confirming the results.
A first bounded query normally completes well within the default timeout. Remote Parquet footer and row-group reads make startup slower than a small JSON API, so avoid splitting one area into many tiny runs unnecessarily.
Input parameters
| Input | Type | Required | Notes |
|---|---|---|---|
boundingBox | object | One area mode | west, south, east, north; maximum 25 square degrees |
latitude | number | Point-radius mode | -90 to 90 |
longitude | number | Point-radius mode | -180 to 180 |
radiusKm | number | Point-radius mode | Greater than 0, maximum 100 km |
name | string | No | Case-insensitive primary-name substring |
category | string | No | Exact primary or alternate Overture category |
country | string | No | Two-letter ISO code such as DE or US |
minConfidence | number | No | 0 to 1 |
maxItems | integer | No | 1 to 10,000; default 10 |
release | string | No | Example: 2026-06-17.0; newest is automatic |
Exactly one geographic mode is required. Mixing a bounding box with point-radius fields fails clearly instead of silently choosing one.
Bounding box input example
{"boundingBox": {"west": 13.39,"south": 52.50,"east": 13.42,"north": 52.53},"category": "cafe","country": "DE","minConfidence": 0.7,"maxItems": 100}
Longitude is west/east. Latitude is south/north. The box must not cross the antimeridian in one run.
Point and radius input example
{"latitude": 40.758,"longitude": -73.9855,"radiusKm": 2,"name": "coffee","maxItems": 50}
The Actor first uses a rectangular envelope for Parquet pruning, then applies a Haversine distance predicate so corner records outside the requested circle are excluded.
Output example
{"gersId": "360accab-e531-4437-8527-164f85833ad6","name": "Polizei Abschnitt 53","category": "police_department","alternateCategories": [],"taxonomyHierarchy": ["public_service"],"address": "Friedrichstraße 219","locality": "Berlin","postcode": "10969","country": "DE","phones": ["030 4664553700"],"emails": [],"websites": ["https://www.berlin.de/polizei/"],"socials": [],"confidence": 0.77,"latitude": 52.505039,"longitude": 13.390381,"sourceDatasets": ["meta"],"sourceRecordIds": ["example-record"],"version": 1,"release": "2026-06-17.0","sourceUrl": "https://overturemaps-us-west-2.s3.us-west-2.amazonaws.com/release/2026-06-17.0/theme=places/type=place/","extractedAt": "2026-07-18T00:00:00.000Z"}
The exact fields depend on Overture's source coverage for each place.
How much does it cost to extract Overture Maps places?
The Actor uses pay-per-event pricing:
- a small one-time search started event covers release discovery and opening remote Parquet data;
- a place saved event is charged for each dataset row;
- subscription tiers receive decreasing per-place prices.
| Apify tier | Price per saved place |
|---|---|
| Free | $0.000059468 |
| Bronze | $0.000051711 |
| Silver | $0.000040335 |
| Gold | $0.000031027 |
| Platinum | $0.000020684 |
| Diamond | $0.000014479 |
The one-time run-start price is $0.005. The Apify Console pricing tab is authoritative. Before a larger run, estimate the maximum charge from your maxItems and current subscription-tier price.
A tight area and category can return fewer rows than maxItems; you are charged only for places actually saved, plus the start event.
Tips for better place extraction
- 🎯 Start with a small bounding box and
maxItems: 10. - 🧭 Confirm longitude/latitude order before running a rectangle.
- 🏷️ Use Overture taxonomy values with underscores, such as
shoe_store. - 🌎 Add a country code when a box overlaps a border.
- ✅ Raise
minConfidencefor conservative enrichment workflows. - 🔁 Pin
releasewhen comparing changes between scheduled runs. - 🧩 Deduplicate downstream by
gersId, not by name. - 📦 Prefer one moderate run over dozens of tiny adjacent runs when practical.
- 🔍 Remove restrictive filters if a valid area returns no rows.
Scheduled monitoring and snapshots
Create an Apify task with a pinned region and category, then schedule it weekly or monthly.
For change detection:
- store the current dataset in your warehouse;
- use
gersIdas the stable join key; - compare
version, contact fields, category, and operating status; - use the output
releaseto label each snapshot; - trigger a webhook when the run succeeds.
A pinned release produces reproducible results. Leave release empty when each schedule should automatically use Overture's newest available publication.
Integrations
Google Sheets and Excel
Export the dataset as CSV or XLSX for territory review. Keep gersId, coordinates, and release columns so analysts can trace and deduplicate rows.
Airtable and CRM pipelines
Send new GERS IDs through Make, n8n, or Zapier. Map name, address, phone, email, website, and category into prospect records, then apply your own qualification rules.
GIS and warehouses
Load JSON or CSV into BigQuery, Snowflake, Postgres/PostGIS, QGIS, or ArcGIS. Create geometry from longitude and latitude and preserve source provenance.
Webhooks and Actor chains
Attach a run-succeeded webhook, or call a second Actor to enrich websites, validate emails, geocode addresses, or compare snapshots.
Use the Apify API
Use the Actor ID automation-lab/overture-maps-places-extractor.
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/overture-maps-places-extractor').call({boundingBox: { west: 13.39, south: 52.50, east: 13.42, north: 52.53 },category: 'cafe',maxItems: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/overture-maps-places-extractor').call(run_input={'latitude': 40.758,'longitude': -73.9855,'radiusKm': 2,'maxItems': 50,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL
curl "https://api.apify.com/v2/acts/automation-lab~overture-maps-places-extractor/runs?token=$APIFY_TOKEN" \-X POST \-H 'Content-Type: application/json' \-d '{"boundingBox":{"west":13.39,"south":52.50,"east":13.42,"north":52.53},"maxItems":10}'
Poll the returned run or use the synchronous API endpoint when your client can wait for completion.
Use with Apify MCP
MCP lets AI assistants discover and run this Actor as a tool.
Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/overture-maps-places-extractor"
Example prompts:
- “Find up to 50 cafes from Overture Maps in this Berlin bounding box.”
- “Extract high-confidence restaurants within 3 km of these coordinates.”
- “Run the Overture place extractor and summarize categories by locality.”
Claude Desktop, Cursor, and VS Code
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/overture-maps-places-extractor"}}}
Configure your Apify authentication according to the MCP client and Apify MCP documentation.
Data quality and limitations
Overture combines open and partner-contributed source data. Coverage and freshness vary by country, category, and field.
- Some places have no phone, email, website, or social link.
- Categories may not match consumer-map taxonomies exactly.
- The Actor does not provide reviews, ratings, photos, popular times, or search rank.
- Coordinates are derived from the center of Overture's point bounding box.
- Name filtering applies to the primary name.
- A strict category filter matches Overture primary or alternate category values.
- A maximum result limit is not a pagination promise; it is a safety ceiling.
- Overture can add, remove, or evolve source fields between releases.
Always sample the dataset before using it for outreach, compliance, or high-impact decisions.
Is extracting Overture Maps data legal?
Overture Maps publishes its data for broad reuse under its documented data licenses. Individual source records can carry source and license provenance, and users remain responsible for following the applicable Overture terms, source attribution requirements, privacy law, and rules governing their downstream use.
Do not use contact data for spam, harassment, discrimination, surveillance, or unlawful profiling. Review Overture's current license documentation before redistribution.
This README is technical information, not legal advice.
FAQ
Does this Actor require an Overture API key?
No. It reads Overture's public S3 GeoParquet release anonymously.
Does it use a browser or proxy?
No. DuckDB performs remote range reads against public S3 objects.
Can I search the whole world?
No. Every run requires a bounded area. This protects runtime, network use, and predictable costs.
Why did my valid search return zero places?
The area may have no matching source records, or your name, category, country, or confidence filter may be too restrictive. Retry locally with filters removed and a small result limit.
Why did my run reject the geographic input?
Provide either boundingBox or all three point-radius fields. Do not supply both. Ensure west is less than east and south is less than north.
How do I find valid categories?
Run a small area without category, inspect category and alternateCategories, then reuse the exact underscore-form value.
Can I reproduce a previous dataset?
Supply the previous output's release value. Availability follows Overture's public release retention policy.
Are GERS IDs stable?
They are designed as stable identifiers for joining Overture entities. Use the output gersId as the stable identifier, and preserve version and release as well when tracking change.
Related scrapers
Use other automation-lab Actors when Overture's open-data scope is not enough:
- Google Maps Scraper for consumer-map business discovery and richer map-specific signals.
- OpenStreetMap Scraper for OpenStreetMap entities and tags.
- Website Contact Scraper to enrich returned websites with contact details.
Check each linked Actor's current input and availability before building a production chain.
Support
If a run fails, include the run URL, sanitized input, expected area, and whether the release was automatic or pinned.
Useful troubleshooting details include:
- the exact bounding box or center and radius;
- category and country filters;
- selected
maxItems; - pinned release, if any;
- whether the failure repeats with the prefilled Berlin example.
For data corrections to the underlying map, consult Overture Maps and the provenance fields rather than editing Actor output manually.