Google Maps Scraper — Emails, Reviews, Leads & Photos
Pricing
from $2.50 / 1,000 business search results
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Ü
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
Google Maps Scraper — Emails, Reviews, Leads & Photos 🗺️
🎉 The only all-in-one Google Maps scraper — listings with emails, social links, reviews, photos AND owner posts in one run
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,phoneNumbersand 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
businessIdvalues to enrich any place further
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| operation | string | Yes | Which mode to run (search, businessDetails, businessReviews, …) |
| query | string | For search ops | What you'd type into the Maps search box |
| extractEmailsAndContacts | boolean | No | Include emails + social links on search/details rows (default: on) |
| limit | integer | No | Businesses per search, 1–500 (default: 20) |
| lat / lng | string | For area / nearby / reverse-geo | Center coordinates |
| zoom | string | For search-in-area | Map zoom level (3–21) |
| businessId | string | For enrich ops | Business ID from a search row (batch up to 20 for details/photo-details) |
| sortBy | string | No | Review order: most_relevant / newest / highest_ranking / lowest_ranking |
| region / language | string | No | ISO region (us) and language (en) codes |
| maxPages | integer | No | Pages 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:
| Field | Type | Description |
|---|---|---|
| name | string | Business name |
| fullAddress | string | Complete formatted address |
| phoneNumber | string | Primary phone |
| rating / reviewCount | number | Star rating and total reviews |
| website | string | Business website |
| emails | array | Emails extracted from the website |
| facebook / instagram / linkedin / … | string | Social profile links |
| keywordsMentionedInReviews | array | AI keyword + count pairs (Details Plus) |
| reviewText / reviewRating / authorName | mixed | Per-review fields (Reviews ops) |
| photoUrl / caption / photoOwnerName | mixed | Per-photo fields (Photos ops) |
| businessId | string | Use 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 ApifyClientclient = 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)
- Trigger: Schedule or webhook
- HTTP Request: Call the actor API
- Process: Handle the JSON results
- 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
PAID Tier (Production Ready)
- 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.
❓ 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.
⚖️ Is it legal to scrape data?
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
Join our active support community
- For issues or questions, open an issue in the actor's Console Issues tab
- Check the SIÁN Agency Store for more automation tools
- 📧 apify@sian-agency.online
Built by SIÁN Agency | More Tools