Google Maps Reviews Scraper with AI Sentiment Analysis avatar

Google Maps Reviews Scraper with AI Sentiment Analysis

Pricing

from $1.00 / 1,000 reviews

Go to Apify Store
Google Maps Reviews Scraper with AI Sentiment Analysis

Google Maps Reviews Scraper with AI Sentiment Analysis

This actor extractc reviews, ratings and photos from any Google Maps business listing — with AI-powered sentiment analysis and business insights. Fast, structured, and ready to use

Pricing

from $1.00 / 1,000 reviews

Rating

0.0

(0)

Developer

Dennis

Dennis

Maintained by Community

Actor stats

2

Bookmarked

21

Total users

3

Monthly active users

2 days ago

Last modified

Share

Google Maps Reviews Scraper

Extract reviews, ratings and photos from any Google Maps business listing — with AI-powered sentiment analysis and business insights. Fast, structured, and ready to use


What it does

This actor calls the Google Maps API to collect reviews for one or more places. For each place it retrieves the author's name, profile link, Local Guide status, review and photo counts, star rating, date, source platform, full text (with translation if present), photos, and owner replies — all without running a browser.

You can feed it:

  • A list of place URLs or IDs — scrape specific known places in bulk
  • A search query + location — let the actor discover matching places within a radius and scrape them all

Output

The result is a JSON object with place metadata and an array of reviews. When generateAIOverview is enabled, an reviewOverview field is added at the place level:

{
"placeId": "0x3a02a586c15e1b3d:0x2e5b31b1d5397aae",
"placeName": "Some Business",
"reviewOverview": "### Overall Sentiment\nPositive\n\n### Top Strengths\n- **Food Quality**: Customers consistently praise the deliciousness and quality of the food....",
"reviews": [
{
"reviewId": "Ci9DQWLR...",
"author": "John Smith",
"authorUrl": "https://www.google.com/maps/contrib/123456789/reviews",
"isLocalGuide": true,
"authorReviewCount": 42,
"authorPhotoCount": 7,
"rating": 4,
"date": "2 months ago",
"reviewSource": "Google",
"reviewUrl": "https://www.google.com/maps/reviews/data=...",
"text": "Great place, would definitely come back again...",
"textTranslated": null,
"photos": [
{
"thumbnail": "https://lh3.googleusercontent.com/...",
"fullsize": "https://lh3.googleusercontent.com/...=s1600"
}
],
"replies": [
{
"author": "Response from the owner",
"date": "1 month ago",
"text": "Thank you for your kind words!",
"textTranslated": null
}
]
}
]
}

Review fields

FieldTypeDescription
placeIdstringUnique Google place ID
placeNamestringName of POI or business
reviewIdstringUnique Google review ID
authorstringReviewer's display name
authorUrlstring | nullLink to the reviewer's Google Maps profile
isLocalGuidebooleanWhether the reviewer is a Google Local Guide
authorReviewCountnumber | nullTotal number of reviews written by the author
authorPhotoCountnumber | nullTotal number of photos uploaded by the author
ratingnumberStar rating (1–5)
datestring | nullRelative date as shown on Google Maps
reviewSourcestring | nullSource platform (e.g. Google, Google Maps)
reviewUrlstring | nullDirect link to the review on Google Maps (Google reviews only)
textstringOriginal review text
textTranslatedstring | nullTranslated text if Google auto-translated the review, otherwise null
photosarrayReview photos with thumbnail and fullsize (up to 1600px) URLs
repliesarrayOwner replies, each with author, date, text, and textTranslated

Input

Scraping specific places

Provide a list of place URLs or IDs in placeUrls. Multiple entries are processed in parallel.

ParameterTypeDefaultDescription
placeUrlsstring[]List of Google Maps place URLs or place IDs to scrape
maxPlacesnumber0 (unlimited)Maximum number of places to process across all inputs
maxReviewsnumber100Maximum reviews to collect per place; 0 = unlimited
sortBystringnewestSort order: newest, highest, lowest, or relevant
newerThannumber0 (disabled)Only fetch reviews posted within this many days; forces sortBy to newest
languagestringenTwo-letter language code for review text (e.g. en, de, fr)
generateAIOverviewbooleanfalseGenerate an AI-written summary of all reviews per place (see AI Overview)

Supported place URL / ID formats

FormatExample
Full Google Maps URLhttps://www.google.com/maps/place/...
Short URLhttps://maps.app.goo.gl/ykgpkGMfASnkhQgXA
Hex place ID0x40d4e9413c90fc47:0xe70863b37a371fdf
Base64 place IDChIJgUbEo8cfqokR5lP9_Wh_DaM

Short maps.app.goo.gl links are resolved automatically before scraping begins. Hex and Base64 IDs are converted to canonical place URLs.

Example input — specific places

{
"placeUrls": [
"https://maps.app.goo.gl/ykgpkGMfASnkhQgXA",
"0x40d4e9413c90fc47:0xe70863b37a371fdf",
"ChIJgUbEo8cfqokR5lP9_Wh_DaM"
],
"maxReviews": 50,
"sortBy": "newest",
"language": "en"
}

Leave placeUrls empty and provide a search query with a location to let the actor find matching places automatically and scrape reviews from all of them.

ParameterTypeDefaultDescription
searchQuerystringSearch term to discover places (e.g. "restaurant", "hotel")
searchLocationstringCenter of the search area — coordinates ("58.75304, 17.01097") or a place name ("Paris, France")
searchRadiusnumber5000Radius in meters around the search center to look for places (min 100)
maxPlacesnumber0 (unlimited)Cap the number of discovered places to scrape

Example input — search-based discovery

{
"searchQuery": "coffee shop",
"searchLocation": "Paris, France",
"searchRadius": 2000,
"maxPlaces": 20,
"maxReviews": 30,
"sortBy": "newest"
}

This finds up to 20 coffee shops within 2 km of central Paris and collects the 30 newest reviews from each.


AI Overview

When generateAIOverview is set to true, the actor uses an AI model to produce a concise written summary of all collected reviews for each place. The summary is returned as an aiOverview string at the place level alongside the individual reviews.

Pricing: this feature incurs an additional charge per review with text that is processed by the AI. Reviews without text are not charged. The charge is applied on top of the standard per-review cost.

Example output:

{
"placeId": "0x3a02a586c15e1b3d:0x2e5b31b1d5397aae",
"placeName": "Some Business",
"reviewOverview": "### Overall Sentiment\nPositive\n\n### Top Strengths\n- **Food Quality**: Customers consistently praise the deliciousness and quality of the food....",
"reviews": [...]
}

Features

  • Bulk place input — supply as many URLs or IDs as needed; all are processed automatically
  • Search-based discovery — find places by name or category within any radius and scrape them all in one run
  • All place ID formats — accepts full URLs, short links, hex IDs, and Base64 IDs
  • No browser required — uses the Google Maps API directly for fast, reliable data retrieval
  • Date filteringnewerThan limits results to recent reviews only, forcing newest-first sort automatically
  • Language control — request review text in any supported Google Maps language
  • Sorting — supports all four Google Maps sort modes: newest, highest rating, lowest rating, and most relevant
  • Translation detection — captures both the auto-translated version (textTranslated) and the original (text) when present
  • Owner replies — extracts owner responses including author, date, text, and translation if present
  • Full-size photos — thumbnail URLs normalized to full-resolution (=s1600) variants
  • AI overview — optional AI-generated summary of all reviews per place; charged per source review with text