Google Maps Reviews Scraper avatar

Google Maps Reviews Scraper

Pricing

Pay per event

Go to Apify Store
Google Maps Reviews Scraper

Google Maps Reviews Scraper

Extract Google Maps reviews for any place. Scrape review text, star ratings, author details, photos, owner replies, and timestamps. Sort by newest, most relevant, highest or lowest rating. Export to JSON, CSV, Excel, or connect via API.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

4

Monthly active users

8 days ago

Last modified

Categories

Share

What does Google Maps Reviews Scraper do?

Google Maps Reviews Scraper extracts reviews from any Google Maps place page. Provide one or more place URLs and get back structured data including review text, star ratings, author details, review images, owner replies, and timestamps.

With built-in AI sentiment analysis, every review can be automatically classified as positive, negative, neutral, or mixed — with a sentiment score and topic labels like "food quality", "service", or "parking". No setup, no extra API keys, just toggle it on.

The scraper uses a lightweight HTTP-only approach (no browser) to extract data directly from Google's internal API. This makes it fast, cheap, and reliable — typically scraping 1,000 reviews in under 60 seconds.

Use cases

  • Reputation monitoring — Track what customers say about your business locations. With AI analysis, instantly see sentiment trends and recurring complaint topics without reading every review
  • Competitor analysis — Compare review sentiment, ratings, and top praised/complained topics across competitor locations
  • Market research — Analyze customer feedback patterns for restaurants, hotels, attractions, or any business category. AI topics reveal what matters most to customers
  • Lead generation — Find businesses with low sentiment scores or recurring complaint topics as potential clients for reputation management services
  • Academic research — Collect review datasets with pre-labeled sentiment and topics for NLP research, tourism studies, or consumer behavior analysis
  • Product development — Identify the most common complaints and praised features to prioritize improvements

Why use Google Maps Reviews Scraper?

  • Built-in AI sentiment analysis — Every review gets a sentiment label (positive/negative/neutral/mixed), a 0-1 score, and topic tags. No extra cost, no API keys needed — just enable it
  • Place-level AI summary — Get an executive summary with sentiment breakdown, top praised topics, and top complaint topics per location
  • Fast — Pure HTTP scraper with no browser overhead. Scrapes 1,000 reviews in ~60 seconds
  • Cheap — Starting at $0.25 per 1,000 reviews (Free tier). Up to 60% cheaper than alternatives
  • 35+ data fields — Review text, translations, ratings, images, author profiles, Local Guide status, owner replies, timestamps, place metadata, plus AI sentiment and topics
  • Sort options — Newest, most relevant, highest rating, or lowest rating
  • Multi-language support — Extract reviews in any language Google Maps supports
  • Batch processing — Scrape multiple places in a single run
  • No browser needed — Runs on minimal 256 MB memory, keeping platform costs low

What data can you extract?

Each review includes 35+ fields organized into four groups:

Review data — reviewId, reviewUrl, text, textTranslated, publishedAt, lastEditedAt, stars, likesCount, reviewOrigin, language, originalLanguage, reviewImageUrls, responseFromOwnerText, responseFromOwnerDate

Reviewer data — reviewerName, reviewerUrl, reviewerId, reviewerPhotoUrl, reviewerNumberOfReviews, isLocalGuide

Place data — title, url, placeId, cid, fid, totalScore, reviewsCount, address, categoryName, categories, location, imageUrl, website, phoneNumber, scrapedAt

AI analysis (when enabled) — sentiment, sentimentScore, topics

When AI analysis is enabled, you also get a place-level summary with sentimentBreakdown, averageSentimentScore, topPraisedTopics, topComplainedTopics, and executiveSummary.

How much does it cost to scrape Google Maps reviews?

This Actor uses pay-per-event pricing — you pay only for reviews you actually get. No monthly subscription required. All platform costs (compute, proxy, storage) are included. AI sentiment analysis is included at no extra cost.

Free planPersonal ($49/mo)Team ($499/mo)
Per review$0.00025$0.00017$0.00013
1,000 reviews$0.25$0.17$0.13
10,000 reviews$2.50$1.70$1.30

Plus a one-time $0.005 start fee per run.

Real-world cost examples:

