Google Maps Scraper — Emails, Reviews, Leads & Photos avatar

Google Maps Scraper — Emails, Reviews, Leads & Photos

Pricing

from $2.50 / 1,000 business search results

Go to Apify Store
Google Maps Scraper — Emails, Reviews, Leads & Photos

Google Maps Scraper — Emails, Reviews, Leads & Photos

Scrape Google Maps into clean datasets: business listings with emails, phone numbers and social links, plus reviews, photos, owner posts and AI review keywords. 12 operations — search, search-in-area, nearby, details, reviews, photos, posts, autocomplete. Pay per result.

Pricing

from $2.50 / 1,000 business search results

Rating

0.0

(0)

Developer

SIÁN OÜ

SIÁN OÜ

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

18 hours ago

Last modified

Share

Google Maps Scraper — Emails, Reviews, Leads & Photos 🗺️

SIÁN Agency Store Property Skip Tracing Uber Eats Menu Scraper Instagram AI Transcript

For lead-gen teams, agencies and local-SEO marketers who are tired of stitching three scrapers together


📋 Overview

Scrape Google Maps the complete way — pull business listings already enriched with emails, phone numbers and a full social graph, then drill into reviews, photos, owner posts and AI review keywords from the same actor.

Why thousands of professionals choose us:

  • All-in-one, 12 operations: search, search-in-area, nearby, details, reviews, photos, posts, review/photo details, reverse-geocoding and autocomplete — one actor, one dataset.
  • Emails & contacts inline: every search row can carry emails, phoneNumbers and 11 social links (Facebook, Instagram, LinkedIn, Twitter/X, YouTube, TikTok, Snapchat, Pinterest, GitHub, Yelp) — no second email-extractor needed.
  • 🎯 Up to 500 businesses per search with clean camelCase JSON — addresses, coordinates, hours, ratings, price level, verified status and more.
  • 💰 Pay-per-result pricing: only charged for rows you actually receive, with a generous FREE tier and bulk per-row pricing that undercuts the market.
  • 💎 AI review keywords (exclusive): Business Details Plus returns keywordsMentionedInReviews — the sentiment topics surfaced across a business's reviews. No competitor ships this column.
  • Owner posts: the "From the owner" section most Maps scrapers drop entirely.

✨ Features

  • 🔍 Multi-mode search: by keyword + location, inside a map viewport, or around a coordinate point.
  • 📧 Email & social extraction: turn Maps listings into Apollo-style B2B leads with one toggle.
  • Full review history: paginate every review with rating, owner replies, photos and reviews-per-star breakdown.
  • 🖼️ Photo gallery mining: pull business photos with captions and uploader details.
  • 📣 Owner posts: capture announcements, offers and updates businesses publish on Maps.
  • 🧠 AI keywords in reviews: see what customers mention most — surfaced as structured keyword + count pairs.
  • 🧭 Reverse geocoding & autocomplete: "What's here?" lookups and place predictions — free utilities.
  • 🌍 Region & language control: localize results with ISO region and language codes.

🎬 Quick Start

Pick an operation, give it a query or a Business ID, and run. Search returns up to 500 businesses with contacts; the enrich operations drill into any business by its ID.

curl -X POST https://api.apify.com/v2/acts/sian.agency~local-business-data-scraper/runs?token=YOUR_TOKEN \
-H 'Content-Type: application/json' \
-d '{"operation": "search", "query": "restaurants in Austin", "limit": 20, "extractEmailsAndContacts": true}'

🚀 Getting Started (3 Simple Steps)

Step 1: Choose an operation

Start with Search to find businesses by keyword + location.

Step 2: Set your inputs

Add your query and limit (up to 500), and keep Extract emails & contacts on for lead data.

Step 3: Run and collect

Run the actor and export the dataset. Copy any businessId to drill into Reviews, Photos, Details Plus or Posts.

That's it! In under a minute, you'll have:

  • A clean list of businesses with emails, phones and social links
  • Ratings, addresses, coordinates and hours
  • The businessId values to enrich any place further

📥 Input Configuration

FieldTypeRequiredDescription
operationstringYesWhich mode to run (search, businessDetails, businessReviews, …)
querystringFor search opsWhat you'd type into the Maps search box
extractEmailsAndContactsbooleanNoInclude emails + social links on search/details rows (default: on)
limitintegerNoBusinesses per search, 1–500 (default: 20)
lat / lngstringFor area / nearby / reverse-geoCenter coordinates
zoomstringFor search-in-areaMap zoom level (3–21)
businessIdstringFor enrich opsBusiness ID from a search row (batch up to 20 for details/photo-details)
sortBystringNoReview order: most_relevant / newest / highest_ranking / lowest_ranking
region / languagestringNoISO region (us) and language (en) codes
maxPagesintegerNoPages for paginated reviews/photos/posts (1–20)

Example — search with contacts:

{
"operation": "search",
"query": "dentist in Chicago",
"limit": 100,
"extractEmailsAndContacts": true,
"region": "us"
}

Example — AI review keywords:

{
"operation": "businessDetailsPlus",
"businessId": "0x808fba02425dad8f:0x6c296c66619367e0"
}

