Google Maps Reviews Scraper - Ratings, Owner Replies & Photos avatar

Google Maps Reviews Scraper - Ratings, Owner Replies & Photos

Pricing

$1.00 / 1,000 review scrapeds

Go to Apify Store
Google Maps Reviews Scraper - Ratings, Owner Replies & Photos

Google Maps Reviews Scraper - Ratings, Owner Replies & Photos

Scrape Google Maps reviews for the places you choose. Per place: star rating, total review count and a sample of recent reviews with stars, text, reviewer profile, date, owner reply and photo links. For reputation monitoring, competitor research and local SEO. $1 per 1,000 reviews.

Pricing

$1.00 / 1,000 review scrapeds

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

13

Total users

1

Monthly active users

7 days ago

Last modified

Share

Google Maps Reviews Scraper: Google Reviews with Ratings, Owner Replies and Photos

This Google reviews scraper exports public Google Maps reviews for the places you specify, so you can monitor your own reputation, compare competitors or feed local SEO reports. Each dataset row represents one place and contains its star rating, total review count and a nested list of reviews with reviewer details, star ratings, review dates, photo links and owner replies.

Paste one or more Google Maps place links, run the Actor and download the result as JSON, CSV or Excel, or read it through the Apify API. There is no start fee: you pay $1 per 1,000 delivered reviews.

What the Google reviews scraper returns

The Actor reads the review sample available on a Google Maps place panel. This is a sample, not a promise to export every review for a business. Google currently makes up to eight reviews available through this place response, and the available sample can vary. A place with thousands of reviews may therefore return only a few review records. The total review count and the number returned are separate fields so you can distinguish them.

You receive one row for every processed place URL. Repeating a URL keeps separate rows in input order. Reviews remain nested under their place, which preserves the existing dataset format. JSON is the most convenient export when you want to retain these lists. You can also access the dataset through the Apify API and transform the reviews into individual records in your own application.

Per place you get:

  • place name, place identifier, star rating and the total number of reviews on Google;
  • the number of reviews returned in this run;
  • per review: star rating, review text, reviewer name, profile link, avatar and review count, relative time and exact publication timestamp, owner reply with its timestamp, and links to review photos.

How to scrape Google reviews

  1. Open Google Maps, search for the business and click it so its place panel opens.
  2. Copy the URL from the address bar (or use the share button and copy the short link).
  3. Paste one or more of those links into place_urls and start the run.
  4. Download the dataset in the format you need, or schedule the Actor to collect the same places every day or week.

Input

place_urls is the required list of Google Maps place URLs. Open a particular place and copy its address-bar URL. A supported full URL contains its internal place identifier in the data portion. Shared place links are also accepted. A Maps search URL or a URL containing only a place name may lack the identifier needed to retrieve reviews; it produces a descriptive error row without a review charge.

max_reviews_per_place defaults to 50 for compatibility with the existing Actor input. The effective value is limited to 1–50. This parameter caps the available sample; increasing it does not turn the sample into a full review-history export. Set it to three, for example, to receive at most three reviews per place. The actual number may be lower when fewer reviews are available.

use_cookies retains its existing default of true. It remains accepted when set to false; the Actor may still use a healthy Google session to improve the available result. Existing integrations that supply use_proxy remain compatible. The optional hl and gl parameters select the Google Maps language and country; their defaults are en and us. The language can affect place names, relative-time labels and which reviews appear in the sample.

fieldtypedefaultmeaning
place_urlsarray of strings(required)Google Maps place URLs or shared place links
max_reviews_per_placeinteger50cap on reviews per place, clamped to 1–50
use_cookiesbooleantruelegacy option, still accepted
use_proxybooleanfalselegacy option, still accepted
hlstringenGoogle Maps language
glstringusGoogle Maps country
cursorstring(empty)continue a long place list from next_cursor

Example input:

{
"place_urls": [
"https://www.google.com/maps/place/The+Pantry/data=!4m7!3m6!1s0x47c609e91734d71b:0xb13072d0007a87d1!8m2!3d52.3634845!4d4.8849427!16s%2Fg%2F1tfxfwsp"
],
"max_reviews_per_place": 50,
"use_cookies": true
}

The checked-in examples come from real runs of this Actor, including The Pantry, the Eiffel Tower and the Statue of Liberty. Their original inputs and recorded outputs are retained as compatibility evidence. Review samples and totals can change between runs, so an example is evidence of the output shape rather than a fixed future response.

Output fields

Each successful place row retains place_url, place_name, place_fid, place_rating, total_reviews_on_google, reviews_count_returned and reviews. The original URL is preserved, including when the input was a shared link. Ratings and counts can be null if Google does not provide them; missing values are not estimated.

Every review keeps review_id, reviewer_name, reviewer_profile_url, reviewer_profile_id, reviewer_avatar_url, reviewer_review_count, rating, relative_time, text, owner_response and photos. Text or owner replies can be null. Photos are a list of available public image URLs, not downloaded image files.

The legacy review_id field remains unchanged: it is a place identifier repeated across the sample. Use the added review_id_google field when you need the actual Google review identifier. published_at and owner_response_published_at provide absolute timestamps when present in the response. Place rows also include fetched_at and standard aliases such as name, url, rating and reviews_count.

An unavailable or unparseable place can produce a row with place_url and error, plus error_detail where available. Other places continue processing. The run summary records places requested, places delivered, failed places, reviews delivered and upstream error codes. Larger input lists are collected in batches automatically without changing the dataset row format.

Example output