PlaceReviewsDurationCost (Free tier)
Yellowstone National Park (20 reviews)20~11s~$0.01
Yellowstone National Park (50 reviews)50~15s~$0.02
Popular restaurant (100 reviews)100~20s~$0.03
Tourist attraction (1,000 reviews)1,000~60s~$0.26

Comparison with alternatives:

ActorPrice per 1,000 reviewsAI sentiment
This Actor (Free tier)$0.25Included
compass/google-maps-reviews-scraper$0.60No
blueorion/fast-google-maps-reviews-scraper$0.29No

How to scrape Google Maps reviews

  1. Go to Google Maps and find the place you want to scrape
  2. Copy the full URL from your browser's address bar
  3. Open the Actor in Apify Console and paste the URL into Place URLs
  4. Set Max reviews per place (default: 100, set to 0 for unlimited)
  5. Choose a Sort order (newest, most relevant, highest rating, or lowest rating)
  6. Toggle Enable AI sentiment analysis to get sentiment labels, scores, and topics for each review
  7. Click Start and wait for results
  8. Export the data as JSON, CSV, Excel, or connect via API

Example input:

{
"placeUrls": [
"https://www.google.com/maps/place/Statue+of+Liberty+National+Monument/"
],
"maxReviewsPerPlace": 100,
"sortBy": "newest",
"language": "en",
"enableAIAnalysis": true
}

Input parameters

ParameterTypeDefaultDescription
placeUrlsstring[](required)Google Maps place URLs to scrape reviews from
maxReviewsPerPlaceinteger100Maximum reviews per place. Set to 0 for unlimited
sortByenumnewestSort order: newest, mostRelevant, highestRating, lowestRating
languagestringenLanguage code for reviews (e.g., en, de, fr, ja)
reviewsOriginstringUSCountry code for geo-targeting (e.g., US, GB, DE)
enableAIAnalysisbooleanfalseAnalyze each review with AI for sentiment, score, and topic labels

Output example

Review with AI analysis enabled:

{
"reviewId": "Ci9DQUlRQUNvZENodHljRjlvT2t...",
"reviewUrl": "https://www.google.com/maps/reviews/data=!4m8...",
"text": "Central Park is a beautiful escape in the middle of the city—peaceful, green, and refreshing, with a perfect blend of nature and urban life.",
"textTranslated": null,
"publishedAt": "2026-02-07T17:06:38.412Z",
"lastEditedAt": "2026-02-07T17:06:38.412Z",
"stars": 5,
"likesCount": 0,
"reviewOrigin": "Google",
"language": "en",
"originalLanguage": "en",
"reviewImageUrls": null,
"responseFromOwnerText": null,
"responseFromOwnerDate": null,
"reviewerName": "Venkatesh Gorantla",
"reviewerUrl": "https://www.google.com/maps/contrib/102236205422752036810?hl=en",
"reviewerId": "102236205422752036810",
"reviewerPhotoUrl": "https://lh3.googleusercontent.com/a/ACg8ocL...",
"reviewerNumberOfReviews": 0,
"isLocalGuide": true,
"title": "Central Park",
"url": "https://www.google.com/maps/place/Central+Park/",
"placeId": "ChIJ4zGFAZpYwokRGUGph3Mf37k",
"cid": "13393458397880860953",
"fid": "0x89c2589a018531e3:0xb9df1f7387a94119",
"totalScore": 4.8,
"reviewsCount": null,
"address": "Central Park, New York, NY",
"categoryName": "Park",
"categories": ["Park", "Garden", "Tourist attraction"],
"location": { "lat": 40.7825547, "lng": -73.9655834 },
"imageUrl": "https://lh3.googleusercontent.com/gps-cs-s/...",
"website": "https://www.centralparknyc.org/",
"phoneNumber": "(212) 310-6600",
"scrapedAt": "2026-02-07T17:09:08.932Z",
"sentiment": "positive",
"sentimentScore": 0.96,
"topics": ["scenery/nature", "atmosphere", "urban escape"]
}

Place-level AI summary (when AI analysis is enabled):

