Google Maps Review & Contributor Activity Scraper avatar

Google Maps Review & Contributor Activity Scraper

Under maintenance

Pricing

from $0.99 / 1,000 results

Go to Apify Store
Google Maps Review & Contributor Activity Scraper

Google Maps Review & Contributor Activity Scraper

Under maintenance

Get reviews for any Google Maps business or place, or switch to author mode to pull everything one Google reviewer has written. Includes ratings, review text, dates, likes, and owner replies.

Pricing

from $0.99 / 1,000 results

Rating

0.0

(0)

Developer

Nimbryxo-studio

Nimbryxo-studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Get Google Maps reviews for any business, restaurant, hotel, or location — no API key, login, or cookies required. Extract reviewer names, star ratings, full review text, dates, likes, owner replies, and business details, sorted by newest, highest-rated, lowest-rated, or most relevant. Also supports author mode to pull everything one Google reviewer has written across every place they've reviewed.

What this actor does

  • Extracts full review data — reviewer name, rating, review text, date, likes, owner replies, and photos from any public Google Maps business or location page.
  • Two input formats — paste a Google Maps place URL directly, or use a canonical Google ChIJ Place ID.
  • Author mode — give a reviewer's public profile and get everything that reviewer has written across Google Maps.
  • Sort control — request reviews newest-first, highest/lowest rating, or most relevant, with each row flagging whether Google's requested order was actually confirmed.
  • Preserves Google's original relative dates (e.g. "2 weeks ago") instead of guessing calendar dates.
  • Clean, null-free records — one row per review; fields Google doesn't expose are omitted rather than left blank.

Two modes

  • Place mode (default) — give a business or location and get its reviews. This is the original behaviour and stays the default when mode is omitted.
  • Author mode — give a Google reviewer’s public profile and get the reviews that reviewer has written. Author mode returns up to about ten of that reviewer’s most recent reviews; this is a limit of what Google publishes anonymously, not a setting.

Input

FieldTypeRequiredDefaultDescription
modeenumNoplaceplace for one business or location, author for everything one reviewer has reviewed
placeUrlstringIn place mode—Google Maps place URL; mobile/country-domain/short-link variants and copied tracking parameters are normalized
placeIdstringIn place mode—Canonical Google Place ID beginning with ChIJ; use instead of placeUrl (setting both stops the run with an input error)
contributorUrlsarrayIn author mode—One or more reviewer profile URLs or bare numeric reviewer IDs; profile, reviews, photos and place links are all accepted
contributorUrlstringIn author mode—A single reviewer profile URL or bare numeric reviewer ID; same as one entry in contributorUrls
maxReviewsintegerNo50Maximum number of reviews to extract. In author mode Google publishes only about ten of a reviewer’s most recent reviews, so a higher value does not yield more rows
sortByenumNonewestrelevant, newest, highest_rating, or lowest_rating (used in place mode)
languageenumNoenGoogle Maps interface language
proxyConfigurationobjectNo—The actor always uses Apify's Residential proxy group (US exit unless you choose another two-letter apifyProxyCountry); other proxy settings are ignored

Examples

Example: newest reviews from a place URL

{
"placeUrl": "https://www.google.com/maps/place/Joe's+Pizza/@40.7305137,-73.9968643,17z/data=!3m2!4b1!5s0x89c2599bcc4854cd:0xabc03f64af538b40!4m6!3m5!1s0x89c2599bca4854c5:0x48e61b36c6e9e68!8m2!3d40.7305137!4d-73.9942894!16s%2Fg%2F1tfrzlcv",
"maxReviews": 30
}

Example: highest-rated reviews by Place ID

{
"placeId": "ChIJabtoT7hlwokRLECK0SW3_8I",
"maxReviews": 100,
"sortBy": "highest_rating",
"language": "en"
}

Example: Japanese review collection

