Google Maps Reviews Scraper — Photos, Ratings & Translations avatar

Google Maps Reviews Scraper — Photos, Ratings & Translations

Pricing

from $0.30 / 1,000 per reviews

Go to Apify Store
Google Maps Reviews Scraper — Photos, Ratings & Translations

Google Maps Reviews Scraper — Photos, Ratings & Translations

Scrape Google Maps reviews by place URL or place ID. Get review text with English translation, star ratings, attached photos, likes, owner responses, dates, and reviewer profiles — 20 fields. $0.50 per 1,000 reviews; pay only for what you get.

Pricing

from $0.30 / 1,000 per reviews

Rating

0.0

(0)

Developer

bootforge

bootforge

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

2

Monthly active users

5 days ago

Last modified

Share

Google Maps Reviews Scraper

The Google Maps Reviews Scraper is an Apify actor that extracts every public review for any place on Google Maps — review text with English translation, star rating, dates, likes, owner responses, attached review photos, and reviewer details. Point it at a place by URL or place ID and export the reviews as JSON, CSV, or Excel for sentiment analysis, reputation monitoring, or competitor research.

Table of contents

What the Google Maps reviews scraper does

  • 📝 Full review text + English translation — the original review plus Google's English translation in text_translated when the review isn't already in your requested language.
  • Ratings, dates, and likes — 1–5 star rating, relative and absolute dates, and the like count on each review (review_likes).
  • 💬 Owner responses — the business owner's reply text and a has_owner_response flag, for tracking how a business engages its customers.
  • 📷 Attached review photos — every image a reviewer attached, as a list of direct URLs in review_images.
  • 👤 Reviewer details — name, profile URL, photo, and total review count, so you can weight local guides vs. one-off reviewers.
  • 🔢 Sort and cap — pull newest, most relevant, or highest/lowest rated reviews, and cap per place (or set unlimited).
  • 🌍 Any place, by URL or ID — accepts Google Maps place URLs and raw hex place IDs; billed per review actually delivered.

