Google Maps Reviews Scraper | Fast & Low Cost Export avatar

Google Maps Reviews Scraper | Fast & Low Cost Export

Pricing

from $0.05 / 1,000 results

Go to Apify Store
Google Maps Reviews Scraper | Fast & Low Cost Export

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

ScrapeCraft

Maintained by Community

Actor stats

2

Bookmarked

5

Total users

2

Monthly active users

19 days ago

Last modified

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

DataDetails
👤 ReviewerName, profile URL, photo, review count, Local Guide status
✍️ ReviewFull text, translated text, star rating, likes
📅 DateRelative date ("a month ago") + parsed timestamp
📸 PhotosImage URLs attached to the review
💬 Owner ReplyResponse text and date when present
🌐 LanguageOriginal 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 maxReviews is intentionally small so Apify's automated quality checks finish quickly. Set maxReviews: 0 only 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

FieldTypeDefaultDescription
urlstringBlue Bottle Coffee Maps search URLDirect Google Maps place URL or Maps search URL
searchQuerystringBlue Bottle Coffee 300 Webster St Oakland CABusiness name to search on Google Maps if URL, CID, and Place ID are not provided
websitestringBlue Bottle Coffee websiteOptional human reference for the selected place
placeIdstringGoogle Place ID
cidstringGoogle Maps CID
maxReviewsinteger5Max reviews to collect (0 = all)
languagestringenReview language code (e.g. en, es, fr, de)
maxReviewAgestringFilter by age, e.g. 6 months, 1 year, 3 years
resumeDatasetIdstringResume a previous run — skips already-scraped reviews
blockAssetsbooleantrueBlock images/fonts to save bandwidth
proxyConfigobjectResidentialApify proxy config — residential proxies recommended
maxRunSecondsinteger240Safety timeout for one run
fallbackOnErrorbooleantrueReturn one diagnostic dataset row instead of an empty failed run after transient scraping errors
maxRetriesinteger1Short 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.