Google Maps Business Scraper — Contacts & Reviews
Pricing
from $2.00 / 1,000 google maps places
Google Maps Business Scraper — Contacts & Reviews
Scrape Google Maps businesses and export addresses, phone numbers, websites, publicly available emails, social profiles, photos, ratings, reviews, opening hours, coordinates, and detailed place data.
Pricing
from $2.00 / 1,000 google maps places
Rating
0.0
(0)
Developer
DataForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 hours ago
Last modified
Categories
Share
🌍 Google Maps Business Intelligence Scraper
Turn Google Maps into a clean, structured business dataset. Enter business searches, Google Maps URLs, place IDs, or data IDs and receive real place records ready for lead generation, market research, local SEO, and directory building.
✅ Addresses and coordinates
✅ Phones, websites, emails, and social profiles
✅ Ratings, reviews, opening hours, and categories
✅ Photos and detailed business attributes
✅ Automatic input detection and deduplication
💡 Why this Actor
- 🎛️ Two modes, one actor — Fast for clean place lists, Full for details, reviews and public website contacts
- 🧠 Automatic input detection — business searches, Google Maps URLs, place IDs and data IDs in one field, with duplicates saved once
- ☎️ Contacts beyond Google — emails, phones and social profiles pulled from the public business website
- 🚦 Honest status fields — detailStatus, contactsStatus and reviewsStatus separate unavailable data from real errors
- 🛡️ Resilient enrichment — slow or protected websites are marked partial, failed or timed_out and never block the whole run
📸 Sample output

