Local Business Scraper: Places, Phones & Websites avatar

Local Business Scraper: Places, Phones & Websites

Pricing

from $1.50 / 1,000 businesses

Go to Apify Store
Local Business Scraper: Places, Phones & Websites

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

Daniel Meshulam

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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:

FieldFilled
name100%
openingHours82%
address80%
phone64%
website64%
email24%

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

FieldExample
name, category, osmCategoryCafe Shraga, cafe, cafe
address, street, houseNumber, city, postcode, country
latitude, longitude32.0707, 34.7903
phone, website, email
hasWebsite, hasPhonefalse, true
openingHoursMo-Fr 07:00-19:00; Sa 08:00-14:00
cuisine, brand, operatoritalian, Starbucks
wheelchair, outdoorSeating, takeaway, delivery
osmId, osmUrl, mapUrllinks 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" with radiusMeters: 2000
  • Bounding box: "32.05,34.76,32.09,34.80" as south,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 drinkrestaurant cafe bar pub fast_food bakery butcher greengrocer
Stayhotel guest_house
Healthpharmacy doctor dentist veterinary optician
Beauty and fitnesshairdresser beauty gym tattoo
Retailsupermarket convenience clothes florist jewelry furniture hardware electronics mobile_phone pet_shop bicycle
Motorcar_repair car_dealer fuel charging_station
Professionallawyer accountant estate_agent insurance company coworking bank travel_agency
Educationschool kindergarten
Leisurenightclub cinema museum attraction park
Otherlaundry 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-items endpoint gives up at 300 seconds, and three cities across two categories exceeds that. Start the run with POST /acts/<id>/runs and 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.