Google Maps Reviews
Pricing
from $0.40 / 1,000 results
Google Maps Reviews
Scrap Google maps reviews with the place detail information.
Pricing
from $0.40 / 1,000 results
Rating
5.0
(1)
Developer
Jin Bae
Actor stats
0
Bookmarked
3
Total users
2
Monthly active users
13 days ago
Last modified
Categories
Share
Google Maps Reviews Scraper
Extract place details, ratings, and customer reviews from any Google Maps location. Export clean, flat data to CSV, JSON, or Excel.
- Scrape place details: name, rating, address, coordinates, contact info, categories, and more
- Collect customer reviews: text, rating, reviewer profile, photos, business responses
- Bulk scrape via URLs, Place IDs, CIDs, or CID strings
- CSV-friendly flat output by default, no nested objects
How it works
- Add places - Paste Google Maps URLs, enter Place IDs, CIDs, or CID strings
- Configure - Choose scrape mode, review sorting, and filters
- Run - Get structured data in your preferred format
Input
Places to scrape
Provide places using any combination of these methods:
| Field | Description |
|---|---|
| Google Maps URLs | Paste one or more place URLs from your browser |
| Place IDs | Enter Google Maps Place IDs (e.g., ChIJLwiGVMKifDURzGJnUMCMSx8) |
| CIDs | Enter Google Maps decimal CIDs (e.g., 16813526255109441016) |
| CID strings | Enter Google Maps cid_str values (e.g., 0x357ca2eb421c44ad:0xe955a50c118085f8) |
Options
| Field | Default | Description |
|---|---|---|
| Scrape mode | Place + Reviews | What to collect: place details only, reviews only, or both |
| Review sort order | Newest first | How to sort reviews: newest, most relevant, highest/lowest rating |
| Max reviews per place | (all) | Limit the number of reviews per place |
| Reviews since date | (none) | Only collect reviews after this date (requires sort = Newest) |
| Language | English | Language for place details and review translations |
| Output format | Flat | Flat (CSV-friendly) or Nested (JSON objects) |
Example input
{"scrapeMode": "all","places": {"startUrls": [{ "url": "https://www.google.com/maps/place/Gwanghwamun+Square/@37.5723718,126.9767087,17z/" }],"cids": ["16813526255109441016"]},"sort": "newest","maxReviews": 100,"language": "en"}
Output
Flat format (default)
Each row is a self-contained record with all fields at the top level. Place fields use a place_ prefix. This format exports cleanly to CSV and Excel.
{"place_name": "Gwanghwamun Square","place_rating": 4.6,"place_review_count": 12847,"place_address": "161 Sejong-daero, Jongno-gu, Seoul, South Korea","place_lat": 37.5723718,"place_lng": 126.9767087,"place_cid": 16808063476328097272,"place_cid_str": "0xe955a50c118085f8","place_place_id": "ChIJrUQcQutYezURGICADEylVek","place_category": "Plaza","place_categories": "Plaza | Tourist attraction","place_website": "https://www.seoul.go.kr/","place_phone": "+82-2-120","review_id": "ChdDSUhNMG9nS0VJQ0...","rating": 5,"text": "Beautiful open space in the heart of Seoul...","published_at": "2025-03-15T09:30:00Z","reviewer_name": "John D.","reviewer_is_local_guide": true,"scraped_at": "2025-04-06T12:00:00Z"}
Nested format
When output format is set to Nested (JSON), data is grouped under place and review objects:
{"input": { "url": "https://...", "language": "en" },"place": {"name": "Gwanghwamun Square","rating": 4.6,"review_count": 12847,"address": "161 Sejong-daero, Jongno-gu, Seoul, South Korea","lat": 37.5723718,"lng": 126.9767087},"review": {"review_id": "ChdDSUhNMG9nS0VJQ0...","rating": 5,"text": "Beautiful open space...","reviewer": { "name": "John D.", "is_local_guide": true }},"hasReviews": true,"scrapedAt": "2025-04-06T12:00:00Z"}
Place fields
| Field | Type | Description |
|---|---|---|
place_name | string | Place name |
place_lat / place_lng | float | Coordinates |
place_cid | integer | Google CID (integer) |
place_cid_str | string | CID in 0x hex format |
place_place_id | string | Google Place ID |
place_rating | float | Average rating |
place_review_count | integer | Total review count |
place_category | string | Primary category |
place_categories | string | All categories (pipe-separated in flat mode) |
place_address | string | Full address |
place_street | string | Street address |
place_city | string | City |
place_state | string | State/Province |
place_postal_code | string | Postal code |
place_country_code | string | Country code |
place_website | string | Website URL |
place_phone | string | Phone number |
place_timezone | string | Timezone |
place_thumbnail | string | Thumbnail image URL |
place_business_status | string | Business status |
Review fields
| Field | Type | Description |
|---|---|---|
review_id | string | Review unique ID |
rating | float | Review rating |
text | string | Review text (original) |
text_translated | string | Translated review text |
published_at | string | Publication date (ISO 8601) |
modified_at | string | Last modified date |
time_display | string | Relative time (e.g., "3 months ago") |
language_code | string | Original language code |
likes | integer | Number of likes |
review_url | string | Direct review URL |
reviewer_name | string | Reviewer name |
reviewer_profile_url | string | Reviewer profile URL |
reviewer_total_reviews | integer | Reviewer's total reviews |
reviewer_is_local_guide | boolean | Local Guide status |
platform_name | string | Review platform name |
media | string | Attached media (JSON array in flat mode) |
business_response_text | string | Business owner's response |
Tips
How to find a Google Maps URL
- Open Google Maps
- Search for a place and click on it
- Copy the URL from your browser's address bar
How to find a Place ID
Look for the 1s parameter in a Google Maps URL:
https://www.google.com/maps/place/...data=...!1sChIJLwiGVMKifDURzGJnUMCMSx8...
The value after !1s is the Place ID: ChIJLwiGVMKifDURzGJnUMCMSx8
How to find a CID or cid_str
Look for these values in a Google Maps URL or in a previously scraped dataset row:
cid: decimal identifier such as16813526255109441016cid_str: hex pair such as0x357ca2eb421c44ad:0xe955a50c118085f8
Reviews since date
The "Reviews since date" filter only works when review sort order is set to Newest first. This is because the scraper stops paginating when it reaches reviews older than the specified date, which only works correctly in chronological order.
Actor address
stable_crawl/google-maps-reviews
Local development
$apify run --input-file test-input.json
Results are saved to storage/. Deploy to the Apify platform for cloud runs and dataset export.
