Google Maps Reviews Scraper - Bulk Reviews + Owner Replies avatar

Google Maps Reviews Scraper - Bulk Reviews + Owner Replies

Pricing

$0.50 / 1,000 review scrapeds

Go to Apify Store
Google Maps Reviews Scraper - Bulk Reviews + Owner Replies

Google Maps Reviews Scraper - Bulk Reviews + Owner Replies

Scrape reviews from any Google Maps place. Reviewer name, rating, date, text, owner reply, photo count. Sort newest / highest / lowest. No API key.

Pricing

$0.50 / 1,000 review scrapeds

Rating

0.0

(0)

Developer

Hasnain Nisar

Hasnain Nisar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Scrape reviews from any Google Maps place — restaurant, hotel, store, attraction, anywhere. Extract reviewer names, star ratings, dates, full review text, owner replies, and photo counts. Sort by newest, highest, or lowest. Filter by minimum rating. No API key.

At a glance

What you getReviewer name, star rating, date, full review text, owner reply, photo count - one row per review
InputOne or more Google Maps place URLs (or short maps.app.goo.gl links)
Sortingnewest, highest, lowest, or relevant
FiltersminRating, maxReviews (1-500 per place)
AuthNo Google account and no Places API key required
Speed~20 reviews in 10-20s; ~100 in 30-60s
ExportJSON, CSV, Excel, or Google Sheets via the Apify API

What this Google Maps Reviews Scraper does

For each Google Maps place URL, the actor returns:

  • Place name — the business or location name
  • Overall rating — the aggregate star rating
  • Total reviews — how many were extracted (capped at maxReviews)
  • Reviews list — each review with:
    • reviewer_name
    • rating (1.0–5.0)
    • date (e.g. "3 weeks ago", "a year ago")
    • text (full body — long reviews are auto-expanded by clicking "More")
    • owner_response (the business owner's reply, when present)
    • photo_count (how many photos the reviewer attached)

Why use this Google Maps Reviews Scraper?

  • No Google Places API key — bypass the per-call $$ pricing
  • No quota limits — extract as many reviews as you need
  • Owner-reply extraction — track how businesses respond to feedback
  • Auto-expanded review text — full body, not the truncated preview
  • Sort + filter controls — newest / highest / lowest, plus min-rating filter
  • Bulk-friendly — pass an array of place URLs

Use cases

  • Reputation management — monitor your own business's reviews and reply patterns
  • Competitor analysis — see what customers say about your competitors
  • Sentiment analysis — feed reviews into AI/ML pipelines for topic / mood extraction
  • Local SEO research — analyse review velocity and rating distribution by competitor
  • Marketing testimonials — surface 5-star reviews for ad copy and landing pages
  • Customer-experience research — identify common complaints to fix
  • Real-estate / hospitality due diligence — check review velocity before investing
  • Brand monitoring — capture mentions across your store locations

Input

{
"placeUrls": [
"https://www.google.com/maps/place/Eiffel+Tower/@48.8584,2.2945",
"https://maps.app.goo.gl/abc123"
],
"maxReviews": 100,
"sortBy": "newest",
"minRating": 1
}
FieldTypeDefaultDescription
placeUrlsarray of stringsrequiredOne or more Google Maps place URLs
maxReviewsinteger20Max reviews per place (1–500)
sortBystringnewestnewest, highest, lowest, or relevant
minRatinginteger1Skip reviews below this star rating

Output

The first record per place is a place-level summary:

{
"place_url": "https://www.google.com/maps/place/Eiffel+Tower/...",
"place_name": "Eiffel Tower",
"rating": "4.6",
"total_reviews": 100,
"reviews": [
{
"reviewer_name": "Alice Smith",
"rating": 5.0,
"date": "2 weeks ago",
"text": "Amazing experience! The view from the top is breathtaking…",
"owner_response": "Thank you for visiting! We hope to see you again.",
"photo_count": 3
}
]
}

The actor then pushes one record per individual review (with place_name and place_url denormalised onto each row) — handy for filtering / pivoting in Sheets and Excel.

How it works

The actor uses Playwright to load the Google Maps place page and:

  1. Dismisses cookie consent
  2. Reads the place name (h1.DUwDvf) and overall rating (div.fontDisplayLarge)
  3. Clicks the "Reviews" tab
  4. Sorts via the dropdown using your sortBy value
  5. Scrolls the reviews panel until enough reviews are loaded
  6. Walks each review element, clicks "More" on long bodies, and extracts:
    • reviewer name from .d4r55
    • rating from the aria-label of the stars span
    • date from .rsqaWe
    • body text from .wiI7pd
    • owner reply from .CDe7pd
    • photo count from button[aria-label*='photo']

Cost & speed

A 20-review scrape completes in 10–20 seconds. A 100-review scrape completes in 30–60 seconds. Memory usage is ~1 GB due to Chromium.

  • Facebook Page Scraper — extract contact info from FB business pages
  • LinkedIn Profile Scraper — bulk LinkedIn profile data
  • Email Verifier — verify scraped emails for outreach hygiene
  • TikTok / YouTube / Twitter scrapers — multi-platform social monitoring

FAQ

Q: Do I need a Google account? No.

Q: Can I scrape thousands of reviews from a single place? Up to 500 per run. For more, run multiple jobs with different sortBy (newest, highest, lowest) to capture different slices, then deduplicate.

Q: Why is total_reviews lower than maxReviews? The place may simply have fewer reviews, or the minRating filter discarded some. The actor only counts reviews that survived the filter and were successfully parsed.

Q: Will Google block my Apify IP? Each place URL is loaded one at a time. Google typically tolerates this. For very large batches, run smaller chunks and pace your runs.

Q: Is scraping Google Maps reviews legal? Reviews are public data. Always comply with Google's Terms of Service when storing or republishing data. For commercial use, consult your legal team.