Google Maps Reviews Scraper avatar

Google Maps Reviews Scraper

Pricing

from $0.30 / 1,000 review scrapeds

Go to Apify Store
Google Maps Reviews Scraper

Google Maps Reviews Scraper

Scrape all reviews from any Google Maps place by URL, Place ID, CID, or business name. Get rating, text, reviewer, date, owner response, and sentiment hint.

Pricing

from $0.30 / 1,000 review scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Share

Google Maps Reviews Scraper — Ratings, Text, Owner Replies

What it does: Extract every review from any Google Maps place in structured JSON — rating, text, reviewer, date, owner reply, and a rating-derived sentiment bucket. Accepts Google Maps URLs, Place IDs, CIDs, or a business name plus location.

When to use it: reputation monitoring, competitive review research, sentiment analysis, AI-agent workflows that need review data for a specific place. Do NOT use it for finding business lead contact info — that lives in khadinakbar/google-maps-leads-scraper.


Output at a glance

FieldTypeExample
reviewIdstringChZDSUhNMG9nS0VJQ0FnSURwLVlPajJBRRAB
placeNamestringJoe's Pizza
placeUrlstringhttps://www.google.com/maps/place/...
placeAddressstring7 Carmine St, New York, NY 10014
placeRatingnumber4.6
placeReviewCountinteger12,847
ratinginteger (1–5)5
textstringBest slice in the Village — the classic is unreal.
publishedAtTextstringa month ago
publishedAtISO-86012026-03-25T13:24:00.000Z
ownerResponsestring|nullThanks for visiting!
sentimentHintstringpositive / neutral / negative
photosstring[]image URLs attached to the review
likesCountinteger3
reviewerNamestring|nullnull unless includePersonalData: true
reviewUrlstringpermalink to this review
scrapedAtISO-8601timestamp of extraction

sentimentHint is rating-derived (4–5 positive, 3 neutral, 1–2 negative) — not ML-based. Feed the text into your own NLP pipeline for true sentiment.


Pricing — $0.30 per 1,000 reviews

EventPriceWhen charged
Actor start$0.00005One-time per GB of memory at run start
Review scraped$0.0003Per individual review pushed to the dataset

Typical costs:

  • 100 reviews: ~$0.03
  • 500 reviews: ~$0.15
  • 5,000 reviews: ~$1.50

No tiered games. Same price whether you're on Apify FREE or DIAMOND. Cheaper than most competitors (compass FREE tier charges $0.60/1K, api-ninja $0.30/1K, memo23 effectively $0.32/1K including its $0.07 start fee).


Inputs

You must provide one of:

  • startUrls — array of Google Maps URLs (place URLs, search URLs, CID URLs).
  • placeIds — array of Place IDs (e.g., ChIJ...).
  • searchQuery + optional location — business name and city/region; the scraper clicks through to the first matching place.

Optional parameters:

ParamDefaultNotes
maxReviews100Cap per place. Google typically exposes up to ~4,000 reviews even for very popular places.
reviewsSortnewestnewest | mostRelevant | highestRanking | lowestRanking
languageenUI language for Google Maps; affects relative-date labels.
includePersonalDatafalseGDPR toggle — when false, reviewerName, reviewerUrl, and reviewerPhotoUrl are nulled. Enable only if you have a legitimate basis under your applicable privacy law.
proxyConfigurationApify ResidentialDo not override unless you know your proxy handles Google.

Usage

Via the Apify UI

Paste a Google Maps URL into startUrls, set maxReviews, and hit Start.

Via the Apify API (Node.js)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('khadinakbar/google-maps-reviews-scraper').call({
startUrls: [
{ url: 'https://www.google.com/maps/place/Joe%27s+Pizza/@40.7299934,-74.0025633,17z' },
],
maxReviews: 200,
reviewsSort: 'newest',
language: 'en',
includePersonalData: false,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Via the Apify API (Python)

from apify_client import ApifyClient
client = ApifyClient(token="APIFY_TOKEN")
run = client.actor("khadinakbar/google-maps-reviews-scraper").call(run_input={
"startUrls": [{"url": "https://www.google.com/maps/place/Joe%27s+Pizza/..."}],
"maxReviews": 200,
"reviewsSort": "newest",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["rating"], item["text"])

Via MCP (AI agents)

The actor is exposed on Apify MCP as apify--google-maps-reviews-scraper. Claude, GPT, and other agents can call it directly with a Google Maps URL to pull reviews for reasoning.

https://mcp.apify.com?tools=khadinakbar/google-maps-reviews-scraper

Use cases

  • Reputation monitoring — watch a single location's newest reviews.
  • Competitive analysis — pull ratings and text from a competitor's flagship store.
  • Sentiment mining — feed text into an NLP pipeline; rating gives a clean supervised label.
  • Owner-reply auditing — agencies verifying their clients are replying to negatives.
  • AI agent research — chain with khadinakbar/google-maps-leads-scraper to pull business + reviews in one flow.

Frequently asked

How many reviews can I get per place? Google typically caps accessible reviews at ~3,500–4,000 even for places with tens of thousands. Use maxReviews to set your own cap.

Is this compliant? The scraper reads publicly visible reviews. includePersonalData defaults to false so reviewer names and profile URLs are stripped by default. If you enable it, you are responsible for your legal basis (GDPR Article 6 / equivalent in your jurisdiction).

Why don't dates match exactly? Google shows relative dates ("a month ago"). publishedAt is an ISO approximation derived from that label — not a precise timestamp. The source of truth is publishedAtText.

My run returned 0 reviews — what happened? Most common causes: (1) the URL was a search URL that returned no matches, (2) Google temporarily served a consent/captcha page that we couldn't dismiss, (3) the place has no reviews. Re-run with a direct place URL if in doubt.

Can I schedule this? Yes — use Apify Schedules to run daily or weekly and diff the dataset against the previous run.


The Actor extracts publicly available reviews from Google Maps. You are responsible for complying with Google's Terms of Service and all applicable data-protection laws (GDPR, CCPA, etc.) when using the extracted data. The author is not affiliated with Google.