Google Maps Reviews Scraper | Fast & Low Cost Export
Pricing
from $0.05 / 1,000 results
Google Maps Reviews Scraper | Fast & Low Cost Export
⚡ Extract Google Maps reviews flawlessly at ultra-low costs ($0.05/1k results). Features automated website matching, asset blocking to cut compute bills, and dataset resume support. Scrape full review text, Local Guide metrics, translations, images, and owner replies instantly.
Pricing
from $0.05 / 1,000 results
Rating
5.0
(1)
Developer
ScrapeCraft
Maintained by CommunityActor stats
2
Bookmarked
5
Total users
2
Monthly active users
19 days ago
Last modified
Categories
Share
⭐ Google Maps Reviews Scraper
Scrape all reviews from any Google Maps listing — one dataset row per review, with reviewer details, star ratings, photos, and owner replies.
✅ What You Get
| Data | Details |
|---|---|
| 👤 Reviewer | Name, profile URL, photo, review count, Local Guide status |
| ✍️ Review | Full text, translated text, star rating, likes |
| 📅 Date | Relative date ("a month ago") + parsed timestamp |
| 📸 Photos | Image URLs attached to the review |
| 💬 Owner Reply | Response text and date when present |
| 🌐 Language | Original and translated language codes |
Place details (name, address, phone) are saved separately in the Key-Value Store under
OUTPUT_METADATA— not repeated on every row.
🚀 Quick Start
You need at least one of these:
- A business name (search query)
- A Google Maps URL
- A Google Maps CID
- A Google Place ID
⚙️ Input Options
🔍 Option 1 — Search by Business Name (most common)
{"searchQuery": "NETSOL Technologies Ltd.","website": "https://www.netsoltech.com/","maxReviews": 5,"language": "en","proxyConfig": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
💡 The default
maxReviewsis intentionally small so Apify's automated quality checks finish quickly. SetmaxReviews: 0only when you want to scrape all available reviews.
🔗 Option 2 — Google Maps URL
{"url": "https://www.google.com/maps/place/NETSOL+Technologies/@31.5204,74.3587,17z","maxReviews": 5}
🆔 Option 3 — CID or Place ID
{"cid": "15430805186958748717","maxReviews": 5,"language": "en"}
⚠️ Always keep CIDs in quotes — they can exceed JavaScript's safe integer range.
🛠️ All Input Fields
| Field | Type | Default | Description |
|---|---|---|---|
url | string | Blue Bottle Coffee Maps search URL | Direct Google Maps place URL or Maps search URL |
searchQuery | string | Blue Bottle Coffee 300 Webster St Oakland CA | Business name to search on Google Maps if URL, CID, and Place ID are not provided |
website | string | Blue Bottle Coffee website | Optional human reference for the selected place |
placeId | string | — | Google Place ID |
cid | string | — | Google Maps CID |
maxReviews | integer | 5 | Max reviews to collect (0 = all) |
language | string | en | Review language code (e.g. en, es, fr, de) |
maxReviewAge | string | — | Filter by age, e.g. 6 months, 1 year, 3 years |
resumeDatasetId | string | — | Resume a previous run — skips already-scraped reviews |
blockAssets | boolean | true | Block images/fonts to save bandwidth |
proxyConfig | object | Residential | Apify proxy config — residential proxies recommended |
maxRunSeconds | integer | 240 | Safety timeout for one run |
fallbackOnError | boolean | true | Return one diagnostic dataset row instead of an empty failed run after transient scraping errors |
maxRetries | integer | 1 | Short retry attempts after transient scraping failures |
📦 Output Example
Each review is one row in the dataset:
{"name": "Daniyal Saqib","stars": 4,"text": "Amazing ambience and hospitality. Truly a fine experience.","publishedAtDate": "2026-04-21T15:35:49.034Z","publishAt": "a month ago","isLocalGuide": true,"reviewerNumberOfReviews": 143,"likesCount": 0,"responseFromOwnerText": null,"reviewImageUrls": ["https://lh3.googleusercontent.com/..."],"originalLanguage": "en","scrapedAt": "2026-05-21T15:35:46.577Z"}
📁 Place Summary (Key-Value Store)
The place details are saved once under OUTPUT_METADATA:
{"place": {"name": "NETSOL Technologies Ltd.","overallRating": 4.4,"totalReviews": 1410,"address": "...","phone": "...","website": "https://www.netsoltech.com/"},"reviewsCount": 1408,"scrapedAt": "2026-05-21T15:35:46.577Z"}
❓ FAQ
How do I scrape all reviews?
Set maxReviews to 0. The default is 5 so automated quality checks and quick tests finish quickly.
My search matched the wrong business — what do I do?
Use a direct Google Maps URL, CID, or Place ID. The optional website field is a helpful reference, but direct identifiers are more reliable than text search.
Can I continue a previous run?
Yes — paste the previous run's dataset ID into resumeDatasetId and already-scraped reviews will be skipped.
How do I filter by review age?
Set maxReviewAge (e.g. 6 months) — works best combined with sortMode: "newest".
Which proxy should I use? Residential proxies are recommended for Apify Cloud runs to get complete, reliable results.
Why did I get a row with isFallback: true?
The Actor could not collect review rows before the timeout or Google Maps returned a restricted/changing layout. The fallback row keeps the run successful and non-empty while exposing the reason in fallbackReason.