OSM Business Lead Generator — Free B2B Leads from OpenStreetMap
Pricing
Pay per usage
OSM Business Lead Generator — Free B2B Leads from OpenStreetMap
Generate B2B business leads from OpenStreetMap open data. Search by category (dentist, restaurant, hotel) and city. Free data, no API key needed.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Niu Yuchiao
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Generate verified B2B business leads from OpenStreetMap open data — completely free, no API key required, no anti-scraping limitations. Search by business category and city, and get name, address, phone, website, coordinates, and more.
Why OpenStreetMap?
| Feature | OSM (This Actor) | Google Maps Scraper |
|---|---|---|
| Cost | Free data | Expensive compute |
| Reliability | 100% (open API) | Varies (blocks) |
| Legal | ODbL open license | TOS grey area |
| Speed | Very fast | Slow (browser) |
| Coverage | 190+ countries | 190+ countries |
OpenStreetMap has over 1 billion nodes of business data contributed by millions of volunteers worldwide. For B2B prospecting, this is often more current than Google Maps because local businesses update their own OSM listings.
Use Cases
- Sales prospecting: Find dental clinics, law firms, restaurants, hotels in any city
- Market research: Count competitors by category and location
- CRM enrichment: Add addresses, phones, websites to your lead lists
- Local SEO agencies: Audit business listing coverage in any area
- Healthcare outreach: Find hospitals, pharmacies, clinics, doctors
Supported Business Types
Healthcare
dentist · doctor · hospital · pharmacy · clinic · optician · physiotherapist
Food & Hospitality
restaurant · cafe · bar · fast_food · hotel · hostel · guest_house
Professional Services
lawyer · accountant · insurance · bank · post_office
Retail
supermarket · convenience · bakery · hairdresser · beauty · electronics
Education & Fitness
school · university · gym · sports_centre · swimming_pool
Any valid OpenStreetMap amenity= or shop= tag is supported.
Input
{"businessType": "dentist","city": "Taipei","country": "TW","maxResults": 100,"includeCoordinates": true}
| Field | Type | Required | Description |
|---|---|---|---|
businessType | String | ✅ | OSM amenity/shop tag (e.g., dentist, restaurant, hotel) |
city | String | ✅ | English city name (e.g., Taipei, Tokyo, Berlin) |
country | String | ISO country code (e.g., TW, US, JP) — improves accuracy | |
maxResults | Integer | Max leads to return, 1–1000 (default: 100) | |
includeCoordinates | Boolean | Include lat/lon in output (default: true) |
Output
Each record in the dataset:
{"name": "Dr. Chen Dental Clinic","category": "dentist","address": "123 Zhongshan N. Rd., Zhongshan District","street": "Zhongshan N. Rd.","city": "Taipei","postcode": "10401","country": "TW","phone": "+886 2 1234 5678","website": "https://example.com","email": "contact@example.com","openingHours": "Mo-Fr 09:00-18:00","lat": 25.0639,"lon": 121.5278,"osmId": 1234567890,"osmType": "node","sourceUrl": "https://www.openstreetmap.org/node/1234567890"}
After the run, a summary is also saved to the Key-Value store (OUTPUT_SUMMARY) with total count and stats on how many leads have phone, website, and email.
Tips for Best Results
- Use English city names —
Taipeinot台北市,Tokyonot東京 - Large cities return more results —
LondonbeatsKensington - Combine with other data — Use the
sourceUrlto link back to OSM for the most up-to-date info - Export to CSV — In the dataset view, click "Export to CSV" for use in Excel or CRM
Data License
All data is sourced from OpenStreetMap under the Open Database License (ODbL). You are free to use this data commercially, with attribution to OpenStreetMap contributors.
Integrate with Your Stack
Export to CSV (no code)
Click "Export" → "CSV" in the Apify Console dataset view.
Via Apify API
const { ApifyClient } = require('apify-client');const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('yuchiaoniu/osm-business-lead-generator').call({businessType: 'dentist',city: 'Tokyo',country: 'JP',maxResults: 500,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items); // Array of business leads
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("yuchiaoniu/osm-business-lead-generator").call(run_input={"businessType": "restaurant","city": "Berlin","country": "DE","maxResults": 200,})items = client.dataset(run["defaultDatasetId"]).list_items().items
FAQ
Is this legal? Yes. OpenStreetMap data is licensed under ODbL, which permits commercial use with attribution. No website is being scraped; we query the official Overpass API.
Why is my city returning 0 results?
Try using the English name of the city, and check that the businessType is a valid OSM tag. Smaller cities may have less coverage in OSM.
What's the maximum results I can get? The Actor supports up to 1,000 results per run. For larger datasets, run multiple queries with different cities.
Does this data include emails? Only if the business has listed their email on OpenStreetMap. Coverage varies — expect about 5–15% of records to have email addresses.
How fresh is the data? OpenStreetMap is updated continuously by contributors. Major cities are typically updated within days to weeks of real-world changes.