Local Business Leads Scraper (Google Maps) avatar

Local Business Leads Scraper (Google Maps)

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Local Business Leads Scraper (Google Maps)

Local Business Leads Scraper (Google Maps)

Turn Google Maps into a local lead list. Search any business/establishment type in any location and export verified business details, contact info, website, ratings, hours, reviews, addresses, and all available information.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Leafy

Leafy

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Build a clean local prospect list from Google Maps: business names, phones, websites, socials, addresses, ratings, hours, coordinates, claimed status, and recent review snippets.

Point it at one or more business types and a city. The actor searches Google Maps, opens each unique listing, and saves the lead details you would normally collect by hand. You get a spreadsheet-ready dataset for outreach, market research, CRM enrichment, local SEO research, or territory mapping.

Add a whole list of niches in one run (plumbers, electricians, roofers, ...). Each niche is searched separately, then results are merged and de-duplicated so the same business is scraped only once.

Built for sales teams, local agencies, freelancers, researchers, and anyone who needs a practical local business database without manually scrolling Maps.


Why it beats a basic Maps export

A generic scrape gives you a pile of listings. This actor gives you a more usable lead file:

  • Multiple niches in one run. Search up to 20 business types, then de-duplicate the overlap automatically.
  • Cleaner website fields. If a Maps listing points to Facebook, Instagram, Yelp, WhatsApp, or another social/directory page, it is separated from real website URLs.
  • Useful lead signals. Ratings, review counts, hours, price range, coordinates, and claimed status help you sort and prioritize.
  • Recent review snippets. Keep a few overview reviews per business for context, personalization, or QA without crawling the full reviews feed.
  • Live dataset output. Rows are written as soon as each business is extracted, so you can see results during the run.

What you get

One row per business. Export to CSV / JSON / Excel, or send the dataset into your CRM, spreadsheet, enrichment flow, or outreach tool.

{
"businessName": "Bayshore Cuts & Color",
"matchedBusinessTypes": "hair salons, beauty salons",
"category": "Hair salon",
"phone": "(813) 555-0100",
"website": "https://bayshorecuts.example",
"facebook": null,
"instagram": null,
"socialUrl": null,
"address": "123 Bayshore Blvd, Tampa, FL 33606",
"plusCode": "8F2W+QX Tampa, Florida",
"latitude": 27.942,
"longitude": -82.482,
"rating": 4.8,
"reviewCount": 312,
"priceRange": "$$",
"hours": "Monday: 9 AM to 7 PM; Tuesday: 9 AM to 7 PM; ...",
"claimed": true,
"reviews": [
{
"author": "Jane D.",
"rating": 5,
"relativeTime": "2 weeks ago",
"text": "Best cut and color in Tampa."
}
],
"searchLocation": "Bayshore, Tampa FL, US",
"googleMapsUrl": "https://www.google.com/maps/place/Bayshore+Cuts+%26+Color/..."
}

How it works

  1. Searches Google Maps for {businessType} in {neighborhood, city, country}, once per business type.
  2. Harvests listing URLs from each results panel, up to maxResults per type.
  3. Merges and de-duplicates listings across all searched business types.
  4. Opens each unique Google Maps place page and extracts the available Overview-tab details.
  5. Routes the listing's single website link into website, facebook, instagram, or socialUrl.
  6. Saves each business to the dataset as soon as it is extracted.

Input

{
"businessTypes": ["coffee shops", "bakeries", "juice bars"],
"country": "PH",
"city": "Manila",
"neighborhood": "Pureza, Santa Mesa",
"maxResults": 50,
"maxReviews": 5,
"mapsConcurrency": 3
}
FieldTypeRequiredDefaultWhat it does
businessTypesstring[]yes["coffee shops"]Business categories to search. Each entry runs as a separate Maps search; results are merged and de-duplicated. Max 20 entries.
countrystringyesUSCountry code from the dropdown. Use the country, not a state: choose US for Florida, then put "Tampa FL" in city.
citystringyes-City or town. Examples: "Tampa FL", "Manila", "London".
neighborhoodstringno-Optional focus area such as a neighborhood, district, ZIP, or postcode. Recommended for large cities.
maxResultsintno501-200, per business type. With several types this multiplies before de-duplication.
maxReviewsintno50-20 overview review snippets per business. Set to 0 for the fastest run.
mapsConcurrencyintno3Parallel Google Maps place-page extractions, from 1-8. Higher is faster but uses more CPU and memory.

Output fields

Every record contains the fields below. Nullable fields are null when Google Maps does not show that detail.

FieldTypeDescription
businessNamestringBusiness name from the Google Maps listing
matchedBusinessTypesstring | nullWhich searched type(s) found this business, comma-separated
categorystring | nullGoogle Maps category label
phonestring | nullListed phone number
websitestring | nullReal website URL, when the listing has one
facebookstring | nullFacebook URL, when the listing's website link points to Facebook
instagramstring | nullInstagram URL, when the listing's website link points to Instagram
socialUrlstring | nullOther social or directory URL, such as TikTok, Yelp, WhatsApp, LinkedIn, or YouTube
addressstring | nullFull street address
plusCodestring | nullGoogle Plus Code
latitudenumber | nullLatitude parsed from the Maps URL
longitudenumber | nullLongitude parsed from the Maps URL
ratingnumber | nullStar rating
reviewCountint | nullTotal Google review count
priceRangestring | nullPrice level or range, when shown
hoursstring | nullOpening-hours summary, when shown
claimedbool | nullfalse when Google shows a "Claim this business" or similar owner CTA
reviewsobject[]Up to maxReviews overview review snippets: { author, rating, relativeTime, text }
searchLocationstring | nullLocation string used for the search
googleMapsUrlstringDirect Google Maps listing URL

FAQ

How many businesses can I get per run?
Up to maxResults per business type, with a hard maximum of 200 per type. Google Maps itself usually limits a single search area to about 120 visible results, so split big cities by neighborhood or ZIP/postcode for wider coverage.

Can I search several business types at once?
Yes. Add up to 20 entries in businessTypes. The actor searches each one separately, then merges duplicate listings into one row with all matching types saved in matchedBusinessTypes.

Does it scrape all reviews?
No. It only grabs the limited review snippets already available from the place Overview area. This keeps runs faster and more predictable.

Why are Facebook or Instagram links not in website?
Google Maps has one website slot, but many businesses put a social page there. The actor separates those links so your real website column stays cleaner.

Is this allowed?
It collects publicly visible business-listing information. You are responsible for using the data in line with applicable laws and platform terms, including marketing and anti-spam rules.


Contact / feedback

Bug reports, feature requests, and use-case tips are welcome. Email the developer at leafydevjr@gmail.com.