Google Maps Scraper Goat
Pricing
from $3.00 / 1,000 lead scrapeds
Google Maps Scraper Goat
Extract business leads from Google Maps search results with emails and social media profiles
Pricing
from $3.00 / 1,000 lead scrapeds
Rating
0.0
(0)
Developer
Goutam Soni
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
3
Monthly active users
17 days ago
Last modified
Categories
Share
Google Maps Extractor
Extract business leads from Google Maps at scale — names, phones, emails, websites, full addresses (structured), ratings, review counts, GPS coordinates, Knowledge Graph IDs, and 10 social platforms. No browser needed, runs on pure HTTP for maximum speed and minimal cost.
What it does
Enter search queries and locations. The actor scrapes Google Maps results with automatic pagination, then optionally visits each business website to harvest emails and social profiles across 10 networks.
Each query × location pair runs in parallel for fast bulk extraction.
Extracted fields
From the Maps search response (always)
| Field | Description |
|---|---|
name | Business name |
nameLocal | Name in the local language (e.g. Hindi, Arabic) |
category | Categories (semicolon-separated) |
categoryList | Categories as an array |
addressFull | Full formatted address |
addressNeighborhood | Neighborhood / short locality |
addressJoined | Address parts comma-joined (legacy form) |
structuredAddress | {neighborhood, addressLine1, addressLine2, city, state, postalCode, countryCode} |
regionDisplay | Human-readable region (e.g. "Jaipur, Rajasthan, India") |
countryCode | ISO country code |
phone | Phone in display format |
phoneE164 | Phone in E.164 format (e.g. +917665552345) |
website | Business website URL |
averageRating | Star rating (1.0 - 5.0) |
reviewCount | Total number of reviews |
latitude, longitude | GPS coordinates |
placeID | Google Place ID (ChIJ...) |
kgID | Knowledge Graph ID (/g/...) |
cID | Customer ID in hex (0x...:0x...) |
cidDecimal | CID as a decimal string |
ownerUserID | Google account ID of the GMB owner |
profilePhoto | URL of the business profile photo |
timezone | IANA timezone (e.g. Asia/Calcutta) |
languagePrimary | Primary language (e.g. en) |
languageSecondary | Secondary language (e.g. hi) |
0_Sunday...6_Saturday | Working hours per weekday |
From the Place Details endpoint (when Extract Place Details is enabled)
Adds 1 HTTP request per business. Enriches every record with:
| Field | Description |
|---|---|
description | Full business description ("From the owner") |
plusCode | Google Plus Code (e.g. "VQ7Q+G8 Jaipur") |
displayedReviewCount | Canonical review count shown on the place page |
reviewsPerStar | Counts per star — {"1": 11, "2": 1, "3": 1, "4": 6, "5": 145} |
reviewTopics | Topic chips from reviews (pre-wedding shoot, professional team, etc.) |
popularTimes | Hourly busy percentages per day of week |
features | Service options, accessibility, amenities, crowd attributes |
inlineReviews | First batch of reviews (8) embedded in the place page |
previewQuotes | Short review snippets shown in the place panel |
owner | {name, userID, link} to the owner's Maps contributor page |
canonicalMapsURL | Canonical place URL on Google Maps |
categoryIDs | Machine-readable category IDs with weights |
addrNeighborhood, addrLine1, addrLine2, addrCity, addrPostalCode, addrState, addrCountryCode | Granular address parts |
From the Reviews endpoint (when Extract Full Review Text is enabled)
Marquee feature — most Apify Maps actors return only the review count. We return every review.
Adds 1+ HTTP requests per business (paginated, default page size 10). Each review record contains:
| Field | Description |
|---|---|
reviewID | Stable Google review identifier |
authorName | Reviewer display name |
authorPhoto | Reviewer profile photo URL |
authorProfileURL | Reviewer's Maps contributor page |
authorID | Google account ID |
authorReviewCount | Total reviews this author has written |
authorPhotoCount | Total photos this author has uploaded |
rating | 1-5 star rating |
text | Full review text |
relativeTime | "3 months ago" |
timestamp | Unix seconds since epoch |
photos | URLs of photos posted with the review |
ownerReply | {text, relativeTime, timestamp} when owner replied |
Configurable via maxReviewsPerPlace (default 20, set to 0 for every review).
From the website crawl (when Extract Emails & Social Profiles is enabled)
| Field | Description |
|---|---|
email | Business email addresses (domain-prioritized) |
instagram | Instagram profile URLs |
facebook | Facebook page URLs |
linkedin | LinkedIn page URLs |
twitter | Twitter/X profile URLs |
youtube | YouTube channel URLs |
tiktok | TikTok profile URLs |
threads | Threads profile URLs |
whatsapp | WhatsApp click-to-chat URLs |
telegram | Telegram username URLs |
All website-crawl fields are arrays. The crawler handles Cloudflare email obfuscation, parses mailto: and whatsapp: href schemes, and (with deep search enabled) follows /contact, /about, /team, /help, etc. up to one level.
Output example
{"name": "Jaipur Pixel Photography","nameLocal": "जयपुर पिक्सेल फोटोग्राफी","category": "Wedding photographer;Aerial photographer;Photo booth","categoryList": ["Wedding photographer", "Aerial photographer", "Photo booth"],"addressFull": "P-60-B, Chandra Nagar, Muktanand Nagar, Gopal Pura Mode, Jaipur, Rajasthan 302018, India","structuredAddress": {"neighborhood": "Chandra Nagar, Muktanand Nagar, Gopal Pura Mode","addressLine1": "P-60-B","addressLine2": "P-60-B","city": "Jaipur","postalCode": "302018","state": "Rajasthan","countryCode": "IN"},"phone": "+91 76655 52345","phoneE164": "+917665552345","website": "https://example.com/","email": ["info@example.com"],"averageRating": 4.7,"reviewCount": 489,"instagram": ["https://www.instagram.com/jaipurpixel"],"facebook": ["https://www.facebook.com/jaipurpixel"],"whatsapp": ["https://wa.me/917665552345"],"latitude": 26.8637701,"longitude": 75.7883492,"timezone": "Asia/Calcutta","placeID": "ChIJKwwR99a1bTkRoZJquuye2NU","kgID": "/g/11hj4wlv0_","cID": "0x396db5d6f7110c2b:0xd5d89eecba6a92a1","1_Monday": "7 AM–7 PM"}
Pricing
This actor uses pay-per-event pricing. You only pay for results you receive.
| What you pay for | Price |
|---|---|
| Per business lead | $0.005 |
This includes all available data: business info, working hours, structured address, Knowledge Graph IDs, profile photo, and — when enabled — emails and 10-platform social profiles. No hidden fees.
Example costs:
- 100 leads without emails: $0.50
- 500 leads with emails + socials: $2.50
- 1,000 leads with full data: $5.00
Set a spending limit before each run to control your budget. The actor stops automatically when your limit is reached.
Residential proxies recommended (available on all Apify plans including free). The actor automatically falls back to datacenter or direct connection if residential isn't available. Email extraction uses direct connections at no extra proxy cost.
How it works
- Constructs optimized API requests to Google Maps (no browser overhead)
- Automatically paginates to collect all matching results
- Optionally visits each business website to extract emails and social profiles across 10 platforms
- Deduplicates results across queries using Google Place IDs
Email extraction crawls each business website and its contact/about pages to find:
- Email addresses (prioritizes emails matching the business domain)
- Social media profiles (Instagram, Facebook, LinkedIn, Twitter/X, YouTube, TikTok, Threads, WhatsApp, Telegram)
- Direct
mailto:andwhatsapp:href links - Cloudflare email obfuscation (decodes
data-cfemailattributes)
Tips
- Unlimited results: Set max results to 0
- Parallel queries: Multiple query × location pairs run concurrently
- Better emails: Enable both email extraction and deep search
- Geographic precision: Use direct Google Maps URLs with zoom level
- Budget control: Set a spending limit — the actor stops when reached
Architecture & customization
The actor is built on a declarative, schema-driven extraction model. Adding a new field, swapping an extraction source, or fixing a broken index after a Google response change is typically a one-line edit in a single file. See docs/EXTRACTORS.md and docs/SCHEMA_UPDATES.md for details.