{
"placeUrl": "https://www.google.com/maps/place/Sushi+no+Midori/@35.6704396,139.7596577,17z/",
"maxReviews": 50,
"sortBy": "relevant",
"language": "ja"
}

Example: everything one reviewer has reviewed

{
"mode": "author",
"contributorUrls": ["https://www.google.com/maps/contrib/102461194647441801965/reviews"],
"maxReviews": 10,
"language": "en"
}

How to Get the Place URL

  1. Go to Google Maps
  2. Search for the business or place
  3. Click on the place to open its details
  4. Copy the URL from your browser's address bar

The URL can be a desktop or mobile Google Maps URL, a supported country-domain URL, or a Google Maps short link. Wrapping quotes and tracking parameters are cleaned automatically.

You may provide a canonical Google Place ID beginning with ChIJ in placeId instead of placeUrl. Feature IDs and CIDs are not accepted as Place IDs.

How to Get a Contributor Profile URL

  1. Open any review written by the reviewer on Google Maps
  2. Click the reviewer's name to open their contributor profile
  3. Copy the URL from your browser's address bar

The profile URL looks like https://www.google.com/maps/contrib/…. You can paste the profile link, a …/reviews, …/photos, or …/place/… link, or just the reviewer's numeric ID — all are accepted and cleaned automatically.

Output per review

Each row in the dataset represents one review. In place mode every row includes the review data and the business context; in author mode every row includes the review data and the reviewer's public profile context. The recordType field tells the two apart (review for place mode, authorReview for author mode).

Sample Output

{
"recordType": "review",
"reviewId": "ChZDSUhNMG9nS0VJQ0...",
"reviewerName": "John Smith",
"reviewerAvatarUrl": "https://lh3.googleusercontent.com/a/...",
"rating": 5,
"reviewText": "Best pizza in NYC! The classic slice is perfection.",
"reviewDateOriginal": "2 weeks ago",
"likesCount": 3,
"businessName": "Joe's Pizza",
"businessRating": 4.5,
"businessTotalReviews": 12847,
"businessCategory": "Pizza restaurant",
"businessAddress": "7 Carmine St, New York, NY 10014",
"placeUrl": "https://www.google.com/maps/place/Joe's+Pizza/...",
"sourceUrl": "https://www.google.com/maps/place/Joe's+Pizza/...",
"sortBy": "newest",
"sortConfirmed": true,
"sortStatus": "confirmed",
"order": 0,
"scrapedAt": "2026-09-14T12:00:00+00:00"
}

Sample Author-Mode Output

{
"recordType": "authorReview",
"contributorId": "102461194647441801965",
"contributorName": "Hilarie Sant",
"contributorAvatarUrl": "https://lh3.googleusercontent.com/a/...",
"contributorProfileUrl": "https://www.google.com/maps/contrib/102461194647441801965/reviews",
"contributorLocalGuideLevel": 3,
"contributorPoints": 154,
"contributorTotalReviews": 9,
"placeName": "Especially For You Your Downtown Florist",
"placeAddress": "221 W 400 S, Salt Lake City, UT 84101, United States",
"rating": 5,
"reviewText": "Thank you for the absolutely beautiful flowers and wonderful customer service!",
"reviewDateOriginal": "2 weeks ago",
"position": 1,
"sourceUrl": "https://www.google.com/maps/contrib/102461194647441801965/reviews",
"scrapedAt": "2026-09-14T12:00:00+00:00"
}

Output Fields

