Google Maps Reviews Scraper - Most Comprehensive avatar

Google Maps Reviews Scraper - Most Comprehensive

Pricing

from $0.04 / 1,000 reviews

Go to Apify Store
Google Maps Reviews Scraper - Most Comprehensive

Google Maps Reviews Scraper - Most Comprehensive

πŸ”₯ ~$0.05/1K reviews πŸ”₯ The most comprehensive Google Maps review scraper. Extract reviews with ratings, text, translations, photos, author details, owner responses, structured dining/hotel/attraction data, and 65+ place fields. Supports keyword filtering, sorting.

Pricing

from $0.04 / 1,000 reviews

Rating

0.0

(0)

Developer

Kai

Kai

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

2 days ago

Last modified

Share

Google Maps Reviews Scraper

Scrape every review from any Google Maps place: restaurants, hotels, attractions, and more. Structured JSON output with ratings, review text, photos, author details, owner responses, place-specific fields, and 65+ place data fields.

Just paste a Google Maps place URL and hit Run.

What you get

Reviews

Every review includes:

  • Review text: full review content with translations and language detection
  • Rating: 1-5 star overall rating
  • Author: name, profile URL, avatar, review/photo/contribution counts, Local Guide status/level, guide profile flag, badge label
  • Photos: full-resolution image URLs with dimensions, GPS coordinates (latitude/longitude), AI-generated descriptions, upload dates
  • Owner response: business reply with text, translation, published and last-edited timestamps (when available)
  • Engagement: likes count
  • Timestamps: published date, last edited date, relative date
  • Translation: original text + translated text with language codes and human-readable language names
  • Context: review origin, visited-in period with structured year/month
  • Place-specific details (varies by type):
    • Restaurants: meal type, price per person, order type, food/service/atmosphere ratings, noise level, wait time, parking, accessibility tips, and more
    • Hotels: trip type, travel group, rooms/service/location ratings, hotel highlights, nearby activities tips
    • Attractions: day of visit, wait time, advance reservations

Place data (65+ fields)

Each place also outputs rich structured data:

  • Identity: name, place ID, hex ID, categories, description, business type/status, owner info
  • Location: full address with components, lat/lng, entrance coordinates, plus code, area, neighborhood, timezone
  • Contact: phone (local + international), website, Google Maps URL, menu link, reservation links
  • Ratings & reviews: overall rating, total review count, reviews per rating breakdown, review summary, review highlights, review topics with mention counts, featured reviews
  • Pricing: price range, price label
  • Hours: business hours by day, hours status
  • Photos: cover photo, street view URL/panorama ID, place photos with dimensions and captions
  • Amenities & attributes: structured amenities (category, name, availability), place attributes, place types
  • Relationships: CID, containing place ID, related places, sub-destinations with ratings
  • Other: popular times, typical time spent, hotel stars, chain detection, claimed status

Quick start

Paste a Google Maps place URL:

{
"urls": ["https://www.google.com/maps/place/Starbucks+Reserve+Roastery"]
}

That's it. Default: 100 most relevant reviews.

More examples

Multiple places (200 reviews each, newest first):

{
"urls": [
"https://www.google.com/maps/place/Starbucks+Reserve+Roastery",
"https://www.google.com/maps/place/Empire+State+Building"
],
"maxReviews": 200,
"sort": "newest"
}

All reviews for a place:

{
"urls": ["https://www.google.com/maps/place/C%C6%A1m+T%E1%BA%A5m+H%E1%BA%BBm+33"],
"maxReviews": 100000
}

Input

ParameterTypeDefaultDescription
urlsstring[]requiredGoogle Maps place URLs
maxReviewsnumber100Max reviews per place
sortselectnewestrelevant, newest, highest, or lowest
searchQuerystringβ€”Only return reviews containing this keyword or phrase
reviewsNewerThanstringβ€”Only return reviews published after this date. When combined with sort=newest, scraping stops early once older reviews are reached
reviewsOlderThanstringβ€”Only return reviews published before this date. Combine with reviewsNewerThan to scrape a specific date range
proxyConfigurationobjectApify proxyProxy settings. Residential proxies recommended β€” Google blocks datacenter IPs

Sample output

Each review is a single JSON object:

{
"reviewId": "Ci9DQUlRQUNvZENodHljRjlv...",
"url": "https://www.google.com/maps/reviews/data=...",
"publishedAt": "2025-09-28T06:17:50.105Z",
"lastEditedAt": null,
"relativeDate": "6 months ago",
"text": "I had crispy lean pork with steamed crab meatloaf. The rice portion wasn't enough, so I ordered extra rice.",
"textTranslated": null,
"language": "en",
"originalLanguage": "vi",
"translatedLanguage": "en",
"rating": 5,
"reviewOrigin": "Google",
"originalLanguageName": "Vietnamese",
"translatedLanguageName": "English",
"visitedIn": "Visited in March",
"visitedYear": 2025,
"visitedMonth": 3,
"author": {
"name": "Joe Unkx",
"id": "108114272665103257161",
"url": "https://www.google.com/maps/contrib/108114272665103257161?hl=en",
"avatarUrl": "https://lh3.googleusercontent.com/a/...",
"profileUrl": "https://www.google.com/maps/contrib/108114272665103257161/reviews?hl=en",
"reviewCount": 27,
"photoCount": 298,
"isLocalGuide": true,
"localGuideLevel": 6,
"hasGuideProfile": true,
"contributionCount": 133,
"badgeLabel": "Local Guide Β· Level 6"
},
"photos": [
{
"id": "CIABIhCJ_JDxVbKvswLCYsRvcgD5",
"url": "https://lh3.googleusercontent.com/geougc-cs/...",
"width": 4080,
"height": 2288,
"latitude": 10.7942,
"longitude": 106.6739,
"aiDescription": "Crispy lean pork with steamed crab meatloaf on rice",
"uploadedAt": "2025-03-15T10:00:00.000Z"
}
],
"details": {
"mealType": "Breakfast",
"pricePerPerson": "β‚«1–100,000",
"orderType": "Dine in",
"food": 5,
"service": 3,
"atmosphere": 4
},
"ownerResponse": {
"text": "Thank you for your kind review!",
"textTranslated": null,
"language": "en",
"originalLanguage": "en",
"translatedLanguage": null,
"publishedAt": "2025-10-05T12:00:00.000Z",
"lastEditedAt": null,
"relativeDate": "5 months ago"
},
"engagement": {
"likes": 3
},
"meta": {
"scrapedAt": "2026-03-28T10:00:00.000Z"
}
}

Performance

  • ~2,000 reviews per minute
  • 256 MB memory, lightweight, no browser overhead
  • Handles pagination automatically, just set maxReviews
  • Gracefully handles blocking, returns whatever was collected

Output datasets

The scraper outputs to two datasets:

  • default β€” one row per review with all review fields
  • place-data β€” one row per place with 65+ structured fields (place identity, location, contact, ratings, photos, amenities, etc.)

Limitations

  • maxReviews is per place, not total across all URLs
  • Google may show different results based on region/language
  • details fields vary by place type: restaurants, hotels, and attractions each have different fields
  • ownerResponse is only present when the business has replied to a review
  • Translation fields (textTranslated, originalLanguage, etc.) depend on Google's auto-translation availability