A real row from the run for The Pantry in Amsterdam (run of 3 October 2026). The place returned eight reviews; one is shown here.

{
"place_url": "https://www.google.com/maps/place/The+Pantry/data=!4m7!3m6!1s0x47c609e91734d71b:0xb13072d0007a87d1!8m2!3d52.3634845!4d4.8849427!16s%2Fg%2F1tfxfwsp",
"place_name": "The Pantry",
"place_fid": "0x47c609e91734d71b:0xb13072d0007a87d1",
"place_rating": 4.7,
"total_reviews_on_google": 9889,
"reviews_count_returned": 8,
"reviews": [
{
"review_id": "0x0:0xb13072d0007a87d1",
"reviewer_name": "Charlie",
"reviewer_profile_url": "https://www.google.com/maps/contrib/111021807696244043445/reviews?hl=en-US",
"reviewer_profile_id": "111021807696244043445",
"reviewer_avatar_url": "https://lh3.googleusercontent.com/a-/ALV-UjVlEEYuZYT13u5d2Pykju3h0jK_ixnOM6blke4p-B_tyXg3dLF7ow=s120-c-rp-mo-ba12-br100",
"reviewer_review_count": 472,
"rating": 4,
"relative_time": "a month ago",
"text": "The Pantry is a good place to try classic Dutch dishes, with prix fixe meals offering different combinations so you can sample a variety of traditional options. The portions are satisfying, and the menu makes it easy to build a meal around your preferences.\n\nI’d recommend going during off-peak hours if possible, as it gets very busy in the evenings. The atmosphere is lively, but expect a crowded restaurant and potentially longer waits at night.",
"owner_response": "Dear Charlie, thank you very much for your visit and beautiful comment. It was our pleasure to give you a good Dutch food and hospitality experience. Hopefully until another time. Greetings from the Pantry family ",
"photos": []
}
],
"source": "google-maps-reviews-scraper",
"platform": "google_maps",
"fetched_at": "2026-10-03T11:03:41.064Z",
"name": "The Pantry",
"url": "https://www.google.com/maps/place/The+Pantry/data=!4m7!3m6!1s0x47c609e91734d71b:0xb13072d0007a87d1!8m2!3d52.3634845!4d4.8849427!16s%2Fg%2F1tfxfwsp",
"rating": 4.7,
"reviews_count": 9889
}

Use cases

  • Reputation monitoring. Schedule the Actor for your own locations and get alerted to new low ratings, or check whether every review received an owner reply.
  • Competitor research. Compare the rating, review volume and recent customer feedback of competing restaurants, shops, hotels or clinics in the same area.
  • Local SEO and agency reporting. Track review counts and average rating per client location over time and add recent review snippets to monthly reports.
  • Sentiment and text analysis. Feed review texts and star ratings into your own sentiment model, spreadsheet or BI tool.
  • Multi-location brands. Collect the current review sample for every branch in one run, with one row per location.

Google reviews scraper compared with the alternatives

  • The official Google reviews API. Google's own place details endpoint returns at most five reviews per place, needs a Google Cloud project with billing and an API key, and has its own usage terms. This Actor needs only place links and returns up to eight reviews plus reviewer profiles, photo links and owner replies.
  • Copying reviews by hand. Fine for one place, slow for dozens. The Actor returns the same public information in a consistent structure that you can export to CSV or Excel.
  • Full review-history scrapers. Some tools scroll through every review of a place. Use those when you need the complete history of a single business. This Actor is built for fast, low-cost snapshots of many places: the rating, the total count and the recent sample, at $1 per 1,000 reviews and no start fee.

Pricing

The existing price is $0.001 per delivered review, equivalent to $1 per 1,000 reviews. The billable event is a review inside a place row, not the place row itself. A place returning eight reviews accounts for eight review events; a place returning three accounts for three. Rows containing no reviews, including error rows, do not incur review events. There is no review start fee.

Example: ten places with eight reviews each deliver 80 reviews and cost $0.08 in review events.

Users without a paid Apify plan receive at most ten place rows per run. As in the existing Actor, review-event charging is capped at ten for those runs. Paid users retain the requested place list. Apify platform usage follows the account's own plan and is separate from the Actor's review-event price.

FAQ

Does this export all Google Maps reviews?

It exports the sample returned by the place panel, currently up to eight reviews per place. It does not promise complete history or review pagination. total_reviews_on_google reports the public total separately from reviews_count_returned.

Why are two runs different?

Google can change the displayed sample, review totals and language-specific selection. Compare actual review identifiers and timestamps when matching records across runs, and retain fetched_at to identify when each place was collected.

Are owner replies and photos always present?

Only when the source provides them. An owner reply may be null, and the photo list may be empty. The Actor keeps those field types consistent so downstream processing can handle missing content explicitly.

Are failed places charged?

No review events are charged for a place that delivers no reviews. Error rows explain unsupported links or an unavailable response, while the summary reports what was delivered. A batch can still contain successful results from other places.

Can I export Google reviews to CSV or Excel?

Yes. Every Apify dataset can be downloaded as JSON, CSV, Excel, XML or HTML. Because reviews are nested under their place, JSON keeps the structure intact; in CSV and Excel each review becomes a set of numbered columns.

Do I need a Google account or an API key?

No. You only provide public Google Maps place links; you do not need your own Google account, Google Cloud project or API key. The Actor collects publicly visible review information.

Links to a single place: the full address-bar URL of an opened place, or a shared short link. Search result pages and links that only contain a place name may produce an error row, which is free.