OpenStreetMap Scraper — Business & POI Data, No Key
Pricing
from $1.50 / 1,000 results
OpenStreetMap Scraper — Business & POI Data, No Key
OpenStreetMap POI scraper & Overpass API alternative. Export OSM business data (name, address, phone, website) to CSV/JSON without an API key.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
26
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Security
Limited permissionsShare
OpenStreetMap Scraper — Business & POI Data, Leads & GPS (No API Key)
An OpenStreetMap scraper that extracts local business and points-of-interest (POI) data by category from the live OpenStreetMap database via the free Overpass API. Get business name, full address, phone, website, email, opening hours and GPS coordinates for any city, bounding box or radius in the world. It's a low-cost alternative to the Google Maps / Places API — no API key, no Maps billing, no proxy, no browser — returning clean structured POI data ready to export to CSV, JSON or Excel.
🏆 Why this OpenStreetMap scraper?
Global coverage (190+ countries) · 50+ categories · name + address + phone + website + email + opening hours + GPS · 3 search modes (city / bbox / radius) · no API key, no proxy, no billing · export to JSON / CSV / Excel. The unofficial Overpass API / Google Maps API alternative for local-business lead generation, GIS research and directory building.
✨ What this Actor does / Key features
- 🌍 Global coverage — query 190+ countries from the live OSM database (updated every few minutes).
- 🏷️ 50+ categories — restaurants, cafes, bars, hotels, pharmacies, hospitals, supermarkets, schools, salons, fuel stations and more.
- 🗺️ Three search modes — by city name (auto-resolves a bounding box), by bounding box (south/west/north/east), or by radius around a point.
- 📇 Contact data — phone, website, email and machine-readable OSM
opening_hoursfor every POI that has them. - 📍 Full location — latitude, longitude, street, house number, city, postcode, country and a formatted full address.
- 🏢 Business detail — brand, operator, cuisine (restaurants) and wheelchair accessibility.
- 🔗 References — OSM element URL, plus Wikipedia/Wikidata links where tagged.
- 🧹 Quality filters — require a name tag and/or a street/city address to drop incomplete records.
- ⚡ No key, no proxy, no browser — powered by the free Overpass API; only an Apify account required.
🚀 Quick start (3 steps)
- Configure — pick a Search Mode:
city(type a city name),bbox(four coordinates), orradius(center point +radiusMeters). Set Categories and optional filters. - Run — click Start. The Actor queries Overpass for each category and streams POIs into your dataset.
- Get your data — open the Output tab and export to JSON, CSV, Excel or XML, or pull it via the Apify API.
📥 Input
Choose a searchMode and provide the matching area fields. Everything else is optional.
Example — restaurants, cafes & hotels in a city
{"searchMode": "city","city": "Istanbul","categories": ["restaurant", "cafe", "hotel"],"requireName": true,"requireAddress": false,"maxResults": 500,"queryConcurrency": 3}
Example — pharmacies & supermarkets within a radius (site selection)
{"searchMode": "radius","centerLat": 52.5200,"centerLng": 13.4050,"radiusMeters": 2000,"categories": ["pharmacy", "supermarket"],"requireAddress": true,"maxResults": 1000}
Example — every business in a bounding box (directory build)
{"searchMode": "bbox","bboxSouth": 51.47,"bboxWest": -0.15,"bboxNorth": 51.53,"bboxEast": -0.07,"categories": ["restaurant", "cafe", "bar", "hotel", "pharmacy"],"requireName": true,"maxResults": 0}
| Field | Type | Description | Default |
|---|---|---|---|
searchMode | string | city (auto bbox), bbox (S/W/N/E) or radius (point + radius). | bbox |
city | string | City to search (when searchMode = city). | London |
bboxSouth / bboxWest / bboxNorth / bboxEast | number | Bounding-box boundaries (when searchMode = bbox). | London bbox |
centerLat / centerLng | number | Center point (when searchMode = radius). | London center |
radiusMeters | integer | Search radius in meters (100–50,000) for radius mode. | 1000 |
categories | array | POI types to search (e.g. restaurant, cafe, hotel, pharmacy). | ["restaurant","cafe","hotel"] |
requireName | boolean | Only return POIs that have a name tag in OSM. | true |
requireAddress | boolean | Skip POIs with no street or city address. | false |
maxResults | integer | Max POIs to return. 0 = unlimited. | – |
queryConcurrency | integer | Parallel Overpass batches (keep 2–3 to avoid rate limiting). | 3 |
Tip: enable
requireAddressto keep only records complete enough for lead lists and directory building. Major chains are usually well-tagged; small independent businesses may have only a name and coordinates.
📤 Output
One structured item per POI — exportable to JSON, CSV, Excel or XML. Here is a trimmed sample record:
{"osmId": "123456789","osmType": "node","name": "Café Central","category": "food","subcategory": "cafe","lat": "41.0082","lng": "28.9784","fullAddress": "İstiklal Caddesi 12, 34430 Beyoğlu, Istanbul, Türkiye","street": "İstiklal Caddesi","houseNumber": "12","city": "Istanbul","postcode": "34430","country": "Türkiye","phone": "+90 212 000 0000","website": "https://cafecentral.example","email": "hello@cafecentral.example","openingHours": "Mo-Su 08:00-23:00","brand": null,"operator": null,"cuisine": "coffee_shop","wheelchair": "yes","osmUrl": "https://www.openstreetmap.org/node/123456789","scrapedAt": "2026-07-06T12:00:00.000Z"}
Additional output fields
These fields are also present in the dataset:
| Field | Type | Description |
|---|---|---|
shop | — | OSM shop tag, if present. |
tourism | — | OSM tourism tag, if present. |
office | — | OSM office tag, if present. |
wikipedia | — | Linked Wikipedia article, if any. |
wikidata | — | Linked Wikidata ID, if any. |
💡 Use cases
- Local-business lead generation — build targeted lists (restaurants, hotels, clinics, salons) with phone numbers and websites for sales outreach.
- Google Maps API alternative — get comparable geographic data for free when Maps API costs or quotas become a problem.
- Local directory sites — seed neighbourhood guides and city portals with real addresses, hours and categories.
- GIS & research — download structured POI data for spatial analysis and urban planning; load directly into QGIS, PostGIS or Python.
- Real estate & site selection — find pharmacies, supermarkets and schools within a radius of a prospective site for amenity scoring.
- Market research — count businesses per neighbourhood, map competitor density and spot underserved areas.
👥 Who uses it
B2B lead-gen agencies & sales teams · GIS analysts and urban planners · local-directory and city-guide publishers · proptech and site-selection teams · market researchers · developers seeding maps and location apps.
💰 Pricing
This Actor runs on a simple pay-per-result model — you pay for the POIs you extract, with no separate Apify platform fees to calculate. Try it on the free tier first, then scale up. See the Pricing tab on this page for the current rate.
❓ Frequently Asked Questions
Do I need an API key or login? No. There is no API key, no Google Maps billing and no proxy required — the Actor uses the public Overpass API. You only need an Apify account to run it.
Is this an Overpass API alternative? Yes. It wraps the free Overpass API so you can scrape OpenStreetMap without writing Overpass QL — pick a city, bbox or radius plus categories and get clean POI records back.
Can I scrape OpenStreetMap business data without an API key? Yes. There is no API key, no Google Maps billing and no proxy — the public Overpass API powers an OSM business directory dataset for any area worldwide.
Is it legal to scrape OpenStreetMap data? Yes. OpenStreetMap data is open under the Open Database License (ODbL). When you publish work using the data, attribution to "© OpenStreetMap contributors" is required.
How does this compare to the Google Maps API? The Google Maps / Places API charges per request and enforces quotas. The Overpass API is free with generous limits, and OSM often has strong coverage in Europe plus machine-readable opening hours that Google doesn't expose.
How do I scrape all restaurants in a city from OpenStreetMap?
Set searchMode to city, type the city name, and add restaurant to categories — the scraper resolves the city's bounding box and returns every matching POI with address and contact tags.
Can I search OpenStreetMap POIs within a radius of a point?
Yes. Set searchMode to radius, provide centerLat, centerLng and radiusMeters, and the scraper returns POIs inside that circle — ideal for site-selection amenity scoring.
How do I get only businesses that have an address in OpenStreetMap?
Enable requireAddress to drop POIs without a street or city, keeping records complete enough for lead lists and directory building.
Why are some POIs missing phone numbers or websites?
OSM completeness varies — major chains are usually well-tagged, while small independent businesses may have only a name and coordinates. Enable requireAddress to filter out incomplete records.
How do I export OpenStreetMap data to CSV or JSON? Run the Actor and download the dataset as CSV, JSON, Excel (XLSX) or XML from the run, or pull it via the Apify API. Each POI becomes one structured row.
🔗 More lead-gen & local-data scrapers by logiover
Building a local-business lead or directory dataset? Pair OpenStreetMap with these:
| Actor | What it does |
|---|---|
| B2B Lead Scraper | Company + person + email leads by sector & country |
| Website Contact Scraper | Emails, phones & socials from business websites |
| Bulk Social Profile Extractor | Enrich domains with social profiles |
| Bulk Email Verifier | Validate outreach email lists |
| Bulk Email Deliverability Checker | Score deliverability before you send |
| Eventbrite Scraper | Events + organizer website & socials for leads |
| Y Combinator Companies Directory | YC startup directory for B2B leads |
| Swiggy Restaurant Scraper | Restaurant listings & details |
| GLEIF LEI Scraper | Legal-entity identifiers & registered addresses |
| Website SEO Audit Crawler | Audit prospect websites at scale |
👉 Browse all logiover scrapers on Apify Store — 180+ actors across real estate, jobs, crypto, social media & B2B data.
⏰ Scheduling & integration
Schedule this Actor on Apify to keep POI datasets fresh. Export results to JSON, CSV or Excel, sync to Google Sheets, or push to your database, CRM, GIS tools and webhooks through the Apify API. Connect it to Make, n8n or Zapier to build automated lead-gen and mapping pipelines. Load results directly into QGIS, PostGIS or Python.
⭐ Support & feedback
Found a bug or need an extra field? Open an issue on the Issues tab — response is usually fast. If this Actor saves you time, a ★★★★★ review on the Store page genuinely helps and is hugely appreciated. 🙏
⚖️ Legal
OpenStreetMap data is open under the Open Database License (ODbL). When you publish work using the data, attribution to "© OpenStreetMap contributors" is required. You are responsible for complying with the ODbL and any applicable local laws.
This Actor is an independent tool. It is not affiliated with, endorsed by, or sponsored by OpenStreetMap; OpenStreetMap and all other trademarks mentioned here are the property of their respective owners.
How much OpenStreetMap data can you extract in one run?
A single run returned 1,000 business records in 141 seconds on the example input, and it was still going when the measurement stopped — raise the result limit and it keeps paginating. That is roughly 425 business records a minute.
There is no hard ceiling built into this Actor. What bounds a run is the result limit you set, the breadth of the input you give it, and how much OpenStreetMap itself publishes. Because billing is per result, a wider run costs proportionally more and a narrow one costs almost nothing — so it is worth starting small and scaling once the output looks right.
OpenStreetMap scraping — frequently asked questions
Do I need a OpenStreetMap API key, account or login?
No. This Actor reads publicly available pages and feeds, so there is nothing to register for and no credentials to manage.
How do I export OpenStreetMap data to CSV, Excel, JSON or Google Sheets?
Open the Storage tab after a run and pick the format you want — CSV, Excel, JSON, XML or an HTML table. For Google Sheets, Airtable or a database, use the dataset URL or the Apify API so the sheet refreshes itself on every run.
Can I schedule this OpenStreetMap scraper to run daily or hourly?
Yes. Use the Schedules tab and pick a cadence. Daily is enough for most tracking work; pick hourly only if the business records you care about really do change that fast.
How many business records can I get, and what does it cost?
See the volume section above for a measured figure. Billing is per result, so you pay for the rows you actually receive and a run that finds nothing costs nothing.
Is scraping OpenStreetMap legal?
This Actor collects only information that OpenStreetMap publishes publicly. It does not log in, does not defeat access controls and does not touch private data. You remain responsible for how you use the output, including under GDPR and similar rules where personal data is involved.
What happens if OpenStreetMap blocks the run or changes its layout?
A refused exit IP is swapped for a fresh one within a quarter of a second and retried, and rate limiting is waited out rather than fought. If nothing gets through, the run fails with the reason instead of reporting success with zero rows — so an empty result always means "no matches", never "the source would not answer".
Can I use this with an AI agent, LangChain or an MCP client?
Yes. The Actor is callable over the Apify API and through Apify's MCP server, so an agent can run it and read the dataset back as a tool call.
📝 Changelog
2026-11-01
- Monthly health check (2026-11-01): a live run on the current build completed successfully and returned data. Input options, output fields and pricing are unchanged.
- README refreshed: 2 links to renamed Actors updated; independence disclaimer added; documented 5 additional output fields.
2026-10-15
- A run that reaches its maximum cost per run now stops cleanly with its results saved and a status message, instead of ending as aborted.
- A proxy group your account cannot use no longer stops the run at start-up; it falls back to the default Apify Proxy.
- Runs with a short timeout (API and AI-agent calls) now finish inside it with what they collected, instead of being cut off.
- Memory is managed within the run's own limit, which removes a rare out-of-memory crash on large pages.
- The prefilled example for
maxResultsis now 333 (was 100). - The default used when the field is left out for
maxResultsis now 8,510 (was 100).
2026-09-23
- Fleet-wide quality audit. Verified end to end against live data and re-checked the input schema, the output columns and the run configuration.
- Output verified on a live run: 29 columns returned, 54.5% of cells populated.
- Run reliability reviewed: 100.0% of public runs succeeded in the last 30 days.
- Input schema, output schema and pricing configuration reviewed.
- Noted that 3 column(s) came back empty in this sample (
shop,office,wikipedia); these are under review.
2026-09-01
- Fleet-wide health check. Verified against this Actor's real run history: 30-day success rate, output row counts, per-field fill rates, and peak memory against the configured memory limit.
- Reviewed for the failure patterns that have cost this fleet runs — unguarded proxy setup, retry loops that can outlast the run's own time budget, and full-page HTML parsing that can exhaust a small container.
- No change to input, output fields or scraping logic.
2026-08-11
- Maintenance release: refreshed the build and dependencies.
- Re-verified live execution, non-empty structured output and dataset field/type integrity.
- Reviewed reliability (retries, pagination) and output quality as part of a full-fleet QA pass.
2026-08-01
- Completed the August 2026 full health check: verified empty/programmatic default, Console UI default, and two source-informed alternative inputs on Apify.
- Confirmed successful live execution, non-empty structured output, dataset-field/type integrity, and logical sample quality within the 5-minute quality window.
2026-07-06
- ✨ README overhaul: richer output sample, three ready-to-run example scenarios, expanded lead-gen/local-data cross-links, and clearer quick-start.
2026-07-01
- Maintenance pass: re-verified end-to-end on live data and confirmed successful runs within the 5-minute quality window on the default input.
- Sharpened Store metadata (SEO title & description) and expanded the FAQ with high-intent, long-tail questions for easier discovery in Google and Apify Store search.
- Added ready-to-run example tasks that cover common real-world use cases.
2026-06-15
- Reliability pass: re-verified end-to-end on live data with real-world inputs. Routine maintenance build.
2026-06-07
- Docs: added coverage for Overpass API alternative usage, exporting OpenStreetMap data to CSV/JSON, and scraping OSM business data without an API key.
2026-06-05
- Reliability fix: results are no longer dropped by strict output validation — runs complete cleanly at high volume.
- Stability & performance hardening; fresh rebuild.
2026-06-04
- Verified live & refreshed build — reliability/maintenance pass.
2026-06-01
- Maintenance & reliability pass: rebuilt the actor on the current base image; build verified.
*Maintained: last verified 2026-11-01 — checked end-to-end against live run history (reliability, output fields and types, and time/memory budgets).