A real run's output — exportable to JSON, CSV, or Excel.
✨ What can be collected?
🏢 Business identity
- Business name and Google place ID
- Google data ID and CID
- Primary category and additional categories
- Google Maps URL
- Business description and price level
📍 Location
- Full address
- Street, city, state, postal code, and country
- Latitude and longitude
- Neighborhood and located-in information when published
☎️ Contacts
- Google-published phone number
- Additional public website phone numbers
- Website URL
- Public email addresses
- Facebook, Instagram, LinkedIn, X/Twitter, YouTube, TikTok, and Pinterest profiles
⭐ Reputation
- Google rating
- Total review count
- Review text and rating
- Reviewer information and publication date
- Review collection status
🖼️ Media and details
- Main business image
- Photo URL collection
- Opening hours
- Business attributes and highlights
- Supported services, accessibility, payments, and amenities when available
🎛️ Scraping modes
⚡ Fast mode
Fast mode is designed for quick discovery and larger business lists. It reads the information available in Google Maps search results and saves a normalized place row.
Fast mode can return:
- Business name and categories
- Address and coordinates
- Google phone number and website
- Rating and total review count
- Google Maps URL
- Main photo and additional photo URLs
- Search metadata and quality scores
{"mode": "fast","queries": ["dentists", "orthodontists"],"locationQuery": "Austin, TX","maxCrawledPlacesPerSearch": 25,"maxImages": 5}
🔎 Full mode
Full mode performs detailed business enrichment. It opens Google place details, collects Google reviews, and checks the public business website for contact information.
Full mode can return:
- Complete Google place details
- Business description, attributes, and highlights
- Detailed opening hours
- Public website emails and phone numbers
- Social profile links
- Website pages checked during contact discovery
- Google review records
- Explicit status for every enrichment stage
{"mode": "full","queries": ["roofing contractors"],"locationQuery": "Denver, CO","maxCrawledPlacesPerSearch": 10,"maxImages": 10,"maxReviews": 25}
Slow or protected websites do not block the entire run. The place is preserved and the contact stage is marked partial, failed, or timed_out.
🧭 How it works
┌─────────────────────────────────────────────┐│ queries ││ • business search ││ • Google Maps URL ││ • Google place ID ││ • Google data ID │└──────────────────────┬──────────────────────┘│▼┌────────────────────────┐│ Automatic input parser │└────────────┬───────────┘│┌─────────┴─────────┐▼ ▼Google Maps search Direct place fetch└─────────┬─────────┘▼Details • contacts • reviews│▼Normalize and remove duplicates│▼Apify dataset output
The queries field is mandatory. Each value is detected automatically, so no separate workflow selector is required.
🚀 More input examples
Search several markets
{"mode": "fast","queries": ["coffee shops in Seattle, WA","bakeries in Chicago, IL","bookstores in Boston, MA"],"locationQuery": "","maxCrawledPlacesPerSearch": 20,"maxImages": 5}
Scrape known places
{"mode": "full","queries": ["https://www.google.com/maps/place/...","ChIJN1t_tDeuEmsRUsoyG83frY4","0x89c259af336b3341:0xa4969e07ce3108de"],"locationQuery": "","maxImages": 10,"maxReviews": 10}
Keep highly rated businesses with websites
{"mode": "full","queries": ["plumbers"],"locationQuery": "Phoenix, AZ","maxCrawledPlacesPerSearch": 50,"placeMinimumStars": 4.5,"website": "withWebsite","skipClosedPlaces": true,"maxReviews": 5}
🧩 Input fields
| Field | Type | Description |
|---|---|---|
mode | string | Selects one of the collection modes described above |
queries | string[] | Required searches, Google Maps URLs, place IDs, or data IDs |
locationQuery | string | Location appended to text searches |
maxCrawledPlacesPerSearch | integer | Maximum places collected for each text search |
maxImages | integer | Maximum photo URLs saved per place |
maxReviews | integer | Maximum reviews collected per place in Full mode |
categoryFilterWords | string[] | Keep matching Google categories |
placeMinimumStars | number | Minimum Google rating from 0 to 5 |
website | string | Keep all places, places with websites, or places without websites |
skipClosedPlaces | boolean | Exclude permanently closed businesses |
language | string | Google result language, for example en, de, or ru |
countryCode | string | Two-letter country code, for example US, GB, or DE |
proxy | object | Apify Proxy configuration |
Empty inputs, unknown fields, unsupported modes, malformed external URLs, and invalid limits are rejected before a run is created.
📦 Output structure
Each default dataset row represents one unique Google Maps place.
{"title": "Example Coffee","placeId": "ChIJ...","dataId": "0x...:0x...","categoryName": "Coffee shop","categories": ["Coffee shop", "Cafe"],"address": "123 Main St, Austin, TX 78701","city": "Austin","state": "Texas","postalCode": "78701","countryCode": "US","latitude": 30.2672,"longitude": -97.7431,"phone": "+1 512-555-0100","phones": ["+1 512-555-0100"],"website": "https://example.com","emails": ["hello@example.com"],"instagram": "https://instagram.com/example","rating": 4.8,"reviewsCount": 327,"imageUrl": "https://...","photoUrls": ["https://..."],"scrapeMode": "full","detailStatus": "ok","contactsStatus": "ok","reviewsStatus": "ok"}
The Output tab includes focused views for:
- 🏢 Places
- ☎️ Contacts
- 🖼️ Photos
- ⭐ Reviews
- 📊 Quality and enrichment status
🚦 Status fields
| Field | Possible values | Meaning |
|---|---|---|
scrapeMode | fast, full | Selected collection mode |
detailStatus | ok, not_requested, failed, timed_out | Google detail enrichment result |
contactsStatus | ok, partial, no_website, not_requested, failed | Public website contact result |
reviewsStatus | ok, unavailable, not_requested, failed, timed_out | Google review collection result |
These fields make it easy to distinguish a valid place with unavailable optional data from a real processing error.
💡 Popular use cases
- 🎯 Local lead generation
- 🗺️ Business directory creation
- 📈 Competitor and market analysis
- ⭐ Review and reputation research
- 🔍 Local SEO audits
- 🧹 CRM enrichment
- 🏙️ Location planning and market coverage
⚠️ Public-data availability
The actor returns information published by Google Maps and public business websites. Some businesses do not publish a website, email address, social profile, reviews, or complete opening hours. Missing optional fields are reported honestly and are never replaced with invented values.
Use exported data responsibly and comply with applicable privacy, marketing, and platform rules.