{
"_type": "placeSummary",
"title": "Central Park",
"url": "https://www.google.com/maps/place/Central+Park/",
"sentimentBreakdown": {
"positive": 100,
"negative": 0,
"neutral": 0,
"mixed": 0
},
"averageSentimentScore": 0.91,
"topPraisedTopics": ["tourism", "nature", "atmosphere", "urban escape", "scenic views"],
"topComplainedTopics": [],
"executiveSummary": "Overall positive reception (100% positive, 0% negative) based on 4 reviews. Customers praise: tourism, nature, atmosphere, urban escape, scenic views."
}

Tips for best results

  • Enable AI analysis — Get sentiment labels, scores, and topics for every review. Great for filtering positive vs negative feedback in spreadsheets or dashboards.
  • Use full Google Maps URLs — Copy the URL directly from your browser. The scraper extracts the place identifier from the URL path.
  • Start small — Set maxReviewsPerPlace to 10-50 for your first run to verify the output matches your needs before scaling up.
  • Sort by newest for monitoring — If you're tracking reviews over time, use sortBy: "newest" and run periodically with a small limit to catch new reviews.
  • Batch multiple places — Add multiple URLs to placeUrls to scrape reviews from several locations in a single run.
  • Language affects translations — Setting language to a different language may trigger Google's auto-translation for reviews originally written in other languages.
  • Set to 0 for all reviews — Use maxReviewsPerPlace: 0 to scrape every available review for a place (note: popular places may have 50,000+ reviews).
  • Filter by sentiment in exports — After scraping with AI enabled, export to CSV/Excel and filter by the sentiment column to quickly isolate negative reviews that need attention.

Integrations

Connect Google Maps Reviews Scraper with your existing tools and workflows:

  • Make (formerly Integromat) — Automate review monitoring with scheduled runs
  • Zapier — Send new reviews to Slack, Google Sheets, or email
  • Google Sheets — Export reviews directly to a spreadsheet
  • Slack — Get notified when new reviews are scraped
  • GitHub — Trigger scraping from CI/CD pipelines
  • Webhooks — Send results to any HTTP endpoint

Using the Apify API

You can start, monitor, and retrieve results programmatically using the Apify API.

Node.js:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('automation-lab/google-maps-reviews-scraper').call({
placeUrls: ['https://www.google.com/maps/place/Statue+of+Liberty+National+Monument/'],
maxReviewsPerPlace: 100,
sortBy: 'newest',
language: 'en',
enableAIAnalysis: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python:

from apify_client import ApifyClient
client = ApifyClient('YOUR_API_TOKEN')
run = client.actor('automation-lab/google-maps-reviews-scraper').call(run_input={
'placeUrls': ['https://www.google.com/maps/place/Statue+of+Liberty+National+Monument/'],
'maxReviewsPerPlace': 100,
'sortBy': 'newest',
'language': 'en',
'enableAIAnalysis': True,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

FAQ

How many reviews can I scrape per place? Set maxReviewsPerPlace to 0 for unlimited. The scraper paginates through all available reviews automatically. Popular tourist attractions can have 50,000+ reviews.

How fast is the scraper? The scraper processes approximately 1,000 reviews per minute per place. Speed depends on the number of review pages and network conditions.

Does it work with any Google Maps place? Yes — restaurants, hotels, attractions, stores, parks, hospitals, and any other place that has a Google Maps listing with reviews.

Can I scrape reviews in languages other than English? Yes. Set the language parameter to any language code Google Maps supports (e.g., de for German, fr for French, ja for Japanese). Reviews written in other languages may include automatic translations.

What sort options are available? Four options: newest (most recent first), mostRelevant (Google's default ranking), highestRating (5-star first), lowestRating (1-star first).

What happens if a place URL is invalid? The scraper logs a warning and continues to the next URL. Invalid URLs don't incur review charges — you only pay for successfully extracted reviews.

How does AI sentiment analysis work? When enabled, each review is analyzed by an AI model that classifies its sentiment (positive/negative/neutral/mixed), assigns a score from 0.0 to 1.0, and extracts 1-3 topic labels describing what the review is about. You also get a place-level summary with overall sentiment breakdown and the most praised and complained-about topics.

Does AI analysis cost extra? No. AI sentiment analysis is included at no extra cost. You only pay the standard per-review price.

Can I use this without AI analysis? Yes. AI analysis is off by default. The scraper works exactly the same as before when enableAIAnalysis is not enabled — you get all 30+ review fields without any AI processing.