Google Maps Reviews Scraper - Unlimited Reviews Per Place
Pricing
from $0.30 / 1,000 reviews
Google Maps Reviews Scraper - Unlimited Reviews Per Place
Scrape unlimited Google Maps reviews from place URLs or IDs. Get ratings, full text, owner replies, sub-ratings, photos and reviewer details.
Pricing
from $0.30 / 1,000 reviews
Rating
0.0
(0)
Developer
Zen Studio
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
20 hours ago
Last modified
Categories
Share
Google Maps Reviews Scraper | Unlimited Reviews Per Place, Owner Replies (2026)
41 fields per review, including the owner's reply and the reviewer's own Food, Service and Atmosphere scores.
| Place and review tools | |||
➤ You are here | 5 platforms, one export | Include hotel booking sites | Reviews, replies and media |
Need more than Google feedback? Place Review Aggregator matches the same place across Google Maps, Yelp and Tripadvisor and combines reviews in one export. Facebook recommendations and Swarm tips are optional.
Copy to your AI assistant
zen-studio/google-maps-reviews-scraper on Apify. Scrapes every review of a Google Maps place, with owner responses and sub-ratings. Call ApifyClient("TOKEN").actor("zen-studio/google-maps-reviews-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Needs startUrls or placeIds; maxReviewsPerPlace=0 means the whole history. Full spec: GET https://api.apify.com/v2/acts/zen-studio~google-maps-reviews-scraper/builds/default (Bearer TOKEN) -> inputSchema, actorDefinition.storages.dataset, readme. Token: https://console.apify.com/account/integrations
Key Features
- No limit per place: set Reviews per place to
0and the complete history comes back, however long it is. Rows stream out as they land, so a place with tens of thousands of reviews stays within 512 MB. - 41 fields per review: rating and its scale, full text, the owner's reply, per-question sub-ratings, translations, likes, photos and videos, Local Guide standing, and the place the review belongs to.
- Filter at the source: keyword, date cutoff and sort are applied before delivery, so you are not billed for reviews you discard.
- Partner reviews handled: Tripadvisor, Booking and Trip.com reviews arrive with their own rating scale, so an 8 out of 10 is never read as an 8 out of 5.
- Free tier: 10 lifetime runs, 100 reviews per run, no credit card.
How to Scrape Google Maps Reviews
- Open Google Maps Reviews Scraper in the Apify Console and click Try for free.
- Paste your Google Maps place URLs into Start URLs, or place IDs into Place IDs.
- Set Reviews per place, or leave it at
0to pull the complete history. - Click Start, then download the reviews as JSON, CSV, Excel, XML or HTML.
Basic: the latest reviews for a place
{"startUrls": [{ "url": "https://www.google.com/maps/place/Hotel+Adlon+Kempinski+Berlin/@52.5161791,13.3805048,17z" }],"maxReviewsPerPlace": 100,"reviewsSort": "newest"}
Monitoring: only what changed since last week
{"placeIds": ["ChIJHQQciMZRqEcR2X4b8-vf5Bk"],"newerThan": "7 days","maxReviewsPerPlace": 0}
newerThan is measured from the moment the run starts, so a scheduled run keeps the same window instead of drifting behind a fixed date.
It compares each review's latest activity, not its original post date. A review edited this week comes back even if it was first posted years ago, which is what you want when watching for changes.
Complaints only
{"placeIds": ["ChIJHQQciMZRqEcR2X4b8-vf5Bk"],"reviewsSort": "lowestRanking","maxReviewsPerPlace": 50}
One topic across a portfolio
{"placeIds": ["ChIJHQQciMZRqEcR2X4b8-vf5Bk", "0x47a851db960e0eb1:0x6ce7f513876203dd"],"reviewsKeyword": "parking","maxReviewsPerPlace": 0}
Keyword matching works the way the search box on the Google Maps reviews panel does, so related wording is included, not just the exact word.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | array | [] | Google Maps place URLs, including shortened maps.app.goo.gl and share.google links. Max 500 |
placeIds | array | one example place | ChIJ... place IDs or 0x...:0x... feature IDs. Max 500 |
maxReviewsPerPlace | integer | 100 | Stop after this many per place. 0 for the complete history |
reviewsSort | string | newest | newest, mostRelevant, highestRanking, lowestRanking |
newerThan | string | "" | A date (2026-08-01) or a rolling period (7 days). Forces newest first |
reviewsKeyword | string | "" | Keep only reviews about a topic |
reviewsOrigin | string | all | all, or google for first-party reviews only |
language | string | en | Display language for place names, categories and relative dates |
countryCode | string | us | Two-letter country code used when loading each place |
Feature IDs need no lookup, so they start fastest. The Google Maps Scraper emits them as hexId.
What Data Can You Extract from Google Maps Reviews?
Every row carries its place, so the dataset is usable on its own with no join.
- Review:
reviewId,rating,ratingScale,text,textTranslated,language,translatedLanguage,date,publishedAtMicros,editedAtMicros,isEdited,likes,source,sourceIcon,reviewUrl - Owner reply:
ownerResponsewith its own text, date and language - Attributes:
attributes[], the sub-ratings and chip answers the reviewer filled in (Food, Service, Atmosphere, Rooms, Location, price per person, trip type, wait time, parking) - Media:
photos[]plusmedia[]with type, caption, capture date, dimensions and coordinates - Author:
author,authorId,authorProfile,authorPhoto,authorReviewCount,authorPhotoCount,isLocalGuide,localGuideLevel - Place:
placeName,placeRating,reviewsCount,primaryCategory,categories,address,addressFormatted,countryCode,latitude,longitude,placeId,hexId,googleMapsUrl - Place record: one full profile per place in the run's key-value store, 60+ fields: contact, hours and live status, amenities, menu and popular dishes, review keyword pills, photo tabs, related places, hotel offers
Output Example
{"recordType": "review","reviewId": "Ci9DQUlRQUNvZENodHljRjlvT2xGb2FGTkJlbVpJVUhKdVVsSXhTSHAzY1hKb2VVRRAB","rating": 5,"ratingScale": 5,"date": "a month ago","publishedAtMicros": 1785628764081573,"editedAtMicros": 1785628810449730,"isEdited": true,"text": "I went on a saturday night and got a table right away right at the window. The salmon was to die for. Instead of the ...","textTranslated": null,"language": "en","translatedLanguage": null,"likes": 0,"source": "Google","sourceIcon": "https://www.gstatic.com/images/branding/product/1x/googleg_48dp.png","ownerResponse": {"text": "Thank you so much for the detailed review! 🥂 We can tell from your photos that you had an amazing time, and we’re so ...","date": "a week ago","publishedAtMicros": 1787756829000000,"language": "en"},"attributes": [{"key": "GUIDED_DINING_PRICE_RANGE","label": "Price per person","question": "How much did you spend per person?","rating": null,"values": ["$100+"]},{"key": "GUIDED_DINING_FOOD_ASPECT","label": "Food","question": "Food","rating": 5,"values": null},{"key": "GUIDED_DINING_SERVICE_ASPECT","label": "Service","question": "Service","rating": 5,"values": null},"... +4 more"],"media": [{"id": "CIABIhCPc-Ipf-UZBik_MCAY6-uB","caption": null,"takenAt": "2026-08-02","date": "a month ago","latitude": 40.75683722983638,"longitude": -73.99349376183964,"type": "photo","url": "https://lh3.googleusercontent.com/grass-cs/ACvplmOnAWPHwcee6dTXjhwUrs1LqXavVOVJ9ViPO-OVib0UHNo1CerrEo8e-GObtUY0OZzx5M...","width": 3024,"height": 4032,"durationMs": null},{"id": "CIABIhDisTC3_b36sgmh9MO_p-wm","caption": null,"takenAt": "2026-08-02","date": "a month ago","latitude": 40.75683722983638,"longitude": -73.99349376183964,"type": "photo","url": "https://lh3.googleusercontent.com/grass-cs/ACvplmP-a2RLCdaSoxC3aTyzgGIIK7FnbuUapkbZKVFze7_6mDFEy6W9emsCUe-VKyM8zbC2JN...","width": 4032,"height": 3024,"durationMs": null}],"photos": ["https://lh3.googleusercontent.com/grass-cs/ACvplmOnAWPHwcee6dTXjhwUrs1LqXavVOVJ9ViPO-OVib0UHNo1CerrEo8e-GObtUY0OZzx5M...","https://lh3.googleusercontent.com/grass-cs/ACvplmP-a2RLCdaSoxC3aTyzgGIIK7FnbuUapkbZKVFze7_6mDFEy6W9emsCUe-VKyM8zbC2JN..."],"author": "Honestly Mars","authorPhoto": "https://lh3.googleusercontent.com/a-/ALV-UjX_BJYAyPq61rPEbsQMGkcony0NVoDytmRRVPQkDfqqxb_PV3be=s120-c-rp-mo-ba12-br100","authorProfile": "https://www.google.com/maps/contrib/105567505416875095501/reviews?hl=en","authorId": "105567505416875095501","authorReviewCount": 31,"authorPhotoCount": 15,"isLocalGuide": true,"localGuideLevel": 5,"reviewUrl": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sCi9DQUlRQUNvZENodHljRjlvT2xGb2FGTkJlbVpJVUhKdVVsSXhTSHAz...","placeId": "ChIJ__8ztFJYwokRm2x1-poe3ks","hexId": "0x89c25852b433ffff:0x4bde1e9afa756c9b","placeName": "Buena Vista Restaurant & Bar","googleMapsUrl": "https://www.google.com/maps/place/?q=place_id:ChIJ__8ztFJYwokRm2x1-poe3ks","address": "Buena Vista Restaurant & Bar, 536 9th Ave, New York, NY 10018","addressFormatted": "536 9th Ave, New York, NY 10018","latitude": 40.7568372,"longitude": -73.9934938,"placeRating": 4.7,"reviewsCount": 1507,"primaryCategory": {"id": 8,"slug": "restaurants"},"categories": ["Latin American restaurant","Bar & grill","Cocktail bar","... +3 more"],"countryCode": "US"}
Download the results as JSON, CSV, Excel, XML or HTML from the run's Storage tab, or pull them through the Apify API.
Place record
Each place also gets a full profile, saved once per run in the key-value store
under place-<feature id> (the run's Output tab links to them). Taken from a
live run; long arrays are shortened here with a ... +N more marker.
{"recordType": "place","name": "Pig Beach BBQ Queens","placeId": "ChIJsT7KfEtfwokRdTuEU6J5MAI","hexId": "0x89c25f4b7cca3eb1:0x23079a253843b75","latitude": 40.755083,"longitude": -73.92518059999999,"localName": null,"address": "Pig Beach BBQ Queens, 35-37 36th St Ground Floor, Astoria, NY 11106","addressFormatted": "35-37 36th St Ground Floor, Astoria, NY 11106","addressComponents": {"street": "35-37 36th St Ground Floor","locality": "Astoria, NY 11106","country": null},"ftid": "/g/11rdc6k11s","rating": 4.3,"reviewsCount": 1167,"priceRange": "$20–30","priceLabel": "$20 to $30","plusCode": {"compound": "Q34F+2W Astoria, Queens, NY","global": "87G8Q34F+2W"},"phone": "(718) 362-6111","website": "http://www.pigbeachnyc.com/","menuUrl": "https://www.pigbeachnyc.com/queens-ny/","categories": ["Barbecue restaurant","Restaurant"],"primaryCategory": {"id": 8,"slug": "restaurants"},"categoryGcids": [{"gcid": "barbecue_restaurant","label": "Barbecue"},{"gcid": "restaurant","label": null}],"entityType": "bbq_restaurant","shortDescription": "Smoked & grilled meats in an urban space","neighborhood": "Astoria","cityLabel": "Astoria, NY","countryCode": "US","timezone": "America/New_York","description": "Industrial venue with Southern flair selling smoked & grilled ribs, burgers, brisket, sides & more.","metaDescription": "Pig Beach BBQ Queens at 35-37 36th St (Ground Floor) is your go-to for BBQ Near Me in Astoria—chef-driven, pitmaster-...","popularSpendTime": "People typically spend 1.5-3.5 hours here","amenities": {"Service options": ["Outdoor seating","Delivery","Onsite services","Takeout","Dine-in"],"Highlights": ["Fast service","Great beer selection","Great cocktails","Live music","Serves local specialty","Sports"],"Popular for": ["Lunch","Dinner","Solo dining"],"Accessibility": ["Wheelchair accessible entrance","Wheelchair accessible restroom","Wheelchair accessible seating"],"Offerings": ["Alcohol","Beer","Cocktails","Comfort food","Happy hour drinks","Happy hour food","Hard liquor","Quick bite","Small plates","Wine"],"Dining options": ["Lunch","Dinner","Catering","Counter service","Dessert","Seating","Table service"],"Amenities": ["Bar onsite","Restroom"],"Atmosphere": ["Casual","Trendy"],"Crowd": ["Family-friendly","Groups","Tourists"],"Planning": ["Accepts reservations"],"Payments": ["Credit cards","Debit cards","NFC mobile payments"],"Children": ["Good for kids","High chairs"],"Parking": ["Free street parking","Paid street parking","Parking"],"Pets": ["Dogs allowed inside","Dogs allowed outside"]},"openingHours": {"Wednesday": "2–10 PM","Thursday": "2–10 PM","Friday": "12–11 PM","Saturday": "12–11 PM","Sunday": "12–10 PM","Monday": "Closed","Tuesday": "2–10 PM"},"openStatus": "Closed · Opens 2 PM","departments": [{"name": "Delivery","openingHours": {"Wednesday": "12–9 PM","Thursday": "12–9 PM","Friday": "12–10 PM","Saturday": "12–10 PM","Sunday": "12–9 PM","Monday": "Closed","Tuesday": "12–9 PM"}},{"name": "Kitchen","openingHours": {"Wednesday": "2–9 PM","Thursday": "2–9 PM","Friday": "12–10 PM","Saturday": "12–10 PM","Sunday": "12–9 PM","Monday": "Closed","Tuesday": "2–9 PM"}},"... +1 more"],"menu": [{"name": "Wings/Apps 3Po","items": [{"name": "25 Wings","price": "$46.50"},{"name": "6 Wings","price": "$15.00"}]},{"name": "Smoker 3Po","items": [{"name": "Sausage Link","price": "$9.50"},{"name": "1/2lb Turkey","price": "$18.50"},"... +5 more"]},"... +4 more"],"services": null,"popularDishes": [{"name": "Sampler Platter","id": "/g/11kk81g59x","reviewMentions": 11,"photoCount": 44,"photos": ["https://lh3.googleusercontent.com/gps-cs-s/AHRPTWl92cM8VxZftTJrg7z1FTrjiDNncCv34st3cEuz63s_VMEoItFlPkmiyPNtcmEUegppPn...","https://lh3.googleusercontent.com/gps-cs-s/AHRPTWkgjw62ShoVAIyqXJ06xi9pYGiXQYZMe2ABUhjyIPFbkgX_ZOY1WyEIUtauxCVZnLmBa0...","... +4 more"]},{"name": "Cornbread","id": "/g/11nhlxdxnb","reviewMentions": 45,"photoCount": 9,"photos": ["https://lh3.googleusercontent.com/gps-cs-s/AHRPTWlZpft3tm-PkIQcaWecRUFXhD7IA41FbU9yJIDg3KEiicnFKNbjqSS4CPlsWiRZQf3j26...","https://lh3.googleusercontent.com/gps-cs-s/AHRPTWmDGauwdrYSWfS8-HeCdRILDM2Op31TKYG-DfQlm_q3zhft_ziU0YSh3fO7HBKSt_Q70z...","... +2 more"]},"... +18 more"],"hotelOffers": null,"popularTimes": [{"day": "Monday","hours": [{"hour": 6,"busyness": 0,"label": "","waitLabel": null,"hourLabel": "6 AM"},{"hour": 7,"busyness": 0,"label": "","waitLabel": null,"hourLabel": "7 AM"},"... +16 hours"]},{"day": "Tuesday","hours": [{"hour": 6,"busyness": 0,"label": "","waitLabel": null,"hourLabel": "6 AM"},{"hour": 7,"busyness": 0,"label": "","waitLabel": null,"hourLabel": "7 AM"},"... +16 hours"]},"... +4 days"],"ratingHistogram": null,"reviewPills": [{"label": "cornbread","topicId": "EB6x5v5Zjbk","count": 64,"secondaryCount": 38,"positiveCount": 45,"neutralCount": 8,"negativeCount": 6,"fusedTopicId": "ZnVzZWRfdG9waWNfaWQ6RUI2eDV2NVpqYms="},{"label": "knicks game","topicId": "cUi84WC_H6c","count": 11,"secondaryCount": 52,"positiveCount": 2,"neutralCount": 2,"negativeCount": 0,"fusedTopicId": "ZnVzZWRfdG9waWNfaWQ6Y1VpODRXQ19INmM="},"... +8 more"],"verifiedOwner": {"name": "Pig Beach BBQ Queens (Owner)","ownerId": "104702959717892551553"},"regionHierarchy": [{"name": "Americas","weight": 0.75},{"name": "Astoria","weight": 1},"... +11 more"],"heroPhoto": {"url": "https://streetviewpixels-pa.googleapis.com/v1/thumbnail?panoid=W6B_rU8sYPDrfatlxiDO2Q&cb_client=search.gws-prod.gps&w...","photoId": "W6B_rU8sYPDrfatlxiDO2Q","nativeWidth": null,"nativeHeight": null,"caption": null,"photoCount": 1341},"photoTabs": [{"name": "All","previewPhotoCount": 1,"previewPhotos": ["https://lh3.googleusercontent.com/gps-cs-s/AHRPTWknNI9ysNP7blra9fQf2-rGQ-o7sSU3fcchS56vm8kNyJWhgmz5KkGMhifPytYBMfH8na..."]},{"name": "Latest","previewPhotoCount": 1,"previewPhotos": ["https://lh3.googleusercontent.com/gps-cs-s/AHRPTWmKGgoCvHfatJdxAe4UeW774xRCmgEGsfInL1t_YakQfi7MIwDnHxLM5OT3WKiwUQ-w2Y..."]},"... +12 more"],"travelTimeMarkers": [{"durationSeconds": 900,"label": "15 min","latitude": 40.7552726,"longitude": -73.92530239999999},{"durationSeconds": 1800,"label": "30 min","latitude": 40.7552726,"longitude": -73.92530239999999},"... +7 more"],"reviewTeasers": null,"bookingLinks": null,"bookingPartners": null,"immersiveView": null,"fuelPrices": null,"editorial": {"title": "Pig Beach BBQ Queens","photoUrl": "https://lh5.googleusercontent.com/-PeduWSrsGlw/AAAAAAAAAAI/AAAAAAAAAAA/QXo1bDeb8Fg/s40-c-k-mo/photo.jpg","snippet": "Big screens, blue skies, and a crowd that cheers louder with every plate that comes out of the kitchen. That's game d..."},"anchorPlaces": null,"directoryPlaces": null,"hotelAmenities": null,"hotelDescription": null,"hotelEditorial": null,"hotelInfo": null,"nearbyCategories": null,"relatedPlaces": [{"name": "Butcher Bar","hexId": "0x0:0x5c26c39eca5fb41a","rating": 4.2,"reviewsCount": 1060,"latitude": 40.764306499999996,"longitude": -73.9163566,"categories": ["Barbecue","Bar","... +3 more"]},{"name": "John Brown BBQ","hexId": "0x0:0x8bbd7a759a06f6f0","rating": 4.5,"reviewsCount": 3222,"latitude": 40.752658499999995,"longitude": -73.93667359999999,"categories": ["Barbecue","Restaurant"]},"... +2 more"],"streetViewThumb": "https://lh5.googleusercontent.com/-PeduWSrsGlw/AAAAAAAAAAI/AAAAAAAAAAA/QXo1bDeb8Fg/s44-p-k-no-ns-nd/photo.jpg","googleMapsUrl": "https://www.google.com/maps/place/?q=place_id:ChIJsT7KfEtfwokRdTuEU6J5MAI","businessStatus": null,"permanentlyClosed": false}
Advanced Usage
Ready-made configurations for review monitoring, reputation management, competitor tracking and sentiment analysis.
Track a portfolio daily
{"placeIds": ["ChIJHQQciMZRqEcR2X4b8-vf5Bk", "0x47a851db960e0eb1:0x6ce7f513876203dd"],"newerThan": "2 days","maxReviewsPerPlace": 0,"reviewsOrigin": "google"}
Pull a full history for analysis
{"placeIds": ["0x47a851c6881c041d:0x19e4dfebf31b7ed9"],"maxReviewsPerPlace": 0,"reviewsSort": "newest"}
Local-language reviews with local labels
{"placeIds": ["0x47a851c6881c041d:0x19e4dfebf31b7ed9"],"maxReviewsPerPlace": 200,"language": "de","countryCode": "de"}
How much does it cost to scrape Google Maps reviews?
$0.399 per 1,000 reviews on the Free and Bronze plans, falling automatically to $0.349 on Silver and $0.299 on Gold and above. A $0.05 start fee applies once per run.
| Reviews | Total cost |
|---|---|
| 100 | $0.09 |
| 1,000 | $0.46 |
Reviews are charged as they are delivered, so a run that returns 40 reviews is charged for 40. Filtering by keyword, date or sort happens before delivery, so narrowing your input is the direct way to lower cost.
Free tier: 10 lifetime runs, 100 reviews per run, no credit card.
Keeping it running
Reviews arrive continuously, so this Actor earns its place on a schedule rather than as a one-off.
Suggested cadence. Daily with newerThan: "2 days" for active monitoring, or weekly with newerThan: "8 days" for reporting. The small overlap covers a missed run.
Where the rows go. The dataset connects to Google Sheets, Make, Zapier, Slack and plain webhooks from the Actor's Integrations tab. A webhook on run completion is the usual way to push new reviews straight into a helpdesk or an alerting channel.
How to run the scraper and put it on a schedule (official Apify videos):
FAQ
What is Google Maps, and what counts as a review here?
Google Maps is Google's mapping and local-business service, where visitors rate places from one to five stars and leave written reviews. This Actor returns those reviews for places you already have, one row each, including the reviews Google syndicates from partner sites such as Tripadvisor and Booking.
Does Google have an official reviews API, and why use this instead?
The Google Places API returns at most five reviews per place, with no owner replies, no reviewer sub-ratings and no partner reviews. This Actor returns the complete history with all 41 fields, and needs no Google Cloud project, billing account or API key.
How many reviews can I extract per place?
There is no cap. Set Reviews per place to 0 and the complete history comes back; places with tens of thousands of reviews stream through in bounded batches.
How do I find the places to feed in?
Paste Google Maps URLs, or use Google Maps Scraper to find places by search term and location and feed its placeId or hexId values straight in here.
Can I search for places from this Actor?
No, this one starts from places you already have. Google Maps Scraper does the discovery, and Google Maps Directions & Routes API covers travel times between them.
How do I export the data?
JSON, CSV, Excel, XML or HTML from the run's Storage tab, or through the Apify API. JSON preserves the nested ownerResponse, attributes and media fields exactly; CSV flattens them.
Is it legal to scrape Google Maps reviews?
The Actor collects only publicly visible information. Reviews contain personal data such as author names and profile links, so you are the controller under GDPR, CCPA and equivalent laws, and you need a lawful basis to process them. Using the output is your responsibility, and so is compliance with Google's terms.
Why is a partner review's rating not out of 5?
Syndicated reviews keep their source's scale. ratingScale tells you what the number is out of, so always read rating together with ratingScale.
What are attributes on a review?
The structured answers reviewers give alongside the stars: Food, Service and Atmosphere scores for restaurants, Rooms and Location for hotels, plus chips such as trip type, price per person, wait time and parking. Each entry carries the question Google asked, so an unfamiliar key still explains itself.
Does it return reviews in one language?
Reviews come back in the language they were written in. Where Google offers a translation it is included as textTranslated, with both language codes.
What happens if a place cannot be loaded?
It is skipped and reported in the run log, and the rest of the run continues. If a place's history comes back only partially, the run says so explicitly rather than presenting it as complete.
What is the free tier?
10 lifetime runs, 100 reviews per run, no credit card.
More Zen Studio & Clearpath scrapers for maps & local data
-
Baidu Maps 百度地图 -
Google Maps -
Apple Maps -
Yandex Maps Яндекс Карты -
2GIS 2ГИС -
Naver Map & Place 네이버 지도 -
Bing Maps- Bing Maps Scraper 🔗 Review aggregators
-
Place reviews
Support
- Bugs: Issues tab
- Features: Issues tab
Legal Compliance
Extracts publicly available data. Users must comply with Google's terms and data protection regulations (GDPR, CCPA).
Google Maps reviews scraper: unlimited reviews per place with ratings, review text, owner responses, reviewer sub-ratings, photos and videos, exported to CSV, JSON or Excel.