FieldTypeDescription
recordTypestringreview in place mode, authorReview in author mode
reviewIdstringUnique review identifier when exposed
reviewerNamestringName of the reviewer (place mode)
reviewerAvatarUrlstringURL of the reviewer's profile picture (place mode)
reviewerProfileUrlstringURL of the reviewer's public profile (place mode)
reviewerSubtitlestringGoogle's subtitle under the reviewer name, e.g. Local Guide level, review and photo counts (place mode)
reviewerLocalGuideLevelintegerReviewer's Local Guide level parsed from the subtitle (place mode)
reviewerTotalReviewsintegerReviewer's published review total parsed from the subtitle (place mode)
reviewerPhotoCountintegerNumber of photos on the reviewer's profile parsed from the subtitle (place mode)
reviewerEmojistringEmoji Google shows next to the reviewer's name (place mode)
ratingintegerStar rating (1–5)
reviewTextstringFull review text
reviewLanguagestringLanguage code Google reports for the review text
originalReviewLanguagestringOriginal language code when Google shows a translated review (place mode)
reviewDateOriginalstringDate text exactly as Google displayed it
reviewDatestringAbsolute date only when Google exposed one directly
isEditedbooleanSet when Google marks the review as edited
likesCountintegerHelpful/like count only when published
businessNamestringName of the business (place mode)
businessRatingnumberOverall business star rating (place mode)
businessTotalReviewsintegerTotal number of reviews for the business (place mode)
businessCategorystringBusiness category (place mode)
businessAddressstringBusiness street address (place mode)
contributorIdstringReviewer's public numeric ID (author mode)
contributorNamestringReviewer's display name (author mode)
contributorAvatarUrlstringReviewer's profile picture (author mode)
contributorProfileUrlstringReviewer's public reviews page (author mode)
contributorLocalGuideLevelintegerReviewer's Local Guide level (author mode)
contributorPointsintegerReviewer's public contribution points (author mode)
contributorTotalReviewsintegerReviewer's published review total (author mode)
placeNamestringPlace the reviewer reviewed (author mode)
placeAddressstringAddress of the reviewed place (author mode)
positionintegerPosition of the review in the reviewer's list (author mode)
reviewPhotoUrlsarrayPhoto URLs attached to the review (author mode)
reviewPhotoCountintegerNumber of photos attached to the review (author mode)
videosInReviewintegerNumber of directly labelled video controls Google exposes on this review card
photosInReviewarrayPhoto URLs attached to the review (place mode)
ownerResponseTextstringOwner reply, when the place replied
ownerResponseDatestringOwner reply date converted to an absolute date, when resolvable (place mode)
ownerResponseDateOriginalstringOwner reply date text exactly as Google displayed it
contextLabelsarrayPublic context labels shown on the review (author mode)
mentionedItemsarrayPublic item or aspect chips Google highlights in the review
isVerifiedbooleanSet when Google marks the review with a verified badge
visitDatestringVisit date text Google shows on the review, e.g. "Visited in May"
placeIdstringCanonical Google Place ID beginning with ChIJ, when Google exposes one (place and author modes)
featureIdstringLegacy feature/CID token (0x…:0x…), when Google exposes one (place and author modes)
placeUrlstringGoogle Maps place URL
sourceUrlstringSource Google Maps URL for the row
sortBystringRequested review order for the row (relevant, newest, highest_rating, lowest_rating); place mode only
sortConfirmedbooleantrue only when the requested order was confirmed from Google's own panel; false when rows were emitted but the requested order could not be confirmed. Place mode only
sortStatusstringShort form of sortConfirmed: confirmed or unconfirmed. Place mode only
orderintegerPosition of the review in results (0-based, place mode)
scrapedAtstringISO 8601 timestamp of when the data was scraped

Sort confirmation

sortedness is reported on the rows, never assumed. sortConfirmed is true only when the panel's own post-click order positively shows the requested order and something distinguishes it from the pre-click default order — the sampled cards reordered, or Google's relevance window was replaced at the head by its recency window. For newest, an all-identical relative-age window (for example ten reviews that all read "3 weeks ago") is compatible with newest-first and is confirmed once the panel changed; a window whose ages get newer going down is not newest-first. For highest_rating/lowest_rating, a window of equal ratings cannot distinguish the two orders and is left unconfirmed rather than guessed. A requested order that could not be confirmed is named in the run's status message and on every row.

