Local Business Leads Scraper (Google Maps)
Pricing
from $1.00 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
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
claimedstatus 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
- Searches Google Maps for
{businessType} in {neighborhood, city, country}, once per business type. - Harvests listing URLs from each results panel, up to
maxResultsper type. - Merges and de-duplicates listings across all searched business types.
- Opens each unique Google Maps place page and extracts the available Overview-tab details.
- Routes the listing's single website link into
website,facebook,instagram, orsocialUrl. - 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}
| Field | Type | Required | Default | What it does |
|---|---|---|---|---|
businessTypes | string[] | yes | ["coffee shops"] | Business categories to search. Each entry runs as a separate Maps search; results are merged and de-duplicated. Max 20 entries. |
country | string | yes | US | Country code from the dropdown. Use the country, not a state: choose US for Florida, then put "Tampa FL" in city. |
city | string | yes | - | City or town. Examples: "Tampa FL", "Manila", "London". |
neighborhood | string | no | - | Optional focus area such as a neighborhood, district, ZIP, or postcode. Recommended for large cities. |
maxResults | int | no | 50 | 1-200, per business type. With several types this multiplies before de-duplication. |
maxReviews | int | no | 5 | 0-20 overview review snippets per business. Set to 0 for the fastest run. |
mapsConcurrency | int | no | 3 | Parallel 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.
| Field | Type | Description |
|---|---|---|
businessName | string | Business name from the Google Maps listing |
matchedBusinessTypes | string | null | Which searched type(s) found this business, comma-separated |
category | string | null | Google Maps category label |
phone | string | null | Listed phone number |
website | string | null | Real website URL, when the listing has one |
facebook | string | null | Facebook URL, when the listing's website link points to Facebook |
instagram | string | null | Instagram URL, when the listing's website link points to Instagram |
socialUrl | string | null | Other social or directory URL, such as TikTok, Yelp, WhatsApp, LinkedIn, or YouTube |
address | string | null | Full street address |
plusCode | string | null | Google Plus Code |
latitude | number | null | Latitude parsed from the Maps URL |
longitude | number | null | Longitude parsed from the Maps URL |
rating | number | null | Star rating |
reviewCount | int | null | Total Google review count |
priceRange | string | null | Price level or range, when shown |
hours | string | null | Opening-hours summary, when shown |
claimed | bool | null | false when Google shows a "Claim this business" or similar owner CTA |
reviews | object[] | Up to maxReviews overview review snippets: { author, rating, relativeTime, text } |
searchLocation | string | null | Location string used for the search |
googleMapsUrl | string | Direct 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.