How to scrape Google Maps reviews

  1. Click Try for free and open the actor.
  2. Paste one or more Google Maps place URLs into startUrls (open the place in Google Maps and copy the URL from your browser's address bar), or paste hex place IDs into placeIds.
  3. Set maxReviews per place (default 100; use 0 for unlimited).
  4. Choose a reviewsSort order and a language for the review text.
  5. Click Start and watch reviews stream into the dataset.
  6. Export as JSON, CSV, or Excel, or pull from the Apify API.

Scrape by place URL:

{
"startUrls": ["https://www.google.com/maps/place/ATX+Family+Dental/@30.24,-97.75,17z/data=!4m8!3m7!1s0x8644b5003b80596b:0x6b271d491de49e1e!..."],
"maxReviews": 200,
"reviewsSort": "newest",
"language": "en"
}

Get a place's top reviews:

{
"startUrls": ["https://www.google.com/maps/place/..."],
"maxReviews": 5,
"reviewsSort": "highestRating"
}

Scrape by hex place ID:

{
"placeIds": ["0x8644b5003b80596b:0x6b271d491de49e1e"],
"maxReviews": 100
}

Google Maps reviews scraper input

FieldDefaultDescription
startUrls[]Google Maps place URLs to scrape reviews from (copy the full URL from the address bar).
placeIds[]Raw place IDs in hex feature-id form (0x…:0x…). ChIJ… IDs are not supported — paste the place URL instead.
maxReviews100Max reviews per place. 0 = unlimited. Counts reviews with text only.
reviewsSortnewestOrder: newest, mostRelevant, highestRating, lowestRating.
languageenBCP-47 code for review text (e.g. en, de, fr, vi).
proxyApify residentialProxy configuration. Residential is recommended (see below).

Provide at least one of startUrls or placeIds.

Google Maps review data output

Each review is one flat row of 20 fields:

{
"place_id": "0x8644b5003b80596b:0x6b271d491de49e1e",
"business_name": "ATX Family Dental",
"business_url": "https://www.google.com/maps?cid=7720627710330453534",
"review_id": "ChdDSUhNMG9nS0VJQ0FnSURydXBfcXdBEAE",
"review_url": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChdD...!...",
"rating": 5,
"text": "Absolutely love this place. The staff is kind, professional, and always on time. Dr. Chen explained everything clearly and I left with zero anxiety.",
"text_translated": null,
"review_images": ["https://lh3.googleusercontent.com/grass-cs/AN..."],
"relative_time": "2 months ago",
"absolute_date": "March 2026",
"language": "en",
"review_likes": 3,
"owner_response": "Thank you so much! We love having you as a patient.",
"has_owner_response": true,
"reviewer_name": "Sarah M.",
"reviewer_profile_url": "https://www.google.com/maps/contrib/113456789012345678901",
"reviewer_review_count": 47,
"reviewer_photo_url": "https://lh3.googleusercontent.com/a-/ALV-UjV...",
"scraped_at": "2026-06-19T08:30:00+00:00"
}
FieldDescription
place_idHex feature ID of the place.
business_namePlace name.
business_urlOpenable maps?cid= link to the place.
review_id, review_urlReview identifier and a direct link to the review.
ratingStar rating, 1–5.
text, text_translatedOriginal review text and Google's English translation (null if already in the requested language).
review_imagesList of attached review photo URLs.
relative_time, absolute_date"2 months ago" and "March 2026".
languageDetected language of the review.
review_likesLike count on the review.
owner_response, has_owner_responseOwner's reply text and a boolean flag.
reviewer_name, reviewer_profile_url, reviewer_photo_url, reviewer_review_countReviewer identity and total reviews contributed.
scraped_atISO 8601 timestamp of extraction.

How much it costs

This actor uses pay-per-event pricing — you pay for reviews delivered, not for time.

EventUSD
Actor start (per run)$0.01
Review delivered$0.0005 ($0.50 per 1,000)
Use caseReviewsEst. cost
Monitor one business (latest 100)100~$0.06
Competitive snapshot (10 businesses × 100)1,000~$0.51
Sentiment dataset — one category in a city10,000~$5.01
Full competitor audit (100 businesses × 200)20,000~$10.01

One run start = $0.01 regardless of how many places or reviews you pull. You only pay for reviews actually delivered — if a place has 30 reviews and you set maxReviews: 100, you are charged for 30.

Google rate-limits datacenter IPs aggressively on its review endpoints, so residential proxies are recommended. This actor supports Apify Proxy — the default proxy config uses Apify residential IPs, so it works out of the box.

For high-volume runs, or if you run your own scrapers inside or outside Apify, we recommend DataImpulse residential proxies — pay-as-you-go, per-country targeting, no monthly minimum, which keeps Google's review endpoints resolving cleanly:

👉 Get DataImpulse residential proxies (referral link)

Why this Google Maps reviews scraper

  • The most complete review row — English translations, review likes, and attached review photos, plus owner responses and full reviewer details, in a single flat row.
  • Pay only for what you get — per-review billing with a $0.01 run start and no per-place or subscription fees; unused maxReviews headroom is never charged.
  • URL or place ID input — paste a place URL straight from Google Maps, or feed raw hex IDs you already have.
  • CSV-friendly output — 20 flat fields, validated with Pydantic (impossible ratings, negative counts, and malformed URLs are dropped, not passed through).
  • Open source — the underlying google-maps-scraper Python package ships a Typer CLI and a FastAPI server; the Apify wrapper is a thin layer.

FAQ

How do I get a Google Maps place URL? Open the place in Google Maps, then copy the full URL from your browser's address bar and paste it into startUrls. The URL contains the place's hex ID, so no extra lookup is needed. You can paste multiple URLs, one per line.

What place ID format does placeIds accept? Only the hex feature-id form (0x…:0x…). The newer ChIJ… string IDs are not supported — if that's all you have, paste the place's Google Maps URL instead and the actor resolves it for you.

Why do I get fewer reviews than the place's total? Google counts star-only ratings (no text) in a place's total, but this actor returns only reviews with text as records. A place showing "500 reviews" may return far fewer text records.

Which proxies work best for scraping Google Maps reviews? Residential proxies. Google rate-limits datacenter IPs on its review endpoints, so the default config uses Apify residential proxies; for your own scrapers we recommend DataImpulse (referral link).

Is scraping Google Maps reviews legal? This actor collects only publicly available review data. You are responsible for complying with Google's terms and applicable laws, and for handling any personal data (such as reviewer names) with a lawful basis.

Can I translate reviews to English? Yes. When a review isn't in your requested language, Google's English translation is returned in text_translated, alongside the original text.

Rate this actor ⭐

If the Google Maps Reviews Scraper saved you time, please leave a review on its Apify Store page — ratings help other people find it and tell us what to build next. Hit a bug or missing field? Open an issue through the actor's Issues tab and we'll fix it fast — recency and reliability are what keep this actor ranking.

Building a full reputation or lead pipeline? Pair this actor with our other scrapers — same proxy config format, same Pydantic-validated output, all open source.