Place identity

FieldTypeDescription
placeIdstringCanonical Google Place ID beginning with ChIJ, when Google exposes one.
featureIdstringLegacy feature/CID token (0x…:0x…), when Google exposes one.

A canonical ChIJ… token is recorded in placeId; a legacy 0x…:0x… token is recorded in featureId and is never relabelled as a Place ID. When both are observed, the canonical token takes placeId and the legacy token is still recorded as featureId. An identity that was never observed is omitted rather than invented.

Use cases

  • Monitor customer feedback for a business or location.
  • Compare review themes and ratings across competitors.
  • Follow prolific reviewers and see everything they have reviewed across places.
  • Build analysis datasets while preserving Google’s original relative date text.
  • Feed public review records into reporting or sentiment-analysis workflows.

Tips

  • Set maxReviews wisely — higher values take longer but give more data when the public review surface exposes it; place-mode collection is capped at about 30 minutes per run, so very large requests (tens of thousands of reviews) can stop short
  • Author mode is small by design — Google publishes only about ten of a reviewer's most recent reviews anonymously, so expect about ten rows per profile
  • Reviews follow the requested sortBy when Google's sort control can be applied; rows whose order couldn't be confirmed carry sortConfirmed: false, and the run's status message says how many
  • Relative review dates are preserved as observed; the actor never converts them into guessed calendar dates

Limitations

  • Google Maps sometimes exposes a smaller public review window than a place's advertised total review count, especially for very high-volume places. The actor reports exactly how many reviews it actually retrieved rather than padding the dataset.
  • Place-mode collection works within an overall budget of about 30 minutes per run; whatever was collected by then is kept.
  • The scraper extracts reviews visible on Google Maps — private or filtered reviews are not accessible.
  • Author mode returns at most about ten reviews per profile. Google's public reviewer pages expose only the most recent handful of reviews with no way to page further; this is a Google limit, not a bug, and the actor reports only the reviews it actually observes.
  • A reviewer's absolute review dates are not published. Google shows only relative labels such as "2 weeks ago", so author-mode rows keep that label in reviewDateOriginal and never invent a calendar date.

You are responsible for using these public reviews lawfully and in line with Google's terms.

FAQ

Do I need to provide cookies or sign in? No. The actor reads Google Maps the way a signed-out visitor does.

Are relative dates converted to calendar dates? No. They remain in reviewDateOriginal unless Google exposes an absolute date directly.

Why are some review fields absent? Google does not publish every field for every review; unavailable values are omitted.

Can I sort the reviews? Yes. Choose the supported sortBy value such as newest, relevant, highest_rating, or lowest_rating. When an explicit order cannot be applied through Google's sort control, the run reports the ignored sort instead of returning relevance-ordered rows as though they were sorted.

What happens if a place has thousands of reviews but Google only exposes a smaller public window? The actor goes as far into that public window as it can reach and emits only real reviews it actually observed — it never pads the dataset with invented rows, and it reports honestly if the requested count could not be fully reached.

How many reviews does author mode return? About ten of that reviewer's most recent reviews. Google's public reviewer pages only expose that first window and offer no way to page further, so the actor reports exactly what Google shows and never pads the list.

Do author-mode rows have exact review dates like place mode? No, and neither does Google. A reviewer's published dates are relative labels such as "3 months ago"; those are kept verbatim in reviewDateOriginal, and no calendar date is guessed.

Is this an official Google product? No. This is a third-party actor that extracts publicly available data from Google Maps; it is not affiliated with, endorsed by, or operated by Google.

Can I scrape reviews for a specific Google reviewer instead of a business? Yes — switch to mode: "author" and provide that reviewer's public Google Maps profile URL or numeric ID. You'll get everything they've reviewed, not just one place.

Do I need a Google API key or billing account? No. This actor reads Google Maps' public pages directly — no Google Cloud project, API key, or billing setup required.