Google Maps Review & Contributor Activity Scraper
Get reviews for any Google Maps business or place, or switch to author mode to pull everything one Google reviewer has written. Includes ratings, review text, dates, likes, and owner replies.
Open in Apify Store$0.99 / 1K on Free
Short answer
Google Maps Review & Contributor Activity Scraper is an Apify Store Actor for Google Maps data that returns 96 published output fields, including rating, reviewText, businessName, businessRating. It lists $0.99 per 1,000 results on the Free plan (pay per event), $0.49 on the Business plan. It takes 23 input settings, none required. It covers 9 of the 9 core Google Maps fields this site tracks. Last updated Oct 21, 2026.
From the public Store listing and published build schema, synced 2026-11-12.What it returns
96 fields from the published dataset schema. Export as JSON, CSV or Excel, or read the dataset through the Apify API.
recordTypereview, authorReview, partnerReview, place or contributor.reviewIdGoogle's review ID (reviews and authorReview records).reviewerNameName of the reviewer (omitted with includeReviewerDetails off).reviewerAvatarUrlReviewer avatar URL (omitted with includeReviewerDetails off).reviewerProfileUrlReviewer profile URL (omitted with includeReviewerDetails off).reviewerIdReviewer profile ID (omitted with includeReviewerDetails off).reviewerSubtitleThe status line Google prints under the reviewer's name, such as 'Local Guide · 53 reviews · 58 photos', in the chosen language. Left out when Google's exact wording for that language and those counts was not observed; the counts stay in reviewerTotalReviews and reviewerPhotoCount.reviewerTotalReviewsHow many reviews the reviewer has written, from Google's review feed.reviewerPhotoCountHow many photos the reviewer has contributed, from Google's review feed.reviewerLocalGuideLevelExact Local Guide level, filled only with enrichReviewerProfiles on.reviewerIsLocalGuideTrue when Google labels this reviewer 'Local Guide' on the review.contributorIdContributor profile ID (reviewer mode).contributorNameContributor name (reviewer mode).contributorAvatarUrlContributor avatar URL (reviewer mode).contributorProfileUrlContributor profile URL (reviewer mode).contributorLocalGuideLevelContributor Local Guide level (reviewer mode).contributorPointsContributor points (reviewer mode).contributorTotalReviewsReviews on the contributor's profile (reviewer mode).ratingRating on the review, and on partnerReview records on the partner's own scale.ratingScaleFor partnerReview records: the scale of the partner rating, for example 5 or 10.reviewTextReview text, with Google's HTML removed.reviewTextTranslatedGoogle's translation of the review into the chosen language.translatedLanguageLanguage of reviewTextTranslated (the chosen language).reviewLanguageLanguage Google detected for the review text.originalReviewLanguageOriginal language when the review came with a translation.reviewDateISO 8601 date of the review's last update (Google's newest-order date).reviewDateOriginalThe date as Google prints it (for example '2 weeks ago'). Partner reviews have only this relative date.reviewCreatedAtISO 8601 first-published date, filled only with enrichReviewerProfiles on.isEditedTrue when the review was edited after publishing, filled only with enrichReviewerProfiles on.likesCountReview likes, filled only with enrichReviewerProfiles on.
Show the other 66 fields
reviewViewCountReview view count, filled only with enrichReviewerProfiles on.isRatingOnlyTrue when the review has a rating and no text.photosInReviewPhoto URLs attached to a review.reviewPhotoUrlsAlias of photosInReview kept for older integrations.reviewPhotoCountNumber of photos attached to a review.photoDetailsWith includePhotoDetails on: one entry per photo or video with url, width, height, uploadDate and, for videos, durationSeconds.videosInReviewNumber of videos attached to a review.reviewVideoUrlsVideo URLs attached to a review.ownerResponseTextThe owner's public reply, when there is one.ownerResponseDateISO 8601 owner-reply date; place mode needs enrichReviewerProfiles, reviewer mode always has it.ownerResponseDateOriginalThe owner-reply date as Google prints it.ownerResponseTextTranslatedGoogle's translation of the owner's reply.visitDateWhen the reviewer visited, when Google shows it.contextLabels'Label: value' strings built from Google's structured review details.reviewContextGoogle's structured review details (meal type, price per person, dishes or items mentioned, and so on).subRatingsGoogle's numeric sub-ratings such as food or service, out of 5.businessNameName of the place.businessRatingThe place's average rating.businessTotalReviewsHow many reviews Google shows for the place.businessCategoryThe place's main category.businessCategoriesAll of the place's categories.businessAddressThe place's address.businessLatitudeThe place's latitude.businessLongitudeThe place's longitude.placeNameName of the reviewed place (reviewer mode).placeAddressAddress of the reviewed place (reviewer mode).placeLatitudeLatitude of the reviewed place (reviewer mode).placeLongitudeLongitude of the reviewed place (reviewer mode).placeCategoryCategory of the reviewed place (reviewer mode).placeRatingRating of the reviewed place (reviewer mode).placeTotalReviewsReview count of the reviewed place (reviewer mode).placePriceRangePrice range of the reviewed place (reviewer mode).placeIdGoogle's Place ID (ChIJ...) when available.featureIdGoogle Maps feature ID (0x...:0x...).cidGoogle's customer ID (CID) for the place.kgmidGoogle's Knowledge Graph ID for the place.placeUrlGoogle Maps URL of the place.sourceUrlThe input that produced this record.orderPosition of the review in this place's collected output, starting at 1.positionPosition of the review in Google's list (reviewer mode).sortByThe sort order that was requested.sortConfirmedTrue when the feed's order matched the requested sort. False means the actor delivered what Google returned (for example the 188-per-star rating window).sortStatusconfirmed or unconfirmed.scrapedAtISO 8601 time when the run collected the record.reviewUrlGoogle Maps URL of the review.reviewReportUrlGoogle's report-this-review URL.searchQueryThe search query that found the place (search mode).searchRankThe place's rank in the search results (search mode).partnerSourceFor partnerReview records: the partner site Google syndicates the review from, such as Tripadvisor or Trip.com.partnerReviewIdFor partnerReview records: the review's ID on the partner site.ratingHistogramPlace summary: how many reviews the place has for each star rating.reviewTopicsPlace summary: Google's review topic chips and how many reviews mention each.phonePlace summary: the place's phone number.websitePlace summary: the place's website.timezonePlace summary: the place's time zone.countryCodePlace summary: the place's country code.descriptionPlace summary: Google's description of the place.openingHoursPlace summary: opening hours per weekday.partnerReviewsPlace summary: partner sites Google lists for the place, with rating, scale, review count, link and a sample review.reviewsRemovedNoticePlace summary: Google's notice that reviews were removed after legal complaints.statusPlace or contributor summary: ok, noReviews, notFound, invalid or partial.statusReasonPlace or contributor summary: plain-language explanation of the status.reviewsDeliveredPlace or contributor summary: how many reviews this run delivered.reviewsScannedPlace summary: how many reviews the actor read before stopping.stopReasonPlace summary: why collection stopped, such as requestedCountReached, allReviewsCollected, dateCutoffReached or sourceStoppedResponding.partnerReviewsDeliveredPlace summary: how many partner-site reviews this run delivered (with includePartnerReviews on).
How it differs from the other Google Maps Actors
Among the 17 catalogue Actors for Google Maps with a published schema, only this one returns reviewerId, reviewerSubtitle, reviewerLocalGuideLevel, contributorLocalGuideLevel, contributorPoints, contributorTotalReviews, reviewCreatedAt, isEdited.
Pick another Actor if you need
| Actor | Fields it adds | Price / 1K |
|---|---|---|
| Google Maps Business Lead Finder with Email & Social Links | title, categoryName, emails, emailsMxValid | $0.99 |
| Google Maps Popular Times & Live Busyness Scraper | profileImageUrl, isOpenNow, popularTimesHasData, popularTimesAvailable | $0.99 |
| Google Maps Business Finder with Hours, Ratings & Location | categoryName, priceLevel, isOpenNow, googleMapsUrl | $0.99 |
| Google Maps Radius Search Around a Coordinate | categoryName, distanceFromCenter, googleMapsUrl, priceLevel | $0.99 |
| Google Maps Top List & Ranked Places Extractor | listSource, categoryName, priceLevel, highlights | $0.99 |
Input
| Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| mode | string | No | place | Reviews of places you list, reviews of places found by a search, or everything specific Google reviewers have published. |
| placeUrls | array | No | – | Google Maps place links or IDs, one per line. Accepted: place links (also shared maps.app.goo.gl, goo.gl, g.page and share.google links, ?cid= links and review links), Place IDs starting with ChIJ, feature IDs like 0x89c259ab3c1ef289:0x3b67a41175949f55 and numeric CIDs. Used when collecting reviews |
| searchQueries | array | No | – | Google Maps searches such as "dentists in Austin, TX" or "ramen Shibuya Tokyo". Include a city or area in each search. Used when finding places by search. |
| maxPlacesPerQuery | integer | No | 20 | How many places to take from each search. One Google search lists about 120 to 360 places; when you ask for more, the actor also searches sub-areas of the same region to reach them. |
| contributorUrls | array | No | – | Google Maps reviewer profile links (for example https://www.google.com/maps/contrib/108763873723673205857, or a shared maps.app.goo.gl profile link) or numeric reviewer IDs. Used when collecting everything specific reviewers have written. |
| maxReviews | integer | No | 50 | Upper limit of reviews collected for each place, or for each reviewer. Google publishes up to 200 contributions per reviewer. |
| sortBy | string | No | newest | Order of a place's reviews. Newest first and most relevant reach a place's complete review history; Google lists at most 188 reviews per star level in rating order. |
| language | string | No | en | Language of Google Maps labels such as "2 weeks ago". Reviews written in another language also come with Google's translation into this language. |
| reviewsNewerThan | string | No | – | Keep reviews dated on or after this day, for example 2026-01-01, or a period such as 30 days. Reviews are then read newest first. |
| reviewsOlderThan | string | No | – | Keep reviews dated on or before this day. Combine with "Only reviews from" for a date range. |
Show the other 13 settings
| Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| keyword | string | No | – | Words a review must mention, for example "parking" or "long wait". For places this uses Google's own review search, which also matches close word forms. |
| starRatings | array | No | – | Keep only reviews with these star ratings. Leave empty for all ratings. |
| onlyWithText | boolean | No | false | Skip star-only reviews that have no written text. |
| ownerReplyFilter | string | No | any | Keep all reviews, only reviews the business replied to, or only reviews still without a reply. |
| onlyWithPhotos | boolean | No | false | Keep only reviews that include photos or videos. |
| reviewLanguages | array | No | – | Keep only reviews written in these languages, as two-letter codes such as en, es, ko. Leave empty for all languages. |
| monitoringKey | string | No | – | Give scheduled runs the same name, for example my-restaurants. Each run then returns only reviews added or edited since the previous run with that name. |
| includePlaceSummary | boolean | No | false | Adds one record per place with its rating breakdown by stars, review topics, location, contact details and how many reviews were collected. These records have recordType "place". |
| includeContributorSummary | boolean | No | false | Adds one record per reviewer with their Local Guide level, points and lifetime contribution counts. These records have recordType "contributor". |
| includeReviewerDetails | boolean | No | true | Turn off to leave out reviewer names, profile pictures, profile links and reviewer IDs from place reviews. |
| enrichReviewerProfiles | boolean | No | false | For place reviews, also open each reviewer's public profile to add likes, first-published and edited dates, view counts, owner-reply dates and the reviewer's Local Guide level. Adds one request per reviewer. Reviews by private profiles, or older than a reviewer's 200 most recent contributions, keep |
| includePartnerReviews | boolean | No | false | Hotels on Google Maps also show reviews from partner sites such as Tripadvisor, Trip.com or Priceline. Turn on to add those reviews as separate records (recordType partnerReview), up to Max reviews per partner site, newest first. Places without partner reviews are not affected. |
| includePhotoDetails | boolean | No | false | For place reviews with photos or videos, add the width, height and upload date of each one. Adds one request per photo. |
Example input
Built from the input form's published example values and defaults.
{
"mode": "place",
"placeUrls": [
"https://www.google.com/maps/place/Eiffel+Tower/@48.8583701,2.2944813,17z/data=!3m1!4b1!4m6!3m5!1s0x47e66e2964e34e2d:0x8ddca9ee380ef7e0!8m2!3d48.8583701!4d2.2944813!16zL20vMDJqODE"
],
"maxPlacesPerQuery": 20,
"maxReviews": 5,
"sortBy": "newest",
"language": "en",
"onlyWithText": false,
"ownerReplyFilter": "any",
"onlyWithPhotos": false,
"includePlaceSummary": false,
"includeContributorSummary": false,
"includeReviewerDetails": true,
"enrichReviewerProfiles": false,
"includePartnerReviews": false,
"includePhotoDetails": false
} Run it from code or an AI agent
The same run through the Apify API, with the example input. You need an Apify API token; the run is billed to your account at the Store price.
Python
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"mode": "place",
"placeUrls": [
"https://www.google.com/maps/place/Eiffel+Tower/@48.8583701,2.2944813,17z/data=!3m1!4b1!4m6!3m5!1s0x47e66e2964e34e2d:0x8ddca9ee380ef7e0!8m2!3d48.8583701!4d2.2944813!16zL20vMDJqODE"
],
"maxPlacesPerQuery": 20,
"maxReviews": 5,
"sortBy": "newest",
"language": "en",
"onlyWithText": False,
"ownerReplyFilter": "any",
"onlyWithPhotos": False,
"includePlaceSummary": False,
"includeContributorSummary": False,
"includeReviewerDetails": True,
"enrichReviewerProfiles": False,
"includePartnerReviews": False,
"includePhotoDetails": False
}
run = client.actor("nimbryxo-studio/google-maps-review-and-contributor-activity").call(run_input=run_input)
if run is None:
raise RuntimeError("The Actor run was not found.")
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item) pip install apify-client
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "<YOUR_APIFY_TOKEN>" });
const input = {
"mode": "place",
"placeUrls": [
"https://www.google.com/maps/place/Eiffel+Tower/@48.8583701,2.2944813,17z/data=!3m1!4b1!4m6!3m5!1s0x47e66e2964e34e2d:0x8ddca9ee380ef7e0!8m2!3d48.8583701!4d2.2944813!16zL20vMDJqODE"
],
"maxPlacesPerQuery": 20,
"maxReviews": 5,
"sortBy": "newest",
"language": "en",
"onlyWithText": false,
"ownerReplyFilter": "any",
"onlyWithPhotos": false,
"includePlaceSummary": false,
"includeContributorSummary": false,
"includeReviewerDetails": true,
"enrichReviewerProfiles": false,
"includePartnerReviews": false,
"includePhotoDetails": false
};
const run = await client.actor("nimbryxo-studio/google-maps-review-and-contributor-activity").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items); npm install apify-client
cURL
curl -X POST "https://api.apify.com/v2/actors/nimbryxo-studio~google-maps-review-and-contributor-activity/run-sync-get-dataset-items" -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" -d '{"mode":"place","placeUrls":["https://www.google.com/maps/place/Eiffel+Tower/@48.8583701,2.2944813,17z/data=!3m1!4b1!4m6!3m5!1s0x47e66e2964e34e2d:0x8ddca9ee380ef7e0!8m2!3d48.8583701!4d2.2944813!16zL20vMDJqODE"],"maxPlacesPerQuery":20,"maxReviews":5,"sortBy":"newest","language":"en","onlyWithText":false,"ownerReplyFilter":"any","onlyWithPhotos":false,"includePlaceSummary":false,"includeContributorSummary":false,"includeReviewerDetails":true,"enrichReviewerProfiles":false,"includePartnerReviews":false,"includePhotoDetails":false}' Waits for the run and returns the dataset items (runs over 300 seconds return HTTP 408; start an async run instead).
MCP (AI agents)
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=nimbryxo-studio/google-maps-review-and-contributor-activity",
"headers": {
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
}
}
}
} Adds this Actor as a tool in an MCP client that takes a remote server URL (Cursor, VS Code, Claude Code) through Apify's hosted MCP server. OAuth sign-in also works without the header. Clients that only start local servers can wrap the URL with npx mcp-remote.
What a run costs
The result rate falls on higher Apify plans. Each figure is the published per-result rate times the number of results.
| Apify plan | Per 1,000 | 10,000 results | 100,000 results |
|---|---|---|---|
| Free plan | $0.99 | $9.90 | $99 |
| Starter plan | $0.82 | $8.20 | $82 |
| Scale plan | $0.66 | $6.60 | $66 |
| Business plan | $0.49 | $4.90 | $49 |
- Every run also has a start event, charged per GB of memory (minimum one): $0.10 on Free, $0.03 on Business. At its default memory of 4 GB a run starts at $0.40 on Free. Fewer, larger runs keep this small.
- The Free plan includes $5 of monthly usage (Apify pricing, checked 2026-11-11); at the Free rate that covers at most about 5,050 results, less start events and platform usage.
- Worked example: 10,000 results in one run on the Free plan cost $10.30 ($9.90 for results + $0.40 start), plus Apify platform usage (compute), billed separately by Apify.
- Pay per event. Platform usage (compute) is billed by Apify on top of the event prices. Compare other tools in the cost estimator.
Where it fits among Google Maps routes
It ranks 1 of 17 catalogue Actors for Google Maps on the published formula (fields, price, reliability, freshness). Its line is highlighted on the map.
- 1 Google Maps Review & Contributor Activity Scraper 96 output fields, pay per event 9 of 9 core fields
$0.99 / 1K - 2 Google Maps Business Lead Finder with Email & Social Links 34 output fields, pay per event 7 of 9 core fields
$0.99 / 1K - 3 Google Maps Popular Times & Live Busyness Scraper 46 output fields, pay per event 7 of 9 core fields
$0.99 / 1K - 4 Google Maps Business Finder with Hours, Ratings & Location 55 output fields, pay per event 8 of 9 core fields
$0.99 / 1K - + 7 other Store tools, combined Reference only 9 of 9 core fields
from $0.04 / 1K - API Google Maps Platform Places API Public API fields not compared
Stops are fields. A ring means the field is in that route's published output schema; no ring means the line passes without it. Bold labels are the core fields for this website, the rest are fields that differ between routes. A white capsule means every data line stops there. The red line is the official API; its field coverage is not compared. A crossed red line means there is no open official API.
Official route: Google Maps Platform Places API
Public API. The Places API (New) supports text search, nearby search, place details, autocomplete and photos. A billing account and API key are required.
SKU-based pay-as-you-go. Place Details Essentials is $5.00 per 1,000 after 10,000 free calls per month at the published first paid tier; other SKUs differ.
Other Store tools for Google Maps
Reference only, from their public listings.
| Tool | Fields | Price / 1K |
|---|---|---|
| Google Maps Scraper | 94 | $0.50 |
| Google Maps Scraper | 114 | $1.00 |
| Google Maps Reviews Scraper | 56 | $0.60 |
| Google Maps Reviews Scraper | 7 | $0.04 |
| 20+ Million Business Leads With Emails (From Google Maps) | 19 | $1.90 |
What people use it for
- automation
- lead generation
- seo tools
Other catalogue Actors for Google Maps
Google Maps Business Lead Finder with Email & Social Links
Search Google Maps by business type and location and get back listing details enriched with email addresses and social profiles pulled from each…
Google Maps Popular Times & Live Busyness Scraper
Scrape Google Maps Popular Times: hourly busy hours, live busyness vs usual, open/closed status, newest reviews with closure mentions and…
Google Maps Business Finder with Hours, Ratings & Location
Find public Google Maps businesses by search term or place URL and get name, address, phone, website, category, rating, review count, hours and…
Google Maps Radius Search Around a Coordinate
Find Google Maps places within a set radius of an exact latitude/longitude, with rating, reviews, address, phone, website, coordinates, and…
Google Maps Top List & Ranked Places Extractor
Pull the ranked places from a Google Maps Top list query like 'Top hotels in Paris', or from a list/search URL, with optional full place-page…
Google Maps Grid-Based Market Saturation Scanner
Cover a bounding box, circle, or custom polygon with a search grid to collect every business Google Maps exposes for a query, well beyond the…
Similar Actors
Google Maps Address & Coordinate Geocoding Lookup
Convert addresses to coordinates or coordinates back to addresses using Google Maps, in batch, with structured address components, place IDs, plus…
Bing Maps Local Business Finder
Find restaurants, shops, hotels, and other local businesses on Bing Maps by keyword and city, or by a precise latitude/longitude and radius, with…
Yandex Maps Business Search, Details & Reviews Scraper
Search Yandex Maps by keyword, fetch full business details, or collect customer reviews - with address, phone, rating, working hours, photos,…
Google Maps Business Search & Reviews MCP Server
Search Google Maps businesses or pull reviews for a specific place through one actor, usable as a normal run or as an MCP tool for AI agents.…
Google Maps Photo Gallery Extractor by Category
Collect public photos and videos from Google Maps places by URL, Place ID, feature ID, CID or search query. Each row carries the image and video…
Google Maps Related Place & Competitor Finder
Find the related and 'people also search for' places Google Maps shows on a business, hotel, or landmark page. Get each related place's name,…
Questions people ask
How much does Google Maps Review & Contributor Activity Scraper cost?
The published result rate depends on your Apify plan: $0.99 per 1,000 on Free, $0.82 per 1,000 on Starter, $0.66 per 1,000 on Scale, $0.49 per 1,000 on Business. So 10,000 results cost about $9.90 on the Free plan and $4.90 on Business, plus a start fee of $0.10 per run per GB of memory on Free. Platform usage is billed separately.
What data does Google Maps Review & Contributor Activity Scraper return?
Its published output schema lists 96 fields: recordType, reviewId, reviewerName, reviewerAvatarUrl, reviewerProfileUrl, reviewerId, reviewerSubtitle, reviewerTotalReviews, reviewerPhotoCount, reviewerLocalGuideLevel, reviewerIsLocalGuide, contributorId, and 84 more. A listed field is not guaranteed to be filled in every row.
What input does Google Maps Review & Contributor Activity Scraper need?
No input is strictly required; the defaults run as is. Common settings: mode, placeUrls, searchQueries, maxPlacesPerQuery, contributorUrls, maxReviews.
What are the alternatives to Google Maps Review & Contributor Activity Scraper for Google Maps?
17 catalogue Actors cover Google Maps. Close alternatives: Google Maps Business Lead Finder with Email & Social Links; Google Maps Popular Times & Live Busyness Scraper; Google Maps Business Finder with Hours, Ratings & Location. The Google Maps page compares all of them field by field.
How do I run Google Maps Review & Contributor Activity Scraper from Python or the API?
Use the Apify API client: in Python, ApifyClient(token).actor("nimbryxo-studio/google-maps-review-and-contributor-activity").call(run_input=...), then read the run's default dataset (run.default_dataset_id); in JavaScript the same call is client.actor("nimbryxo-studio/google-maps-review-and-contributor-activity").call(input). Without a client, POST the input JSON to https://api.apify.com/v2/actors/nimbryxo-studio~google-maps-review-and-contributor-activity/run-sync-get-dataset-items with your API token. Ready-to-paste code with the example input is on this page.
Sources
- Google Maps Review & Contributor Activity Scraper on Apify Store
- Published build with input and output schema (JSON)
- Google Maps Platform Places API documentation
Cite this page
Scraper Finder. "Google Maps Review & Contributor Activity Scraper." https://scraperfinder.com/catalogue/google-maps-review-and-contributor-activity/ (data checked 2026-11-12).
Run Google Maps Review & Contributor Activity Scraper
$0.99 per 1,000 results. Paste the example input above, set your Google Maps query, then export the dataset. Still choosing? Compare every Google Maps route.