Google Maps Reviews Scraper - Most Comprehensive
Pricing
from $0.04 / 1,000 reviews
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
Actor stats
0
Bookmarked
4
Total users
2
Monthly active users
2 days ago
Last modified
Categories
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
| Parameter | Type | Default | Description |
|---|---|---|---|
| urls | string[] | required | Google Maps place URLs |
| maxReviews | number | 100 | Max reviews per place |
| sort | select | newest | relevant, newest, highest, or lowest |
| searchQuery | string | β | Only return reviews containing this keyword or phrase |
| reviewsNewerThan | string | β | Only return reviews published after this date. When combined with sort=newest, scraping stops early once older reviews are reached |
| reviewsOlderThan | string | β | Only return reviews published before this date. Combine with reviewsNewerThan to scrape a specific date range |
| proxyConfiguration | object | Apify proxy | Proxy 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
maxReviewsis per place, not total across all URLs- Google may show different results based on region/language
detailsfields vary by place type: restaurants, hotels, and attractions each have different fieldsownerResponseis only present when the business has replied to a review- Translation fields (
textTranslated,originalLanguage, etc.) depend on Google's auto-translation availability