Google Maps Reviews Scraper | 💰 $0.25 per 1,000 results avatar

Google Maps Reviews Scraper | 💰 $0.25 per 1,000 results

Pricing

from $0.25 / 1,000 results

Go to Apify Store
Google Maps Reviews Scraper | 💰 $0.25 per 1,000 results

Google Maps Reviews Scraper | 💰 $0.25 per 1,000 results

[💰 $0.25 / 1K] Scrape Google Maps reviews at scale. Extract review text, ratings, reviewer details, owner responses, photos, and more for any place on Google Maps.

Pricing

from $0.25 / 1,000 results

Rating

5.0

(1)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

41

Total users

7

Monthly active users

3 days ago

Last modified

Share

Google Maps Reviews Scraper

Export the review history of any place on Google Maps as clean spreadsheet rows: star ratings, full review text, reviewer profiles, owner replies, and review photos. Built for reputation managers, market researchers, and analysts who need a place's complete review record, not the handful of reviews a page happens to show before it stops loading.

Why This Scraper?

  • Date-range exports that are actually complete. Google's "newest" feed is not in date order. Across a 2,757-review sample, every place tested served reviews out of position, some by years. This scraper reads straight past those instead of stopping at the first old one, so "everything since January" really means everything since January.
  • Up to 50,000 reviews from a single listing. Set the per-place limit to 0 and take the whole history in one run.
  • 20 fields per review, including each reviewer's lifetime review count, their photo count, and their Local Guide badge, so a 5-star rave from a 900-review Local Guide can be weighted differently from a first-timer's.
  • Owner replies on the same row as the review they answer, with the date the business posted them.
  • Review photos as full-size image links, listed per review.
  • 4 sort orders (Most Relevant, Newest First, Highest Rating, Lowest Rating). Lowest Rating with a limit of 100 buys you a complaint sample for cents instead of an entire history.
  • 33 review languages and 184 countries. Reviews come back in whatever language they were written in, each row tagged with its own language code, and you pick which country's view of Maps to collect.
  • Three ways to name a place, mixable in one run: a Maps URL, a ChIJ… place ID, or plain text like "Katz's Delicatessen New York".
  • Runs report honestly. If reviews cannot be retrieved, the run fails and names the reason instead of handing you an empty file marked "succeeded". Partial runs say how many places came back short.

Use Cases

Reputation Monitoring

  • Track new reviews across every one of your locations in one dataset
  • Pull only reviews posted since your last export and route them to Slack or email
  • Catch owner replies that were never written, by filtering rows where the response field is empty

Competitive Intelligence

  • Compare rating distributions across every competitor in a trade area
  • Read a rival's 1-star and 2-star reviews in bulk to find the failure they keep repeating
  • Track how a competitor's rating moves month by month after a refurbishment or menu change

Lead Generation

  • Build prospect lists of businesses whose ratings slipped below a threshold
  • Find high-review-volume locations worth a partnership approach
  • Identify businesses that never respond to reviews, an easy opening for reputation services

Customer Experience Research

  • Mine thousands of reviews for the phrases customers repeat about wait times, staff, or parking
  • Separate tourist feedback from local feedback using reviewer review counts and Local Guide status
  • Compare what customers praise in one city against another for the same brand

Academic and Data Science

  • Assemble large labelled review corpora for sentiment and NLP work
  • Study rating behaviour, reviewer tenure, and photo-contribution patterns
  • Analyse temporal and geographic trends in consumer feedback

Getting Started

Paste place URLs

The fastest start. Paste one or more Google Maps place links:

{
"placeUrls": [
"https://www.google.com/maps/place/Eiffel+Tower/@48.8583701,2.2944813"
],
"maxReviewsPerPlace": 100
}

Search by name

No URL? Give the name and the city:

{
"searchQueries": ["Katz's Delicatessen New York", "Sagrada Familia Barcelona"],
"maxReviewsPerPlace": 200
}

Only reviews since a date

Everything published on or after your cutoff. Reviews outside the range are dropped before they reach your dataset, so they cost you nothing:

{
"placeUrls": ["https://www.google.com/maps/place/..."],
"reviewsStartDate": "2024-01-01",
"maxReviewsPerPlace": 0
}

Complaints only, in a local market

Lowest ratings first, in the language and country you care about:

{
"searchQueries": ["Tokyo Tower"],
"maxReviewsPerPlace": 100,
"sortBy": "lowest",
"language": "ja",
"countryCode": "JP"
}

Input

Places

ParameterTypeDefaultDescription
placeUrlsstring[][]Google Maps place URLs or place IDs (ChIJ…). One per line.
searchQueriesstring[][]Place names to look up, for example "Eiffel Tower Paris". One per line.

You can supply both in the same run.

Collection options

ParameterTypeDefaultDescription
maxReviewsPerPlaceinteger100Reviews to collect per place. 0 means everything, up to 50,000.
sortBystringrelevantMost Relevant, Newest First, Highest Rating, or Lowest Rating. Forced to Newest First whenever a start date is set.
reviewsStartDatestringemptyCollect only reviews published on or after this date (YYYY-MM-DD). Also switches the sort to Newest First.

Language and region