📤 Output

Results are saved to the Apify dataset with 60+ fields including:

FieldTypeDescription
namestringBusiness name
fullAddressstringComplete formatted address
phoneNumberstringPrimary phone
rating / reviewCountnumberStar rating and total reviews
websitestringBusiness website
emailsarrayEmails extracted from the website
facebook / instagram / linkedin / …stringSocial profile links
keywordsMentionedInReviewsarrayAI keyword + count pairs (Details Plus)
reviewText / reviewRating / authorNamemixedPer-review fields (Reviews ops)
photoUrl / caption / photoOwnerNamemixedPer-photo fields (Photos ops)
businessIdstringUse this to enrich the place further

Example row:

{
"name": "Mozart's Coffee Roasters",
"fullAddress": "3825 Lake Austin Blvd, Austin, TX 78703",
"phoneNumber": "+15124772900",
"website": "https://mozartscoffee.com",
"emails": ["info@mozartscoffee.com"],
"facebook": "https://www.facebook.com/MozartsCoffeeRoasters",
"rating": 4.5,
"reviewCount": 10648,
"businessId": "0x8644b5554461664d:0xbc4ff333ec9ad1ad",
"status": "success"
}

💼 Use Cases & Examples

1. B2B Lead Generation with Emails

Sales teams building outreach lists without a second email-extractor.

Input: search + a category and city + emails toggle on Output: Businesses with emails, phones and social links Use: Import straight into your CRM or cold-email tool.

2. Local SEO & Reputation Monitoring

Agencies tracking client review sentiment over time.

Input: businessReviews or businessDetailsPlus by Business ID Output: Full review history + AI keyword themes Use: Benchmark competitors and report on reputation trends.

3. Map Data & Place Intelligence

Analysts mapping competitive density in a metro.

Input: searchInArea across neighbourhoods Output: Coordinates, hours, price level, verified status Use: Power store-locator apps and territory planning.

4. Review & Photo Mining

Researchers studying customer sentiment and UGC.

Input: businessReviews + businessPhotos Output: Review text with ratings + photo gallery with captions Use: Feed sentiment models and surface user imagery.

5. Sales Territory & Outreach Lists

Field-sales managers routing reps by area.

Input: searchNearby around target coordinates Output: Deduped business list with contact details Use: Build geo-segmented prospecting lists.


🔗 Integration Examples

JavaScript/Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('sian.agency/local-business-data-scraper').call({
operation: 'search',
query: 'restaurants in Austin',
limit: 50,
extractEmailsAndContacts: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('sian.agency/local-business-data-scraper').call(
run_input={'operation': 'search', 'query': 'restaurants in Austin', 'limit': 50}
)
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item)

cURL

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~local-business-data-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation": "search", "query": "restaurants in Austin"}'

Automation Workflows (N8N / Zapier / Make)

  1. Trigger: Schedule or webhook
  2. HTTP Request: Call the actor API
  3. Process: Handle the JSON results
  4. Action: Save to CRM, notify, or enrich

📊 Performance & Pricing

FREE Tier (Try It Now)

  • Real businesses with emails and contacts per run — full feature access, same quality
  • No credit card required
  • Perfect for testing and small lead lists
  • Unlimited businesses, reviews, photos and posts per run
  • Fast, deduped results straight from Maps
  • Pay-per-result: only charged for rows you actually receive

💰 Bulk per-row pricing that undercuts the market — richer rows than the "$1/1k leads" tools, because every row can carry reviews-per-rating, a photos sample, owner posts and a full social graph.

🔗 View current pricing


❓ Frequently Asked Questions

Q: How many businesses can I get per run? A: Up to 500 per search call. Reviews, photos and posts paginate up to 20 pages.

Q: Where do the emails come from? A: When Extract emails & contacts is on, the website behind each listing is parsed for emails, phone numbers and social links.

Q: What are AI review keywords? A: Business Details Plus returns the keywords most frequently mentioned across a business's reviews, each with a count — a fast read on what customers care about.

Q: What output formats are available? A: JSON, CSV, Excel — export directly from the Apify dataset.

Q: Does it work with any country? A: Yes — set region and language to localize results (e.g. gb/en, de/de).

Q: Is this legal? A: We only extract publicly available business information. See the legal section below.


🐛 Troubleshooting

Search returns no emails

  • Make sure Extract emails & contacts is enabled.
  • Some businesses have no website, so no contacts can be parsed.

An enrich operation returns a "paid plan required" notice

  • Business details, reviews, photos and posts are paid features — upgrade to unlock them.

A Business ID is "not found"

  • IDs change if a listing is removed or merged. Re-run Search to get a fresh ID.

Our actors are ethical and do not extract any private user data, such as personal email addresses, gender, or location of individuals. They only extract what businesses and users have chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the legality of web scraping.


⚠️ Trademark Disclaimer

Google Maps™ and Google™ are trademarks of Google LLC. This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Google LLC. It accesses only publicly available business information. All product names, logos, and brands are property of their respective owners and are used for identification purposes only.


🤝 Support

Telegram Support

Join our active support community


Built by SIÁN Agency | More Tools