OpenStreetMap POI Scraper โ Local Business Data
Pricing
from $0.0004 / poi scraped
OpenStreetMap POI Scraper โ Local Business Data
Extract points of interest / local businesses from OpenStreetMap by category and area: name, address, coordinates, phone, website, opening hours and more. Great for lead generation.
Pricing
from $0.0004 / poi scraped
Rating
0.0
(0)
Developer
hiper soft
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
6 days ago
Last modified
Categories
Share
OpenStreetMap POI Scraper โ local business data by category & area, address, phone, coordinates & hours, no API key
Extract points of interest and local businesses from OpenStreetMap by category and area. Give it a place name and a category and get back clean, structured JSON: name, full address, coordinates, phone, website, email, and opening hours. Backed by free community map data โ no account, no API key. Great for lead generation, local market research, and building location datasets.

Features
- ๐๏ธ 20 ready categories โ pick from restaurants, cafes, bars, hotels, supermarkets, pharmacies, banks, gyms, and more via
category, or usecustom. - ๐ท๏ธ Custom tag filters โ with
category: custom, target any OSM tags viacustomFilterslikeshop=bakeryortourism=museum. - ๐ Full location data โ each POI carries
latitude/longitude, a structured address, plus readyosmUrlandgoogleMapsUrllinks. - โ๏ธ Contact details โ
phone,website, andemailpulled from OSM contact tags where present. - ๐ Rich attributes โ
openingHours,cuisine,brand,operator, andwheelchairaccessibility, plus the rawtagsobject. - ๐ Any area, auto-geocoded โ pass place names like
Austin, TexasorBerlin; each is geocoded to a bounding box automatically. - ๐ข Volume control โ cap output with
maxItemsPerArea(up to 10000); results are deduplicated per area.
What you get

Each row is one point of interest:
{"name": "Franklin Barbecue","category": "restaurant","area": "Austin, Texas","street": "East 11th Street","houseNumber": "900","city": "Austin","postcode": "78702","country": "United States","phone": "+1-512-653-1187","website": "https://franklinbbq.com","email": null,"openingHours": "Tu-Su 11:00-15:00","cuisine": "barbecue","brand": null,"operator": null,"wheelchair": "yes","latitude": 30.2701,"longitude": -97.7314,"osmType": "node","osmId": 123456789,"osmUrl": "https://www.openstreetmap.org/node/123456789","googleMapsUrl": "https://www.google.com/maps/search/?api=1&query=30.2701,-97.7314","tags": { "amenity": "restaurant", "name": "Franklin Barbecue" }}
Output schema
| Field | Type | Description |
|---|---|---|
name | string | Name of the place or business. |
category | string | Category the POI was matched under (e.g. restaurant). |
area | string | Area query the POI was found in. |
street | string | Street name of the address. |
houseNumber | string | Building or house number. |
city | string | City or town. |
postcode | string | Postal code. |
country | string | Country name. |
phone | string | Contact phone number. |
website | string | Website URL. |
email | string | Contact email address. |
openingHours | string | Opening hours in OpenStreetMap syntax. |
cuisine | string | Cuisine type, for food and drink places. |
brand | string | Brand name if the place is part of a chain. |
operator | string | Organisation that operates the place. |
wheelchair | string | Wheelchair accessibility status. |
latitude | number | Latitude coordinate. |
longitude | number | Longitude coordinate. |
osmType | string | OpenStreetMap element type (node, way or relation). |
osmId | integer | OpenStreetMap element identifier. |
osmUrl | string (URL) | Link to the element on OpenStreetMap. |
googleMapsUrl | string (URL) | Google Maps link for the coordinates. |
tags | object | Raw OpenStreetMap tag key/value pairs for the element. |
Input
{"areas": ["Austin, Texas", "Berlin, Germany"],"category": "restaurant","maxItemsPerArea": 500}
| Field | Description |
|---|---|
areas | Place names to search within; each is geocoded to a bounding box (required). |
category | Type of place, e.g. restaurant, cafe, hotel, pharmacy, or custom. Default restaurant. |
customFilters | For category: custom, OSM key=value tags like shop=bakery; any match is included. |
maxItemsPerArea | Maximum POIs to collect per area, 1โ10000. Default 500. |
Use cases
- Build local-business lead lists with names, phones, and websites.
- Research market density and competitors in a target area.
- Enrich CRM or mapping data with coordinates and opening hours.
- Assemble category-specific place datasets across multiple cities.
Need more local & maps data?
FAQ
How many places can I scrape?
Up to 10,000 POIs per area โ set maxItemsPerArea to control the volume; results are deduplicated per area.
Do I need any setup, account or API key? No. Just enter the areas and category and run โ no login or key required.
Which categories are supported?
20 ready categories (restaurants, cafes, bars, hotels, supermarkets, pharmacies, banks, gyms and more), plus custom with your own customFilters tags.
What export formats are supported? JSON, CSV, Excel and XML, plus the Apify API for programmatic access.
How does billing work? Pay-per-event: a small amount per run and per item โ you only pay for what you get.
Can I connect it to other tools? The OpenStreetMap POI Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JavaScript/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Notes
Returns only openly available, community-contributed OpenStreetMap data. This is an independent tool and is not affiliated with or endorsed by the OpenStreetMap Foundation; OpenStreetMap is a trademark of its respective owner. Please respect OSM data usage and attribution guidelines.