# How to Scrape Google Reviews: 800 Measured

> We scraped 800 Google reviews from 8 US places on 7 October 2026: every row with rating and ISO date, 61% with text. Python code, cost and how often to pull.

[Home](https://quanticdata.io/)/[Blog](https://quanticdata.io/blog/)/How to Scrape Google Reviews: 800 Measured

# How to scrape Google reviews: 800 reviews from 8 places, measured

SERP & searchOct 7, 2026·8 min read·By [Aldo Morese](https://quanticdata.io/about/), founder of QuanticData

Bars showing how many days the 100 newest Google reviews cover at four US places measured on 7 October 2026: 6.5 days at Katz's Delicatessen, 33.4 at Apple Fifth Avenue, 135.3 at Franklin Barbecue and 283 at Hotel Emma; the card notes 800 of 800 reviews delivered, 61% with text, $0.40 at list price.

On this page [Three ways to scrape Google reviews](/blog/scrape-google-reviews/#three-ways-to-scrape-google-reviews) [What we measured on 7 October 2026](/blog/scrape-google-reviews/#what-we-measured-on-7-october-2026) [Scrape Google reviews with Python](/blog/scrape-google-reviews/#scrape-google-reviews-with-python) [What a Google review row contains](/blog/scrape-google-reviews/#what-a-google-review-row-contains) [How often to scrape: review velocity](/blog/scrape-google-reviews/#how-often-to-scrape-review-velocity) [What it costs to scrape Google reviews](/blog/scrape-google-reviews/#what-it-costs-to-scrape-google-reviews) [Scrape Google reviews from an AI agent](/blog/scrape-google-reviews/#scrape-google-reviews-from-an-ai-agent) [Is scraping Google reviews legal?](/blog/scrape-google-reviews/#is-scraping-google-reviews-legal) [The settings to use](/blog/scrape-google-reviews/#the-settings-to-use)

On 7 October 2026 we pulled the 100 newest Google reviews of 8 US places, one API call per place: 800 of 800 reviews came back, each with its star rating, an ISO timestamp, the author and a unique review id. A run of 100 reviews fetched live took 13.3 to 17.5 seconds, and the whole test cost $0.40 at list price. Below: the code, what the rows contain, and how often you actually need to pull.

## Three ways to scrape Google reviews

Most guides on how to scrape Google reviews offer the same three routes. They differ in how many reviews you get, who maintains the scraper, and whether you can read reviews of places you do not own.

| Route | Reviews per place | Any place? | You maintain |
| --- | --- | --- | --- |
| Google Places API (Place Details) | 5 at most, sorted by relevance | Yes | An API key and billing account |
| Google Business Profile API | All of them | No, only locations you manage | OAuth and a verified profile |
| Browser script (Selenium, Playwright) | As many as you can scroll | Yes | Chrome, selectors, consent screens, IPs |
| Reviews collector (API or MCP) | Up to 100 per run, paginated for you | Yes | One HTTP call |

The official Places API is the right call when five reviews are enough, for example to show a snippet on a store locator: Google's reference says a maximum of 5 reviews can be returned per place. The Business Profile API is the right call for your own locations, since it lists every review and lets you reply. Everything else, such as competitor monitoring, market research or sentiment across a category, needs a scraper. The rest of this post uses the [Google reviews scraper API](https://quanticdata.io/collectors/google-reviews-scraper-api/), which runs the paginated Maps reviews feed on a residential exit and returns rows.

**Try it on your own targets.** Every QuanticData account gets $2 of free API usage per month.

[Start free — $2/month included](https://quanticdata.io/signup/?utm_source=blog&amp;utm_medium=website&amp;utm_campaign=blog-inline&amp;utm_content=scrape-google-reviews)[Explore SERP API](https://quanticdata.io/serp-api/)

## What we measured on 7 October 2026

We picked eight well-known US places across six categories, asked for the 100 newest reviews of each in English with `sort_by: newest`, and addressed every place by name and city only, with no ids prepared in advance.

| Place | Reviews | Avg stars | With text | Owner replies | Days covered |
| --- | --- | --- | --- | --- | --- |
| Katz's Delicatessen, New York | 100 | 4.37 | 62 | 0 | 6.5 |
| Griffith Observatory, Los Angeles | 100 | 4.74 | 43 | 0 | 6.9 |
| Apple Fifth Avenue, New York | 100 | 3.74 | 65 | 0 | 33.4 |
| Art Institute of Chicago | 100 | 4.80 | 46 | 0 | 37.4 |
| Pike Place Chowder, Seattle | 100 | 4.53 | 70 | 90 | 54.1 |
| Shake Shack Madison Square Park, New York | 100 | 4.29 | 61 | 16 | 127.1 |
| Franklin Barbecue, Austin | 100 | 4.66 | 76 | 0 | 135.3 |
| Hotel Emma, San Antonio | 100 | 4.65 | 66 | 0 | 283.0 |

All 800 rows carried a rating, an ISO 8601 date, the author name and profile link, a direct link to the review and Google's review id, and the 800 ids were all distinct, so there were no duplicates to clean. "Days covered" is the gap between the oldest and newest of the 100 reviews: it is the single most useful number for planning a monitoring job, and we come back to it below.

## Scrape Google reviews with Python

The Python version needs no browser, no selectors and no proxy setup. Send a name and a city (or a `data_id` if you already have one), and poll if the run goes to the background, which is what a 100-review run does.

```
import os, time, requests

BASE = "https://api.quanticdata.io/v1/scraper/collectors"
H = {"Authorization": "Bearer " + os.environ["QD_API_KEY"]}

def google_reviews(query, location, n=100):
    r = requests.post(BASE + "/place_reviews/run", headers=H, json={
        "query": query, "location": location, "country": "us",
        "lang": "en", "sort_by": "newest", "max_results": n})
    run = r.json()["payload"]
    while run.get("status") not in ("done", "failed"):
        time.sleep(5)
        run = requests.get(BASE + "/runs/" + run["run_id"], headers=H).json()["payload"]
    return run["results"]

rows = google_reviews("Franklin Barbecue", "Austin, TX")
for rev in rows[:5]:
    print(rev["rating"], rev["iso_date"][:10], (rev["text"] or "")[:80])
```

For a list of places, run the [Google Maps scraper API](https://quanticdata.io/collectors/google-maps-scraper-api/) once for a keyword and a city, keep the `data_id` of every result, and pass those ids instead of names: the lookup step disappears and the id never changes when a business renames itself. If you prefer raw search verticals to collectors, the [SERP API](https://quanticdata.io/serp-api/) exposes the same reviews feed as `search_type: reviews`, one page per call with a `next_page_token`.

## What a Google review row contains

Two findings from the 800 rows change how you design the table that receives them.

- **39% of reviews have no text.** 489 of 800 reviews carry a written comment; the other 311 are star-only. Text share ranged from 43% at Griffith Observatory to 76% at Franklin Barbecue. If you run sentiment analysis, filter on `text_length > 0` first and report the star-only share separately, or a busy attraction will look strangely quiet.

- **Owner replies are a per-business habit.** 106 of 800 reviews had an owner reply, and 90 of those were at Pike Place Chowder, where the owner answered 90 of the last 100. Six of the eight places did not reply at all in the window. The `has_owner_response` flag plus `owner_response_date` gives you response rate and response time per competitor with no extra work.

The star mix is skewed, as on every review site: 602 five-star, 95 four-star, 35 three-star, 15 two-star and 53 one-star. One-star reviews cluster, though: 29 of the 53 came from one place, Apple Fifth Avenue, whose 100 newest reviews averaged 3.74 against 4.80 at the Art Institute of Chicago. If you want the complaints rather than the average, use `sort_by: lowest_rating` and pull them directly. We did that kind of analysis on 730 reviews in [what one-star dentist reviews say](https://quanticdata.io/blog/jev-google-reviews-analysis/).

## How often to scrape: review velocity

The 100 newest reviews covered 6.5 days at Katz's Delicatessen and 283 days at Hotel Emma. That is roughly 15 new reviews a day against one every three days, and it decides your schedule:

- **Busy places** (100 reviews in under two weeks: Katz's, Griffith Observatory): pull the 20 newest every day. You will see every review and pay for about 20 rows a day.

- **Medium places** (one to four months: Apple Fifth Avenue, Art Institute, Pike Place Chowder, Shake Shack, Franklin Barbecue): a weekly pull of the 50 newest is enough.

- **Slow places** (most hotels, clinics, B2B services): monthly, 20 newest.

Deduplicate on `review_id`, keep the first time you saw each id, and you have a clean time series. Because you only pay for delivered reviews, asking for 50 when only 12 are new still bills the rows that come back, so size `max_results` to the velocity rather than to the maximum.

## What it costs to scrape Google reviews

The collector bills $0.0005 per delivered review and nothing for a run that delivers none. Our 800 reviews cost $0.40 at list price. Some reference points:

| Job | Reviews | Cost |
| --- | --- | --- |
| This test: 8 places x 100 newest | 800 | $0.40 |
| 1,000 reviews | 1,000 | $0.50 |
| Free monthly allowance ($2) | 4,000 | $0 |
| 50 competitors x 100 newest, weekly (4 weeks) | 20,000 | $10 |

Every account gets $2 of free API usage per month, which covers 4,000 reviews: enough to backfill 40 places with their 100 newest reviews before you spend anything. A browser script is free in licence terms, but its real cost is the hours spent on consent screens, renamed CSS classes and IP limits every time Google changes the Maps page.

## Scrape Google reviews from an AI agent

The same collector is a tool in our [MCP server](https://quanticdata.io/mcp-server/), so Claude, Cursor or any MCP client can do the whole job from a sentence such as "get the 50 newest reviews of the three busiest barbecue places in Austin and tell me what the one-star ones complain about". The agent calls `run_collector` with `slug: google_maps_places`, then `place_reviews` for each `data_id`, and reads the rows directly: no code and no CSV round trip.

## Is scraping Google reviews legal?

Reviews are public, but two rules still apply. Google's terms of service restrict automated access, so read them for your use case; and author names and profile links are personal data under the GDPR and similar laws, so collect them only if you need them and prefer aggregates (counts, averages, topics) in anything you publish. Never use scraped reviews to post, rate or report on Google. Our longer answer for Maps data, with the case law, is in [is scraping Google Maps legal](https://quanticdata.io/blog/is-scraping-google-maps-legal/).

## The settings to use

Collector `place_reviews`, addressed by `data_id` from `google_maps_places` (or by name and city), `country` set to the market you track, `sort_by: newest` for monitoring or `lowest_rating` for complaint research, `max_results` sized to the place's velocity. Price: $0.0005 per delivered review, with $2 of free API usage per month. If you would rather receive a finished review dataset for a category and a region, the [seven-day review monitoring pilot](https://quanticdata.io/pilot/) starts with a free sample.

### Sources & further reading

- [REST Resource: places (Place reviews field, max 5), Google Maps Platform](https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/places)

- [Work with review data, Google Business Profile APIs](https://developers.google.com/my-business/content/review-data)

- [Scrape Google Reviews and Ratings using Python, GeeksforGeeks](https://www.geeksforgeeks.org/web-scraping/scrape-google-reviews-and-ratings-using-python/)

- [How to scrape Google reviews, r/webscraping](https://www.reddit.com/r/webscraping/comments/1nn4o6w/how_to_scrape_google_reviews/)

## FAQ

Quick answers on scrape google reviews.

[Something else? Ask us](mailto:hello@quanticdata.io)

### How do I scrape Google reviews for free?

Use an API with a free allowance. QuanticData gives every account $2 of free API usage per month, which at $0.0005 per review covers 4,000 Google reviews, for example the 100 newest reviews of 40 places.

### How do I scrape Google reviews with Python?

Send one POST request to the place_reviews collector with a business name and city (or a data_id), then poll the run until it is done and read the rows. The full script is in this post; it needs only the requests library.

### Why does the Google Places API return only 5 reviews?

Google caps Place Details at a maximum of 5 reviews per place, sorted by relevance. To read all reviews of a location you manage, use the Business Profile API; for other places you need a scraper.

### How many Google reviews can I scrape per place?

Up to 100 per run with the place_reviews collector, and you can run it again with a different sort order. In our 7 October 2026 test, all 8 places returned their full 100 newest reviews.

### What data does a scraped Google review include?

Star rating, relative and ISO date, review text, author name and profile link, review id, direct link, and the owner reply with its date when there is one. In our test 61% of reviews had text and 106 of 800 had an owner reply.

### Is scraping Google reviews legal?

Reviews are public, but Google's terms restrict automated access and reviewer names are personal data under laws such as the GDPR. Collect only the fields you need, publish aggregates, and never use the data to post or manipulate reviews.

## Pull the newest reviews of your first 40 places free

800 of 800 Google reviews delivered on 7 October 2026, every row with rating, ISO date and review id. You pay $0.0005 per delivered review, and every account gets $2 of free API usage per month.

[Start free — $2/month included](https://quanticdata.io/signup/?utm_source=blog&amp;utm_medium=website&amp;utm_campaign=blog-end&amp;utm_content=scrape-google-reviews)[Explore SERP API](https://quanticdata.io/serp-api/)

## Related reading

[SERP & search How to Create a SERP API Key A practical walkthrough for creating a SERP API key: signup and verification, key generation, safe storage, a first authenticated request, and quota math. Read more](https://quanticdata.io/blog/how-to-create-a-serp-api-key/) [SERP & search How to Get a SERP API in Minutes A practical guide to getting a SERP API — sign-up, key generation, first request, free tier limits and the cost math that decides which provider fits. Read more](https://quanticdata.io/blog/how-to-get-serp-api/) [SERP & search How a SERP API Works, End to End The full path from query to JSON: localization parameters, the identity layer, HTTP vs rendered fetches, parsing rich blocks, verticals and pricing. Read more](https://quanticdata.io/blog/how-a-serp-api-works/)

---

Source: https://quanticdata.io/blog/scrape-google-reviews/ · Site index for AI: https://quanticdata.io/llms.txt
