Google Maps Contributor Reviews Scraper (Local Guides)
Pricing
from $1.20 / 1,000 contributor profiles
Google Maps Contributor Reviews Scraper (Local Guides)
Scrape Google Maps contributor reviews, reviewer profiles, and Local Guide histories in <2s. Paste any Google Maps business place URL, search query, review link, or contributor URL to extract all reviews, reviewer ratings, levels, photos, owner replies & fake review audit data. MCP & AI Agent ready.
Pricing
from $1.20 / 1,000 contributor profiles
Rating
0.0
(0)
Developer
UnitBytes | Enterprise Web Data
Maintained by CommunityActor stats
0
Bookmarked
17
Total users
10
Monthly active users
a day ago
Last modified
Categories
Share
🗺️ Google Maps Contributor & Local Guide Reviews Scraper
🎁 Free Trial Included: Test free with your Apify starter credits — extract hundreds of contributor reviews with zero commitment!
| ⚡ UnitBytes · Google Maps & Local Business Reputation Ecosystem | ||
|
🗺️ Contributor Profiles 📍 You are here Full review history & levels |
🔍 Reviews Change Tracker Status & Takedowns Detect deleted & edited reviews |
📸 Photos, Menus & Videos Places & Local Guides Original =s0 images, menus, MP4s & views |
🚀 Extract any Google Maps Contributor & Local Guide profile and up to 200 reviews directly into Excel, CSV, or Google Sheets in under 2 seconds.
[!TIP] 💡 Don't know how to get a Contributor URL? No problem — we find them for you automatically!
You don't need to dig for/maps/contrib/profile links yourself. Simply type any Business Search Query (e.g."Katz's Delicatessen New York"), paste a Google Maps Business Place URL (/maps/place/...), or paste a Review Share Link (/maps/reviews/...), and this Actor automatically discovers the Contributors & Local Guides on that business (up to 10,000 contributors per place, with optional server-sidekeywordfiltering!) and extracts each contributor's entire profile, Local Guide level, and up to 200 lifetime reviews!
(Already have Contributor URLs/maps/contrib/...or 21-digit User IDs? Paste those directly too!)
- Type a Business Search Query, Paste a Place URL, or Paste a Contributor Link (
"Katz's Delicatessen New York",/maps/place/...,/maps/contrib/..., Review Link, or numeric User ID) - Click Start — and download your ready-to-use Excel (.xlsx), CSV, or JSON spreadsheet in seconds!
⭐ Loving this Scraper?
If this tool saved you hours of work, please support us with a 5-Star Rating on the Apify Store! It directly helps us keep this tool actively maintained and updated.💬 Need Help, Custom Enhancements, Bug Reports, or Bulk Scraping?
Have a question, want a specific data format, or encountered a bug? Email us directly atcontact@unitbytes.comor open a ticket in the Apify Issues Tab — we respond fast!
⭐ Why Users Love This Google Maps Contributor Scraper:
- ⚡ Lightning Fast: Extracts complete Contributor & Local Guide stats and up to 200 reviews in ~1.5 seconds with zero freezing or timeouts.
- 📊 100% No-Code & Spreadsheet Ready: Open directly in Microsoft Excel, Google Sheets, or CSV with clean, flat columns.
- 🏆 Complete Local Guide Intelligence: Uncover Local Guide Level (1–10), total points, next tier target, official badges, and 11 lifetime contribution counters.
- 🔄 1-Step Business Place Discovery (
/maps/place/...): Paste a business URL or search query to automatically discover up to 10,000 contributors on that listing and extract each contributor's full review history. - 🔗 Verified Review Permalinks & Report Links: Direct clickable URLs leading straight to every review on Google Maps (
review_permalink) plus 1-click Google dispute links (review_report_url). - 📍 Full Location Details: Complete place names, business categories, street addresses, city, country, price range, GPS coordinates, and direct place links.
- 💰 Fair Pay-Per-Event ($0.00 on Private Profiles): Pay only for public data extracted. Zero subscription lock-in and $0.00 charged for private or missing contributor profiles.
❓ What Problem Does This Solve?
Google Maps offers no export button to inspect Google Maps Contributor profiles, audit Local Guide history, or retrieve all reviews written by a specific contributor. Whether you are building Local Guide influencer lists, mapping customer journeys, or auditing suspicious 1-star contributors, manual analysis is impossible at scale.
This Actor accepts Google Maps Contributor URLs (/maps/contrib/...), reviews/photos tab links, share shortlinks (maps.app.goo.gl/...), numeric 21-digit User IDs, Business Place URLs (/maps/place/...), or Direct Review Links (/maps/reviews/...) and delivers clean, structured data ready for Excel, CSV, or database storage:
- 🏆 Local Guide Intelligence: Uncover Local Guide Level (1 to 10), total points, target points needed for the next level, and official badge icons.
- 📊 Lifetime Contribution Counters: Public counts of written reviews, star ratings, uploaded photos, videos, captions, community answers, Q&A, new places added, roads added, and approved map edits.
- 👤 Contributor Profile Identity: Public display name, high-res avatar photo, canonical contributor URL, and verified 21-digit contributor ID.
- 📜 Full Contributor Reviews History: Detailed review text, star ratings (1–5), direct permanent review links, 1-click policy report links, publication dates, and attached high-resolution photos.
- ⏰ Exact Dates, Timestamps & Edit Detection: Microsecond-precision epoch timestamps, ISO 8601 UTC dates (
review_datetime_utc), and automatic post-publication edit flags (is_review_edited). - 📍 Place & Location Details: Place name, business category, street address, city, country, timezone, Knowledge Graph ID, price range, GPS coordinates, and direct place links.
- 🍽️ Dining & Experience Aspects: Contributor-reported dining mode (Dine-in / Takeout), meal type (Brunch / Dinner), spend per person, wait time, noise level, and Food / Service / Atmosphere sub-scores.
- 💬 Business Owner Responses: Extracts the business owner's response text and exact reply UTC timestamp whenever a business responded.
- 🛡️ Privacy & Status Detection: Gracefully identifies active contributors (
ACTIVE), private accounts (PRIVATE), and invalid links (NOT_FOUND) without crashing.
🥊 Why Choose This Contributor Scraper? (Feature Comparison)
| Capability | 🗺️ This Actor (UnitBytes) | Other Scrapers | Legacy Tools |
|---|---|---|---|
| Speed | ⚡ ~1.5 seconds per contributor | 10–30s per profile | 1–3 minutes |
| Reliability | 100% Stable (Zero freezing or crashes) | Moderate | Frequently crashes or times out |
| Spreadsheet Ready | ✅ Excel (.xlsx), CSV, Google Sheets | ⚠️ JSON only | ⚠️ Inconsistent columns |
| Complete Local Guide Metrics | ✅ Level 1–10, points, next tier, badge & 11 counters | ⚠️ Partial | ❌ Often missed |
| 1-Step Business Place Discovery | ✅ Search query or /maps/place/... (up to 10,000 contributors) | ❌ Single place only | ❌ Manual copy-pasting |
| Exact Review Timestamps | ✅ Exact UTC timestamp, epoch ms & Edit detection | ❌ Fuzzy text only ("3 weeks ago") | ❌ Fuzzy text only |
| Direct Review Permalinks | ✅ Yes (review_permalink + review_report_url) | ❌ Missing | ❌ Missing |
| Direct Place Links & Details | ✅ Place URL, city, country, price & GPS | ❌ Basic name only | ⚠️ Incomplete |
| Review Aspects & Sub-scores | ✅ Food, service, atmosphere, spend & meal type | ❌ Missing | ❌ Missing |
| Review Photo URLs | ✅ Complete high-res photos array | ⚠️ Partial | ❌ Omitted |
| Business Owner Replies | ✅ Full reply text & exact UTC timestamp | ⚠️ Inconsistent | ❌ Missing |
| Pricing Model | 💰 Fair Pay-Per-Event ($0.00 for private profiles) | High monthly fees | High server compute costs |
📦 Two Flexible Export Formats
You can choose your preferred output structure under the Output Format setting:
1. flattened (Default — 1 Row per Review)
- Best for: Microsoft Excel, Google Sheets, CSV, Airtable, or SQL databases.
- Ready to Open: Each row contains a single review together with the contributor's full profile information and Local Guide metrics. Non-technical users get clean, readable spreadsheet columns without needing to parse nested data.
- Automatic Handling: If a contributor has 50 reviews, it produces 50 spreadsheet rows. If a contributor profile is private or has 0 reviews, it outputs 1 row with their public profile stats and
status: "PRIVATE"at $0.00 review charge.
2. nested (1 Document per Contributor)
- Best for: Developers, APIs, JSON exports, and CRM pipelines.
- Clean Document Hierarchy: Each document represents 1 contributor profile containing a complete
reviews: [...]list of all their reviews. Ideal for storing contributor profiles as distinct documents in MongoDB, PostgreSQL (JSONB), or feeding directly into custom web applications. - Python & Data Science: Easy to group or iterate by contributor profile without deduplicating profile metadata.
Spreadsheet Columns / Fields (70+ Enriched Contributor & Review Fields)
| Field Name | Type | Description |
|---|---|---|
contributor_name | string | null | Public display name of the Google Maps contributor |
contributor_id | string | Google Maps 21-digit numeric contributor user ID |
contributor_url | string | Direct canonical link to the contributor profile |
avatar_url | string | null | Contributor profile avatar image URL |
is_local_guide | boolean | true if the contributor is a verified Google Local Guide |
local_guide_level | integer | null | Local Guide tier (1 to 10) |
local_guide_points | integer | null | Total accumulated Local Guide points |
points_to_next_level | integer | null | Points needed to reach the next tier |
points_away_from_next_level | string | null | Points away progress text (e.g. "6,881 points away from Level 8") |
current_level_min_points | integer | null | Minimum points threshold for current tier |
next_level_target_points | integer | null | Target points needed for next tier |
badge_url | string | null | Official Local Guide badge icon link |
next_level_badge_url | string | null | Official Local Guide badge icon link for the next tier |
total_reviews_count | integer | null | Lifetime written reviews contributed |
total_ratings_count | integer | null | Lifetime star ratings submitted without text |
total_photos_count | integer | null | Total photos contributed |
total_videos_count | integer | null | Total videos contributed |
total_captions_count | integer | null | Total photo captions contributed |
total_answers_count | integer | null | Total community answers contributed |
total_edits_count | integer | null | Total approved map edits contributed |
total_places_added_count | integer | null | Total new places added to Google Maps |
total_roads_added_count | integer | null | Total new roads added to Google Maps |
total_qa_count | integer | null | Total community Q&A contributions |
total_reported_incorrect_count | integer | null | Total incorrect listings reported |
is_private | boolean | true if the contributor profile has private/restricted contributions |
status | string | "ACTIVE", "PRIVATE", "NOT_FOUND", or "UNKNOWN" |
review_id | string | null | Unique Google Maps review ID |
place_name | string | null | Name of the reviewed business or landmark |
place_category | string | null | Business category (e.g. "Cafe", "Restaurant") |
place_category_slug | string | null | Machine slug for business category (e.g. "cafe", "thai_restaurant") |
place_address | string | null | Full physical street address |
place_street_address | string | null | Street line without city or zip code |
place_id | string | null | Google Place ID (CID) |
place_url | string | null | Direct Google Maps link to the reviewed business |
place_cover_photo_url | string | null | High-resolution cover photo link of the business |
place_city | string | null | City of the reviewed place |
place_country | string | null | Country of the reviewed place |
place_country_code | string | null | Country code (e.g. "US", "GB") |
place_timezone | string | null | IANA timezone (e.g. "America/New_York") |
place_kgmid | string | null | Google Knowledge Graph entity ID (e.g. "/g/11bwh5xyjm") |
place_price_range | string | null | Price level or cost per person (e.g. "$10–20") |
latitude | float | null | GPS latitude |
longitude | float | null | GPS longitude |
stars | integer | null | Star rating given (1 to 5) |
review_date | string | null | Relative review date (e.g. "a week ago", "3 months ago") |
review_timestamp | integer | null | Exact Unix timestamp in milliseconds (e.g. 1788632301325) |
review_datetime_utc | string | null | Exact publication ISO 8601 UTC timestamp (e.g. "2026-09-05T18:18:21+00:00") |
is_review_edited | boolean | true if contributor modified their review after publication |
review_created_timestamp | integer | null | Initial publication timestamp in milliseconds |
review_created_datetime_utc | string | null | Initial publication ISO 8601 UTC date |
review_updated_timestamp | integer | null | Last-edited timestamp in milliseconds |
review_updated_datetime_utc | string | null | Last-edited ISO 8601 UTC date |
review_text | string | null | Full text content of the review |
review_language | string | null | Detected review language code (e.g. "en", "es") |
review_permalink | string | null | Direct Google Maps permalink to this specific review |
review_report_url | string | null | Direct Google dispute URL to report review for policy violations |
contrib_place_url | string | null | Contributor place URL on Google Maps |
photos | array | High-resolution photo URLs attached to this review |
dining_mode | string | null | Dining mode reported by contributor ("Dine in", "Take out", "Delivery") |
meal_type | string | null | Meal type reported by contributor ("Brunch", "Dinner", "Lunch") |
spend_per_person | string | null | Reported spend per person range (e.g. "$50–60") |
food_rating | integer | null | Guided food quality rating (1 to 5) |
service_rating | integer | null | Guided service rating (1 to 5) |
atmosphere_rating | integer | null | Guided atmosphere rating (1 to 5) |
wait_time | string | null | Reported wait time ("No wait", "15–30 min") |
noise_level | string | null | Reported noise level ("Quiet", "Moderate", "Loud") |
seating_type | string | null | Reported seating type ("Outdoor seating", "Indoor dining") |
reservation_policy | string | null | Reported reservation requirement ("Reservations required", "Walk-in") |
group_size | string | null | Reported party size ("Solo", "2 people", "Group of 4+") |
vegetarian_recommended | string | boolean | Vegetarian recommendation |
review_aspects | object | Complete dictionary of all guided review questions and answers |
has_owner_reply | boolean | true if the business owner replied to this review |
owner_reply | string | null | Text of the business owner's response |
owner_reply_date | string | null | Relative date of the business owner's reply |
owner_reply_timestamp | integer | null | Exact owner reply Unix timestamp in milliseconds |
owner_reply_datetime_utc | string | null | Exact owner reply ISO 8601 UTC timestamp |
owner_reply_language | string | null | Detected language code of owner reply (e.g. "en") |
error | string | null | Error details if applicable |
timestamp | string | ISO 8601 scrape timestamp |
🎯 High-Value Use Cases
🌟 Local Guide Influencer & Brand Ambassador Outreach
Identify high-tier Google Local Guides (Levels 6–10) in your city or industry:
- Inspect their review style, photo uploads (
total_photos_count), and place preferences. - Discover trusted community food critics, local photographers, and micro-influencers who actively shape local purchasing decisions.
🛡️ Contributor Audit, Review Fraud Detection & Reputation Defense
Audit contributors behind 1-star reviews to verify account legitimacy before responding or filing removal disputes:
- 1-Step Business Place Discovery: Paste any Business Place URL (
/maps/place/...), Business Search Query, or Direct Review Link (/maps/reviews/...) to automatically discover up to 10,000 contributors on a listing (placeSort: "negative_and_newest"or"negative") and audit up to 200 of each contributor's lifetime reviews. - Quickly differentiate between authentic Local Guides with hundreds of verified contributions and fake burner accounts (
total_reviews_count: 1) or competitor accounts. - Export exact microsecond timestamps (
review_datetime_utc), review permalinks (review_permalink), and 1-click Google dispute links (review_report_url).
🏢 Competitor Intelligence & Customer Journey Mapping
- Track where else your contributors dine, shop, or visit in your city.
- Uncover how competing business owners handle customer complaints and owner replies (
owner_reply). - Gain deep insight into pricing sensitivity and meal preferences (
spend_per_person,meal_type,food_rating).
📈 Local SEO & Category Benchmarking
- Analyze review keywords used by authoritative Local Guides that trigger high rankings on Google Maps.
- Benchmark your service, food, and atmosphere scores against top competitors in your market.
🔗 Supported Input Formats (No Contributor URL Needed!)
You don't need to find contributor URLs manually — type or paste any of these 10+ Google Maps & Google Search formats into contributors and the Actor automatically discovers and resolves the canonical contributor profile(s):
| # | Input Format | Example Input | Behavior |
|---|---|---|---|
| 1 | Place URL (/maps/place/...) | https://www.google.com/maps/place/Katz's+Delicatessen/... | Auto-discovers up to 10,000 contributors on the business & scrapes up to 200 lifetime reviews each |
| 2 | Business Search Query | Katz's Delicatessen New York | Resolves the business & auto-discovers its contributors |
| 3 | Area / Neighborhood Query | Juhu | Resolves the top reviewable venue in the neighborhood & discovers its contributors |
| 4 | Raw Google Place ID (ChIJ...) | ChIJ6xTXncarw4kRfLnQ-2vdHd4 or place_id:ChIJ... | Decodes the Place ID offline & discovers the place's contributors |
| 5 | Google Search #lrd= Modal Link | https://www.google.com/search?q=McDonalds+NYC#lrd=0x89c2... | Extracts the embedded Feature ID & discovers the business's contributors |
| 6 | writereview?placeid= Link | https://search.google.com/local/writereview?placeid=ChIJ2_... | Decodes the placeid= parameter offline & discovers the business's contributors |
| 7 | g.page/r/<CODE>/review Link | https://g.page/r/CeqMy1fnRzUxEBM/review | Decodes the g.page/r/ Protobuf code offline & discovers the business's contributors |
| 8 | General Contributor Profile | https://www.google.com/maps/contrib/102520373756565203865/reviews (or raw 102520373756565203865) | Scrapes the contributor's full profile, Local Guide metrics & up to 200 lifetime reviews |
| 9 | Mobile Share Shortlink | https://maps.app.goo.gl/wSLNNUnwRAwg1T4W9 | Unwraps redirect to place, review, or contributor & scrapes full contributor profile(s) |
| 10 | Contributor Place Review Link | https://www.google.com/maps/contrib/1025.../place/ChIJ6x... | Scrapes the contributor's full profile & guarantees that specific business review is included |
| 11 | Direct Review Permalink / CID / FID | https://www.google.com/maps/reviews/data=..., ?cid=..., or 0x...:0x... | Resolves review author or business listing automatically |
Note on Private Merchant Admin Links (
https://business.google.com/dashboard/l/...):
If abusiness.google.comlink includes a publiccid=,ftid=, orplaceid=query parameter, the Actor automatically extracts it and scrapes the business's contributors. Bare merchant admin dashboard links without a public Place ID require store-owner login and are safely skipped at $0.00 cost.
⚙️ Input Configuration
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
contributors | array | Yes | Prefilled demo | List of Business Search Queries ("Katz's Delicatessen New York"), Business Place URLs (/maps/place/...), Place IDs (place_id:ChIJ...), Direct Review Links (/maps/reviews/...), Contributor URLs (/maps/contrib/...), numeric User IDs, or maps.app.goo.gl shortlinks. |
maxReviews | integer | No | 10 (Prefill: 50) | Maximum number of reviews to extract per contributor profile (0 to 200). Prefilled at 50 in Console; set to 200 for complete review history (Google's single-query limit). |
scrapeReviews | boolean | No | true | When enabled, extracts the detailed reviews array. If disabled, extracts contributor profile stats and Local Guide metrics only. |
placeSort | string | No | "negative_and_newest" | When a Business Search Query or Business Place URL (/maps/place/...) is provided, choose which contributors to discover: "negative_and_newest" (1★/2★ + newest), "negative" (only 1★ & 2★ contributors), "newest" (most recent first), or "all". |
maxReviewersPerPlace | integer | No | 20 | Maximum number of unique contributors to discover per Business Search Query or Business Place URL (1 to 10,000). |
keyword | string | No | null | Optional server-side review keyword filter (e.g. "pastrami", "scam", "rude", "manager"). When discovering contributors from a Business Place URL or Search Query, only discovers contributors who mentioned this keyword in their review. |
outputFormat | string | No | "flattened" | Choose "flattened" (1 row per review, ready for Excel/CSV) or "nested" (1 document per contributor profile with a reviews: [...] array). |
language | string | No | "en" | Language code for Google Maps localized strings (e.g. "en", "es", "fr", "de"). |
country | string | No | "us" | Country code for localized place info and regional bias (e.g. "us", "gb", "fr", "de"). |
proxyConfiguration | object | No | {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]} | Apify Residential Proxies are enabled by default to avoid rate limits and 403 blocks. |
maxConcurrency | integer | No | 3 | Number of contributor profiles scraped concurrently (1 to 10). |
Example Output Record (Single Row in Excel / JSON)
{"contributor_name": "Reema Mulchandani","contributor_id": "102520373756565203865","contributor_url": "https://www.google.com/maps/contrib/102520373756565203865/reviews","avatar_url": "https://lh3.googleusercontent.com/a-/ALV-UjXc8pSarhgq2xG0mE6F3j...","is_local_guide": true,"local_guide_level": 7,"local_guide_points": 8119,"points_to_next_level": 15000,"points_away_from_next_level": "6,881 points to Level 8","current_level_min_points": 5000,"next_level_target_points": 15000,"badge_url": "https://maps.gstatic.com/mapfiles/localguides/badges/18px/level7.png","next_level_badge_url": "https://maps.gstatic.com/mapfiles/localguides/badges/18px/level8.png","total_reviews_count": 113,"total_ratings_count": 11,"total_photos_count": 878,"total_videos_count": 21,"total_captions_count": 45,"total_answers_count": 557,"total_edits_count": 3,"total_places_added_count": 1,"total_roads_added_count": 0,"total_qa_count": 8,"total_reported_incorrect_count": 0,"is_private": false,"status": "ACTIVE","review_id": "Ci9DQUlRQUNvZENodHljRjlvT2psaGVHNUNWMkpPYlRWVFdqZ3RMVXRmWTJOMk0yYxAB","place_name": "Juhu Cafe","place_category": "Cafe","place_category_slug": "cafe","place_address": "517 Union Blvd Unit B, Totowa, NJ 07512","place_street_address": "517 Union Blvd Unit B","place_id": "ChIJv8t4KBT_wokRCf-EIyWAT54","place_url": "https://www.google.com/maps/place//data=!4m2!3m1!1s0x89c2ff142878cbbf:0x9e4f80252384ff09","place_cover_photo_url": "https://lh3.googleusercontent.com/p/AF1QipN38Xy54W_...","place_city": "Totowa","place_country": "United States","place_country_code": "US","place_timezone": "America/New_York","place_kgmid": "/g/11bwh5xyjm","place_price_range": "$10–20","latitude": 40.901379,"longitude": -74.216956,"stars": 5,"review_date": "2 weeks ago","review_timestamp": 1788632301325,"review_datetime_utc": "2026-09-05T18:18:21+00:00","is_review_edited": false,"review_created_timestamp": 1788632301325,"review_created_datetime_utc": "2026-09-05T18:18:21+00:00","review_updated_timestamp": 1788632301325,"review_updated_datetime_utc": "2026-09-05T18:18:21+00:00","review_text": "Juhu Cafe is a wonderful new addition to the area. The beachy atmosphere is bright and welcoming...","review_language": "en","review_permalink": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sCi9DQUlRQUNvZENodHljRjlvT2psaGVHNUNWMkpPYlRWVFdqZ3RMVXRmWTJOMk0yYxAB!2m1!1s0x0:0x9e4f80252384ff09","review_report_url": "https://www.google.com/local/content/rap/report?postId=Ci9DQUlRQUNvZENodHljRjlvT2psaGVHNUNWMkpPYlRWVFdqZ3RMVXRmWTJOMk0yYxAB","contrib_place_url": "https://www.google.com/maps/contrib/102520373756565203865/place/ChIJv8t4KBT_wokRCf-EIyWAT54","photos": ["https://lh3.googleusercontent.com/grass-cs/ACvplmNaKbdVwMT1TibHnx1u8sfePPuH8hInF7w7ROzAMp5U..."],"dining_mode": "Dine in","meal_type": "Brunch","spend_per_person": "$50–60","food_rating": 5,"service_rating": 5,"atmosphere_rating": 5,"wait_time": "No wait","noise_level": "Quiet","seating_type": "Indoor dining","reservation_policy": "No reservation needed","group_size": "2 people","vegetarian_recommended": true,"review_aspects": {"mode": "Dine in","meal_type": "Brunch","price_range": "$50–60","food_aspect": 5,"service_aspect": 5,"atmosphere_aspect": 5,"wait_time": "No wait","noise_level": "Quiet","seating_type": "Indoor dining","reservation_policy": "No reservation needed","group_size": "2 people","vegetarian_recommended": true},"has_owner_reply": true,"owner_reply": "Thanks so much for such a thoughtful review, Reema! We’re so glad you enjoyed your visit.","owner_reply_date": "2 weeks ago","owner_reply_timestamp": 1788640170000,"owner_reply_datetime_utc": "2026-09-05T20:29:30+00:00","owner_reply_language": "en","error": null,"timestamp": "2026-09-25T11:00:00.000Z"}
🎯 Fair Pay-Per-Event (PPE) Billing
This Actor uses Apify's Pay-Per-Event (PPE) monetization model. You only pay for successful public data extracted, with zero waste on idle server compute:
- Per Active Contributor Profile (
profileevent): Charged per active public contributor profile extracted. Covers full profile identity, Local Guide badges, level, points, and lifetime contribution metrics. - Per Review Extracted (
reviewevent): Scales dynamically based on the exact number of detailed reviews successfully extracted. - Private & Missing Profiles Are $0.00: If a contributor profile is private (
status: "PRIVATE") or does not exist (status: "NOT_FOUND"), you are charged $0.00 (zero profile or review events).
🚀 Quick Start & Developer Integrations
1. No-Code Web Console (Excel, CSV, or Google Sheets)
- Enter a Business Search Query, Place URL, or Contributor Link: Type any business name (e.g.
"Katz's Delicatessen New York"), or paste a Business Place URL (/maps/place/...), Review Link (/maps/reviews/...), Contributor URL (/maps/contrib/...), or 21-digit User ID into thecontributorsbox. - Optional Keyword Filter & Limits: Set
keyword(e.g."pastrami","scam") if you want to filter discovered place contributors by review keyword, setmaxReviewersPerPlace(1to10,000), and keepmaxReviewsat50(or up to200for full historical exports). - Click Start: Hit the green Start button and let the scraper run (~1.5 seconds per contributor profile).
- Export in 1 Click: Under the Export tab, click Excel or CSV to download your ready-to-use spreadsheet.
2. Run via Python (apify-client)
from apify_client import ApifyClient# Initialize the ApifyClient with your API tokenclient = ApifyClient("YOUR_APIFY_API_TOKEN")# Prepare Actor input (mix Business Search Queries, Place URLs, Review Links, or Contributor IDs)run_input = {"contributors": ["Katz's Delicatessen New York","https://www.google.com/maps/contrib/102520373756565203865",],"maxReviewersPerPlace": 20,"keyword": "pastrami", # Optional: only discover contributors mentioning this keyword"maxReviews": 200,"scrapeReviews": True,"outputFormat": "flattened","proxyConfiguration": { "useApifyProxy": True, "apifyProxyGroups": ["RESIDENTIAL"] }}# Run the Actor and wait for it to finishrun = client.actor("unitbytes/google-maps-contributor-scraper").call(run_input=run_input)# Fetch and print results from the datasetfor item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"[{item.get('stars')}★] {item.get('place_name')} - by {item.get('contributor_name')} (Level {item.get('local_guide_level')})")print(f"Review: {item.get('review_text', '')[:60]}...")print(f"Permalink: {item.get('review_permalink')}\n")
3. Run via Node.js / JavaScript (apify-client)
import { ApifyClient } from "apify-client";const client = new ApifyClient({token: "YOUR_APIFY_API_TOKEN",});const input = {contributors: ["https://www.google.com/maps/contrib/102520373756565203865","116847444302916322211"],maxReviews: 200,scrapeReviews: true,outputFormat: "flattened",proxyConfiguration: { useApifyProxy: true, apifyProxyGroups: ["RESIDENTIAL"] }};const run = await client.actor("unitbytes/google-maps-contributor-scraper").call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => {console.log(`[${item.stars}★] ${item.place_name} - by ${item.contributor_name} (Level ${item.local_guide_level})`);console.log(`Permalink: ${item.review_permalink}`);});
4. 🔄 Automated Scheduled Monitoring & Contributor Watchlists
Set up recurring contributor and Local Guide monitoring directly in the Apify Console:
- Navigate to your saved Task or this Actor.
- Click Actions → Schedule Actor.
- Choose your frequency or paste standard cron expressions:
0 8 * * *— Runs Daily at 8:00 AM UTC to audit contributor watchlists.0 */6 * * *— Runs Every 6 hours for rapid-response brand surveillance.0 9 * * 1— Runs Every Monday morning to refresh weekly Local Guide influencer reports.
5. 🗄️ Database & Pipeline Sync (Python, Supabase & PostgreSQL)
Store historical contributor review trails across runs so you can diff changes over time:
from apify_client import ApifyClientfrom supabase import create_clientapify = ApifyClient("YOUR_APIFY_TOKEN")supabase = create_client("YOUR_SUPABASE_URL", "YOUR_SUPABASE_KEY")# Run scraper for watchlist of contributorsrun = apify.actor("unitbytes/google-maps-contributor-scraper").call(run_input={"contributors": ["102520373756565203865"], "maxReviews": 50})# Bulk-upsert into database table on review_idrows = [item for item in apify.dataset(run["defaultDatasetId"]).iterate_items()]supabase.table("google_contributor_reviews").upsert(rows, on_conflict="review_id").execute()print(f"Successfully synced {len(rows)} contributor reviews to Supabase!")
6. 🔌 MCP Server Setup: Claude Code, Cursor & AI Agents
Connect this Actor directly to Claude Code, Claude Desktop, Cursor, or any MCP-compatible AI agent via the hosted Apify MCP server:
{"mcpServers": {"apify": {"type": "http","url": "https://mcp.apify.com/?tools=actors,docs,unitbytes/google-maps-contributor-scraper"}}}
🔗 Related Google Maps Scrapers & Ecosystem
This Actor is a core pillar of the UnitBytes Google Maps Intelligence & Reputation Suite:
| ⚡ UnitBytes · Google Maps & Local Business Reputation Ecosystem | ||
|
🗺️ Contributor Profiles 📍 You are here Full review history & levels |
🔍 Reviews Change Tracker Status & Takedowns Detect deleted & edited reviews |
📸 Photos, Menus & Videos Places & Local Guides Original =s0 images, menus, MP4s & views |
- 🔍 Google Maps Reviews Scraper (
unitbytes/google-maps-reviews-tracker) — Extract up to 10,000 reviews per business or audit specific review URLs to detect deleted or edited reviews with 1-click Google dispute links. - 📸 Google Maps Photos Scraper (Places, Menus, Videos & Guides) (
unitbytes/google-maps-photos-scraper) — Download original full-resolution photos (=s0), restaurant menus, food & drink galleries, playable MP4 videos, 360° Street View, and verified view counts from any Google Maps place or Local Guide. - 🗺️ Google Maps Contributor & Local Guide Reviews Scraper (
unitbytes/google-maps-contributor-scraper) (This Actor) — Export complete contributor profile history, Local Guide levels, badges, ratings, and dining aspects into spreadsheets in under 2 seconds.
❓ Frequently Asked Questions (FAQ)
Q: Do I need programming or coding skills to use this Google Maps Contributor Scraper?
Not at all! This tool is designed for non-technical users, business owners, agency marketers, and data teams alike. You can run everything directly in the Apify Console and download ready-to-open Excel (.xlsx) or CSV files with a single click.
Q: How many reviews can I extract per Google Maps Contributor profile?
The Actor extracts up to your configured maxReviews (0 to 200, prefilled at 50 in Console; set to 200 for full historical review exports) or the total number of public reviews available on the contributor profile in a single fast call (200 is Google's maximum per single contributor query).
Q: Can I enter a Business Search Query, Business Place URL (/maps/place/...), or Review Link directly?
Yes! You don't need to know how to find a Contributor URL. If you type a plain-text Business Search Query (e.g. "Katz's Delicatessen New York"), paste a Google Maps Business Place URL (/maps/place/...), or pass a Place ID (place_id:ChIJ...), the Actor automatically discovers up to maxReviewersPerPlace (up to 10,000 contributors per place, sorted by placeSort: "negative_and_newest", "negative", "newest", or "all", with optional server-side keyword filtering) and scrapes each contributor's full profile and up to 200 lifetime reviews.
Q: Does it extract photos uploaded by contributors?
Yes! Every review object in the dataset includes the full photos: [...] list of high-resolution image URLs attached to that specific review, plus the contributor's avatar and total lifetime photos count (total_photos_count). For full-resolution (=s0) business galleries, restaurant menus, playable MP4 videos, or a contributor's complete photo portfolio with view counts, see our companion Google Maps Photos Scraper (Places, Menus, Videos & Guides).
Q: What happens if a contributor has set their profile to private?
If a contributor has enabled privacy settings on Google Maps, the Actor gracefully identifies this, returns status: "PRIVATE" (is_private: true), extracts all publicly visible metadata (display name, avatar, Local Guide level, points, and contribution counts) with an empty reviews array, and charges $0.00.
Q: Does the official Google Places API provide Contributor profiles or Local Guide levels?
No. The official Google Places API returns at most 5 reviews per business and provides zero endpoint for contributor profiles, Local Guide levels, points, badges, or contributor review histories. This Actor serves as a complete Google Maps Contributor & Local Guide API alternative.
💬 Support, Bugs & Custom Enhancements
Actively maintained and supported. If Google updates contributor layouts, fixes and enhancements are deployed within 24–48 hours.
- 💬 Apify Issues Tab: Open a ticket in Apify Issues
- 📧 Direct Email Support:
contact@unitbytes.com
⚖️ Compliance & Privacy
This Actor extracts strictly publicly available data from Google Maps contributor profiles. It does not log in, bypass authentication walls, or collect private user data. Personal data is protected by regulations such as GDPR and CCPA—see Apify's guide on the legality of web scraping and ensure you have a legitimate basis when processing public reviews and profile data.
Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Google LLC or any of its subsidiaries.