Local Business Scraper: Places, Phones & Websites
Pricing
from $1.50 / 1,000 businesses
Local Business Scraper: Places, Phones & Websites
Find local businesses in any city: name, address, coordinates, phone, website, email, opening hours and category. Filter to businesses with NO website but a phone number to build cold-call lead lists. Powered by OpenStreetMap: open data, no key, no quota.
Pricing
from $1.50 / 1,000 businesses
Rating
0.0
(0)
Developer
Daniel Meshulam
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Find local businesses in any city with name, address, coordinates, phone, website, email, opening hours and category, from OpenStreetMap's open data. No key, no quota, no per-request billing from a map vendor.
How complete is the data, measured
OpenStreetMap is contributor-maintained, so coverage varies by field and by place. Measured on 80 Berlin restaurants in one run:
| Field | Filled |
|---|---|
name | 100% |
openingHours | 82% |
address | 80% |
phone | 64% |
website | 64% |
email | 24% |
email is the field to plan around. A quarter in Berlin, and zero across 15
Tel Aviv cafes in a separate run, so density is regional rather than uniform.
Use withPhoneOnly when you need a reachable contact, since phone is by far the
better-covered channel.
Nothing is inferred to fill a gap. A missing field means OpenStreetMap does not have it, not that the business lacks one.
The filter that makes this different
{ "withoutWebsiteOnly": true, "withPhoneOnly": true }
Businesses with a phone number but no website. That's a cold-call list for a web design or marketing agency, the single highest-intent lead list in local services, and commercial map APIs don't let you filter for it.
Do you need an API key? No. Is there a free tier? Yes.
The two things people search for in this category, measured, are free and
API key: google maps scraper free, google maps scraper free github.
So, plainly:
- No API key. Nothing to register for, nothing to rotate, no key to leak in a repo. The source is a public API published deliberately by its owner.
- No proxy setup. The source does not bot-wall datacenter addresses, so the default works.
- Pay per result, not per month. There is no subscription and no minimum. Rows that error or that your filters drop are not charged.
- Free to try. Run it with the prefilled input and see real rows before deciding anything.
What you get
| Field | Example |
|---|---|
name, category, osmCategory | Cafe Shraga, cafe, cafe |
address, street, houseNumber, city, postcode, country | |
latitude, longitude | 32.0707, 34.7903 |
phone, website, email | |
hasWebsite, hasPhone | false, true |
openingHours | Mo-Fr 07:00-19:00; Sa 08:00-14:00 |
cuisine, brand, operator | italian, Starbucks |
wheelchair, outdoorSeating, takeaway, delivery | |
osmId, osmUrl, mapUrl | links to OSM and to Google Maps |
Example input
{"searchAreas": ["Tel Aviv", "Haifa"],"categories": ["restaurant", "cafe", "bakery"],"withoutWebsiteOnly": true,"withPhoneOnly": true,"maxResultsPerArea": 200}
Search areas, three ways
- Place name:
"Tel Aviv","Brooklyn, NY","Shoreditch, London". Uses the city's real administrative boundary, not a circle. - Point + radius:
"32.08,34.78"withradiusMeters: 2000 - Bounding box:
"32.05,34.76,32.09,34.80"assouth,west,north,east
Categories
50+ plain-English categories, so you never have to learn OSM's tag scheme:
restaurant cafe bar pub fast_food bakery hotel guest_house pharmacy doctor dentist veterinary hairdresser beauty gym supermarket convenience clothes florist jewelry furniture hardware car_repair car_dealer bank school kindergarten lawyer accountant estate_agent insurance company coworking laundry optician butcher greengrocer pet_shop bicycle electronics mobile_phone travel_agency tattoo nightclub cinema museum attraction park parking fuel charging_station
Who this is for
- Web & marketing agencies: businesses with no website, with a phone, in your city
- Sales teams: territory lists by category, with coordinates for route planning
- Delivery & logistics: every restaurant in a radius, geocoded
- Market research: how many gyms per neighbourhood, which areas are underserved
- Map & directory apps: POI data you can actually redistribute
Data source & licensing
Data comes from OpenStreetMap, licensed ODbL. It's open data you may reuse and redistribute, with attribution, unlike commercial map APIs, whose terms forbid storing results.
Coverage of independent local businesses is strong in most cities but is community-maintained, so it isn't exhaustive. Phone and website tags are present on a meaningful minority of entries, which is exactly what makes the "no website" filter useful.
Pricing
Pay per result. One row = one business. Areas that fail to resolve come back as error rows and are not charged, and neither is anything your filters removed.
Business categories
Plain-English names, because OpenStreetMap splits business types across four
different tag keys (amenity, shop, tourism, office, leisure) and
nobody should have to learn that to pull a lead list.
| Food and drink | restaurant cafe bar pub fast_food bakery butcher greengrocer |
| Stay | hotel guest_house |
| Health | pharmacy doctor dentist veterinary optician |
| Beauty and fitness | hairdresser beauty gym tattoo |
| Retail | supermarket convenience clothes florist jewelry furniture hardware electronics mobile_phone pet_shop bicycle |
| Motor | car_repair car_dealer fuel charging_station |
| Professional | lawyer accountant estate_agent insurance company coworking bank travel_agency |
| Education | school kindergarten |
| Leisure | nightclub cinema museum attraction park |
| Other | laundry parking |
Search areas take a city or district name, a lat,lon pair with
radiusMeters, or a raw bounding box. A name is geocoded through Nominatim and
the real administrative boundary is used when one exists, because a city is not
a circle.
The field commercial map APIs withhold is whether a business has a website.
hasWebsite is here, and withoutWebsiteOnly combined with withPhoneOnly is
the whole lead list: businesses with a phone number and no site.
Notes
-
Large runs belong on the asynchronous API. The
run-sync-get-dataset-itemsendpoint gives up at 300 seconds, and three cities across two categories exceeds that. Start the run withPOST /acts/<id>/runsand read the dataset when it finishes, or schedule it. -
Overpass (the OSM query API) is community-run and its main instance is often at capacity. This Actor automatically falls back across four mirrors, so a busy primary doesn't fail your run.
-
Both point-mapped shops and building outlines are queried, so larger businesses aren't silently missed.
-
Nominatim's usage policy (identifying User-Agent, ≤1 request/second) is honored by design.
-
Set a max charge per run in the run options for a hard spend ceiling. The Actor honors it and stops cleanly.