Google Maps Reviews Scraper & API
Pricing
from $0.25 / 1,000 review scrapeds
Google Maps Reviews Scraper & API
Scrape every review from any Google Maps place by URL. Extract full text, star ratings, author profiles, and owner responses. Each review exports as a clean dataset row.
Pricing
from $0.25 / 1,000 review scrapeds
Rating
0.0
(0)
Developer
Thodor
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Google Maps Reviews Scraper & Review Extractor
Scrape Google Maps reviews and Google reviews from any place URL. This Google reviews scraper extracts full text, star ratings, detailed ratings, author profiles, owner responses, and review images. Just paste place URLs and go. Run via API, schedule runs, or integrate with webhooks.
Pass one URL or thousands. The scraper fetches reviews concurrently across all places, sorts them however you want, and pushes each review as a separate dataset row, ready to export as JSON, CSV, or Excel.
Need business data too? If you want to scrape businesses from Google Maps by search query and location (not just reviews from a place URL), use the Google Maps Scraper & Lead Extractor instead. It returns names, phone numbers, websites, opening hours, and 60+ attributes per place, with reviews as an optional add-on.
Why use this Google reviews scraper
Google Maps doesn't provide a public reviews API, and the official Places API only returns 5 reviews per place — useless for reputation monitoring, sentiment analysis, or competitor benchmarking. This actor works as a Google reviews scraper and Google reviews API alternative: paste a place URL, get every review, in one dataset row per review.
Common use cases:
- Reputation monitoring: track reviews across all your locations in one dataset, detect negative trends early
- Sentiment analysis: feed review text into NLP pipelines to measure customer satisfaction at scale
- Competitor benchmarking: compare review volumes, ratings, and detailed scores across competing businesses
- Market research: mine review text to learn what customers value most in a category
- Agency reporting: build white-label review reports for local SEO and reputation management clients
- Review response tracking: monitor which reviews have owner responses and measure response times
Google Reviews API alternative (get all reviews, not just 5)
Google's Places API (New) returns a maximum of 5 reviews per place and doesn't let you paginate through older reviews. That's enough for displaying a teaser on a website but useless for any serious analysis work.
This actor is a Google Reviews API alternative:
- All reviews per place: up to ~25,000 per place, not just the first 5
- Full review metadata: detailed category ratings, owner responses, reviewer stats, review images
- No API key to manage: authenticate with your Apify token
- By URL, not place ID: paste the URL from your browser, the scraper extracts the place ID automatically
- Concurrent scraping: pass thousands of URLs, get results fast
- JSON, CSV, and Excel export: direct from the Apify console or via the Dataset API
For reputation monitoring, sentiment analysis, or any workflow that needs more than a handful of reviews, this actor replaces the Google Places API entirely.
How to scrape Google Maps reviews
- Open Google Maps in your browser and navigate to the place you want to scrape
- Copy the URL from your browser's address bar
- Paste one or more URLs into the
place_urlsfield - Set
max_reviewsto cap the number of reviews per place - Optionally set
languagefor localized results - Run the actor and export as JSON, CSV, or Excel
Input parameters
| Parameter | Description | Example |
|---|---|---|
| Place URLs | Google Maps place URLs to scrape reviews from | https://www.google.com/maps/place/... |
| Max reviews | Maximum reviews to fetch per place | 100, 500, 5000 |
| Language | Language for results | en, nl, de, ja, fr |
Paste any Google Maps place URL — the scraper extracts the place ID automatically. No need to find IDs manually.
Use with Python
Call the actor from Python using the Apify SDK:
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("thodor/google-maps-reviews-scraper").call(run_input={"place_urls": ["https://www.google.com/maps/place/...",],"max_reviews": 500,"language": "en",})for review in client.dataset(run["defaultDatasetId"]).iterate_items():print(review["stars"], review["name"], review["text"][:80])
Each review is pushed as a separate dataset row. Export the full dataset as JSON, CSV, or Excel from the Apify console, or stream it via the Dataset API.
Google review data fields: what you get for every review
- Star rating (1-5)
- Full review text
- Detailed ratings (Food, Service, Atmosphere, etc.)
- Publication date (ISO 8601)
- Relative time ("2 months ago")
- Reviewer name, photo, profile URL
- Reviewer stats (number of reviews, Local Guide status)
- Owner response text + date
- Review images
- Review URL (direct link)
- Likes count
- Review origin and language context
Example output
{"place_name": "La Donna Re's","place_id": "0x89c25d8a10261a7d:0x148b4752f2b99ae2","place_url": "https://www.google.com/maps/place/La+Donna+Re's/...","review_id": "Ci9DQUlRQUNvZENodHljRjlvT2pkRmVVVlRhazVo...","name": "Isatta Bassie","reviewer_photo_url": "https://lh3.googleusercontent.com/a-/ALV-UjVPL1SQ...","reviewer_id": "109283811363605044639","reviewer_number_of_reviews": 5,"is_local_guide": false,"reviewer_url": "https://www.google.com/maps/contrib/109283811363605044639/reviews?hl=en","published_at_date": "2026-01-11T02:01:27Z","publish_at": "2 months ago","stars": 5,"text": "10/10! Super friendly staff and everything was delicious. I went in anticipating oxtails but they were out, so I opted for jerk chicken, Mac and cheese and rice and peas...","text_translated": null,"review_url": "https://www.google.com/maps/reviews/data=...","review_detailed_rating": [{"category": "Food", "rating": 5},{"category": "Service", "rating": 5},{"category": "Atmosphere", "rating": 5}],"likes_count": 1,"review_origin": "Google","response_from_owner_text": null,"response_from_owner_date": null,"review_image_urls": ["https://lh3.googleusercontent.com/geougc-cs/ABOP9puDf15..."],"review_context": "en"}
Each review is a separate dataset row — easy to filter by place, sort by date, or export to spreadsheets.
Review fields
| Field | Type | Description |
|---|---|---|
place_name | string | Name of the place this review belongs to |
place_id | string | Google Maps hex place ID |
place_url | string | Original input URL |
review_id | string | Unique review identifier |
name | string | Reviewer name |
reviewer_photo_url | string | Reviewer profile photo |
reviewer_id | string | Reviewer Google ID |
reviewer_number_of_reviews | int | Total reviews by this reviewer |
is_local_guide | boolean | Whether reviewer is a Local Guide |
reviewer_url | string | Link to reviewer's profile |
published_at_date | string | ISO 8601 publication date |
publish_at | string | Relative time ("2 months ago") |
stars | int | Star rating (1-5) |
text | string | Full review text (null if rating-only) |
text_translated | string | Translated text (when available) |
review_url | string | Direct link to the review |
review_detailed_rating | {category, rating}[] | Per-aspect ratings (Food, Service, etc.) |
likes_count | int | Number of likes on the review |
review_origin | string | Where the review came from |
response_from_owner_text | string | Owner's reply (null if none) |
response_from_owner_date | string | When the owner replied |
review_image_urls | string[] | Photos attached to the review |
review_context | string | Language code of the review |
FAQ
What URLs are supported? Any Google Maps place URL that contains a place ID. Just copy the URL from your browser when viewing a place on Google Maps.
How many reviews can I fetch?
Set max_reviews to however many you need per place. The scraper paginates automatically. Google's API returns up to ~25,000 reviews per place — for places with more reviews than that, you'll get the most recent 25k.
What output formats are available? Results are available as JSON, CSV, and Excel. You can also export directly to Google Sheets via the Apify platform.
What if a place has no reviews? The scraper will simply return 0 results for that place and move on to the next one.
Are there rate limits? No artificial limits. The scraper handles multiple places concurrently with automatic retry logic.
Is there a Google Reviews API? Google's Places API (New) includes reviews, but only returns 5 per place, with no pagination. This actor works as a Google Reviews API alternative: paste a place URL and get all reviews (up to ~25,000 per place), with full metadata including detailed category ratings, owner responses, and review images.
How is this different from your Google Maps Scraper? The Google Maps Scraper takes a search query and location (like "restaurants in Brooklyn") and returns every matching business. This Reviews Scraper takes a place URL as input and returns every review for that specific place. Use them together: scrape a market with the Maps Scraper to get place URLs, then pass those URLs to the Reviews Scraper for deep review analysis.
Can I use this Google reviews scraper with Python?
Yes. Call the actor using the Apify SDK (apify-client). See the Python example above. No Google API key needed.
Can I export Google reviews to CSV or Excel? Yes. All Apify datasets export to JSON, CSV, Excel, XML, RSS, and HTML from the console, or via the Dataset API. Each review is a separate row, so you can filter, sort, and analyze directly in a spreadsheet.
Does it scrape reviewer profiles and photos? Yes. Every review includes the reviewer's name, profile photo URL, profile link, total review count, and Local Guide status. Use this to filter reviews by reviewer credibility or to analyze reviewer patterns.
Can I use this for sentiment analysis? Yes. The full review text field is extracted cleanly without HTML, ready to feed into NLP pipelines, sentiment analysis tools, or LLM prompts for batch analysis.