ParameterTypeDefaultDescription
languagestringenOne of 33 languages for the Google Maps interface. Review text itself always comes back in the language the reviewer wrote it in.
countryCodestringAuto-detectOne of 184 countries. The run is made from that country, so results match what a visitor there would see. Leave empty to let Google choose.

Output

Every review is one row, with up to 20 fields:

{
"reviewId": "Ci9DQUlRQUNvZENodHljRjlvT2xWbExYUlBlRTFrWjB0...",
"rating": 5,
"reviewText": "Incredible family-style Italian food. The portions are massive and perfect for sharing, and service was attentive even on a busy Saturday night.",
"language": "en",
"publishedAt": "2026-06-20T17:16:06Z",
"publishedAtTimestamp": 1781975766,
"reviewPhotoUrls": ["https://lh3.googleusercontent.com/..."],
"responseFromOwnerText": "Thank you for the wonderful review! We hope to see you again soon.",
"responseFromOwnerDate": "2026-06-22",
"reviewUrl": "https://www.google.com/maps/reviews/data=Ci9DQUlRQUNvZENodHlj...",
"source": "Google",
"reviewerName": "Sarah M.",
"reviewerUrl": "https://www.google.com/maps/contrib/1234567890123456789",
"reviewerPhotoUrl": "https://lh3.googleusercontent.com/a-/ALV-UjU...",
"reviewerNumberOfReviews": 852,
"reviewerNumberOfPhotos": 8391,
"isLocalGuide": true,
"placeName": "Carmine's - Times Square",
"placeUrl": "https://www.google.com/maps/place/...",
"placeFeatureId": "0x89c259af3367d0f5:0x3bdb6f7c1c5b8b5d"
}

Review fields

FieldTypeDescription
reviewIdstringUnique identifier for the review, stable across runs
ratingnumberStar rating, 1 to 5
reviewTextstringFull review text. Empty when the reviewer left a rating only
languagestringLanguage the review was written in
publishedAtstringPublication date and time, ISO 8601 (2026-06-20T17:16:06Z)
publishedAtTimestampnumberThe same moment as a Unix timestamp, ready to sort or filter on
reviewPhotoUrlsstring[]Full-size links to photos attached to the review
responseFromOwnerTextstringThe business owner's public reply, when there is one
responseFromOwnerDatestringDate the owner replied
reviewUrlstringDirect link to the review on Google Maps
sourcestringPlatform the review came from

Reviewer fields

FieldTypeDescription
reviewerNamestringReviewer's display name
reviewerUrlstringLink to the reviewer's public Google Maps profile
reviewerPhotoUrlstringReviewer's profile photo
reviewerNumberOfReviewsnumberHow many reviews this person has written in total
reviewerNumberOfPhotosnumberHow many photos this person has contributed in total
isLocalGuidebooleanWhether Google marks them as a Local Guide

Place fields

FieldTypeDescription
placeNamestringName of the reviewed place
placeUrlstringGoogle Maps link to the place
placeFeatureIdstringGoogle's own identifier for the place, useful for joining runs together

Tips for Best Results

  • Name the city in every search query. "Katz's Delicatessen New York" resolves to one listing; "Katz's" can land on a different branch in a different country.
  • A start date overrides your sort order. Setting reviewsStartDate switches collection to Newest First, because that is the only order a date range can be read in. If a specific order matters more than the date window, use one or the other, not both.
  • Raise the per-place limit when you use a date range. The limit counts reviews delivered to your dataset, so a busy place can hit 100 long before it reaches your cutoff. The run log names which of the two ended collection.
  • Filter ratings after export, not before. Google offers no rating filter, so pull the reviews you want and filter on the rating column in your spreadsheet or database.
  • Use publishedAtTimestamp for repeat exports. Keep the highest timestamp from your last run and use it as the next run's start date to pick up only what is new.
  • Pair language with countryCode. A Japanese-language run from Japan surfaces a noticeably different review mix than the same place requested from the US.
  • Split places with 10,000+ reviews across runs. Two runs with different sort orders reach further into a huge review history than one long run with a single order.

Pricing

From $0.22 per 1,000 reviews. One flat rate per review, whichever place it came from. You pay for reviews delivered to your dataset, plus a small fixed start fee each time a run begins. Reviews filtered out by your date range never reach the dataset and are never charged. Bronze, Silver, and Gold subscribers pay progressively less, and the table shows the total at each discount tier.

ReviewsNo discountBronzeSilverGold
100$0.025$0.024$0.023$0.022
1,000$0.25$0.24$0.23$0.22
10,000$2.50$2.40$2.30$2.20
100,000$25.00$24.00$23.00$22.00

Standard Apify platform fees apply on top.

Integrations

Export as JSON, CSV, Excel, XML, or RSS, and connect to 1,500+ apps:

  • Zapier / Make / n8n — workflow automation
  • Google Sheets — direct spreadsheet export
  • Slack / Email — alerts when a run finishes
  • Webhooks — push new reviews into your own systems
  • Apify API — full programmatic access for scheduling, monitoring, and data retrieval

This actor is built for legitimate reputation monitoring, market research, and competitive intelligence. You are responsible for complying with applicable laws and Google's Terms of Service. Do not use collected data for spam, harassment, or any unlawful purpose.