Google Business Search & Lead Extractor avatar

Google Business Search & Lead Extractor

Pricing

from $1.10 / 1,000 results

Go to Apify Store
Google Business Search & Lead Extractor

Google Business Search & Lead Extractor

Search Google for businesses and extract high-quality B2B leads instantly. Including scraping reviews.

Pricing

from $1.10 / 1,000 results

Rating

0.0

(0)

Developer

Inus Grobler

Inus Grobler

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

3

Monthly active users

a day ago

Last modified

Share

Google Maps B2B Extractor

Extract structured business leads from Google Maps by search term and location. This actor is built for B2B prospecting, local market research, directory enrichment, and optional review collection.

It accepts one or more Google Maps search queries such as roofers in Dallas, dentists near Miami, or marketing agencies in Austin, then returns structured business rows and, when enabled, separate review rows in the same dataset.

Why teams choose this actor

  • One dataset that can contain both business rows and review rows
  • Optional review enrichment linked back to each business through businessId
  • Search-query tracking so you can see exactly which query produced each lead
  • Clean website URL handling, Google Maps links, coordinates, place IDs, and business IDs in one export
  • Support for both broad category searches and exact business lookups

What it collects

  • Business name
  • Category
  • Rating
  • Review count
  • Website URL
  • Phone number
  • Full address
  • Google Maps URL
  • Latitude and longitude
  • Plus code
  • Claimed status
  • Closed status
  • Google CID
  • The search query that produced the result

If review extraction is enabled, the actor also returns:

  • Reviewer name
  • Reviewer rating
  • Review text
  • Publish date

Input

FieldTypeDescription
searchQueriesstring[]One or more Google Maps searches to run.
maxPlacesPerQueryintegerOptional. Maximum number of businesses to collect per query. Default is 5.
includeReviewsbooleanOptional. Turn review extraction on or off. Default is false. When enabled, the actor tries to collect all reviews Google makes available during the run.
languagestringOptional Google Maps interface language code such as en.
maxConcurrencyintegerOptional number of parallel browser tabs. Default is 2 for lighter lead-only runs. Review-heavy jobs are automatically clamped to 1 to reduce memory spikes.

Example input

{
"searchQueries": [
"Plumbers in Chicago",
"Dentists in Miami",
"Coffee in Constantia"
],
"maxPlacesPerQuery": 5,
"includeReviews": true,
"language": "en",
"maxConcurrency": 2
}

Output

The default dataset contains mixed row types:

  • type: "business" for business lead rows
  • type: "review" for review rows when review extraction is enabled

Filter by the type field if you want only businesses or only reviews after export.

Business row in the default dataset

{
"type": "business",
"businessId": "123456789012345678",
"businessName": "Joe's Pizza",
"category": "Pizza restaurant",
"rating": 4.8,
"reviewCount": 1245,
"priceLevel": "$$",
"fullAddress": "7 Carmine St, New York, NY 10014",
"websiteUrl": "https://www.joespizza.com",
"phoneNumber": "+1 212-555-0123",
"plusCode": "P2XF+4M New York",
"isClaimed": true,
"isClosed": null,
"googleMapsUrl": "https://www.google.com/maps/place/...",
"latitude": "40.7306",
"longitude": "-73.9996",
"cid": "123456789012345678",
"placeId": null,
"searchQuery": "Pizza in New York"
}

Review row in the same default dataset

{
"type": "review",
"businessId": "123456789012345678",
"businessName": "Joe's Pizza",
"searchQuery": "Pizza in New York",
"googleMapsUrl": "https://www.google.com/maps/place/...",
"reviewerName": "Alice Smith",
"reviewerRating": 5,
"reviewText": "The best slice in the city.",
"publishDate": "2 weeks ago"
}

Typical use cases

  • Build local B2B lead lists by niche and geography
  • Enrich CRM records with websites, phones, and Google Maps links
  • Compare competitors in a city or service area
  • Analyze review sentiment and review volume
  • Monitor business visibility for repeated search patterns

Python example using the Apify API

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run_input = {
"searchQueries": [
"roofers in Dallas",
"dentists in Miami"
],
"maxPlacesPerQuery": 5,
"includeReviews": True,
"language": "en"
}
run = client.actor("thescrapelab/Apify-Google-Maps-B2B-Extractor").call(run_input=run_input)
print("Businesses")
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
if item.get("type") == "business":
print(item)
print("Reviews")
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
if item.get("type") == "review":
print(item)

Notes

  • There is no proxy field to configure. The actor selects Apify Proxy automatically and switches to Apify Residential automatically when reviews are enabled.
  • If you only need lead data, keep includeReviews turned off for faster runs and lower usage.
  • If reviews are turned on, the actor tries to collect all reviews Google exposes during the run rather than aiming for a user-set review count.
  • If Google shows businesses with reviews but never exposes the review surface, the actor now fails the run with a clear Google blocking message instead of silently returning business-only output.
  • Reviews are an enrichment feature, not the cheapest extraction path. If margin and speed matter most, use the actor in lead-only mode.
  • Some listings still expose only a limited top-review set in Google Maps, so returned review volume can vary even when review extraction is enabled.
  • Business rows and review rows are both written to the default dataset. Use the type field to separate them after export.
  • Older API integrations that still send maxReviewsPerPlace continue to work, but the public actor uses the simpler includeReviews on/off switch.
  • The same business can appear under multiple search queries; each query-result relationship is preserved in the dataset through the searchQuery field.

Compliance

Use the extracted data in line with Google Maps terms, local law, and any privacy or outreach rules that apply in your market.