Google Maps Reviews Scraper | $0.25/1K 💰 All 10K Reviews
Pricing
from $0.25 / 1,000 review scrapeds
Google Maps Reviews Scraper | $0.25/1K 💰 All 10K Reviews
Fast, low-cost Google Maps Reviews Scraper ($0.25–$0.35/1K). Extract up to 10,000 reviews per business from Place URLs (/maps/place/...), Search Queries, or Place IDs (ChIJ...). Sort by Newest or Lowest Rating (1-star first), filter by keyword, and export 41 flat fields to Excel, CSV, or JSON.
Pricing
from $0.25 / 1,000 review scrapeds
Rating
0.0
(0)
Developer
UnitBytes | Enterprise Web Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
🔍 Google Maps Reviews Scraper ($0.25–$0.35 / 1K Reviews)
Extract up to 10,000 Google Maps reviews per business from any Place URL (/maps/place/...), Search Query (e.g. "Katz's Delicatessen", "Juhu"), or Place ID (ChIJ...) in seconds.
Sort by Newest, Lowest Rating (1-star first), Highest Rating, or Most Relevant, filter server-side by Keyword, and export 41 structured fields (including reviewer profile, Local Guide status, full text & English translation, review photos, owner replies, GPS coordinates, direct review permalink, and 1-click Google dispute URL) directly to Excel (.xlsx), CSV, or JSON. Also supports verifying individual review share links (maps.app.goo.gl/... and /maps/reviews/data=...) to check if specific reviews are ACTIVE, REMOVED, or is_edited.
🎁 Free Trial Included: Test free with your Apify starter credits — no credit card required!
| ⚡ UnitBytes · Google Maps & Local Business Intelligence Ecosystem | |||
|
🔍 Reviews Scraper ($0.25/1K) 📍 You are here Up to 10,000 reviews/place & keyword filter |
🛡️ Review Takedown Tracker ORM & Removal Proof Check ACTIVE/REMOVED & 1-click dispute links |
🗺️ Contributor Profiles Local Guide Audits Full review history & levels |
📸 Photos, Menus & Videos Places & Local Guides Original =s0 images, menus, MP4s & views |
🚀 How to Use (3 Quick Steps)
- Enter your targets into
reviewsToCheck:- Place URLs, Search Queries, or Place IDs: Paste any Google Maps Business link (
/maps/place/...), Search Query (e.g."Katz's Delicatessen","Juhu"), or Place ID (ChIJ...) to extract up to 10,000 reviews per business. - Sort & Filter (Optional): Choose
reviewsSort(newest,lowest_rating,highest_rating, ormost_relevant) and optionalreviewKeyword(e.g."service","wait time").
- Place URLs, Search Queries, or Place IDs: Paste any Google Maps Business link (
- Click Start (extracts 1,000+ reviews in ~10 seconds with zero startup lag).
- Download your ready-to-use Excel (.xlsx), CSV, or JSON dataset in 1 click!
⭐ Loving this Scraper?
If this tool saved you hours of manual checking, 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 ORM Setup?
Have a question, need custom fields, or encountered an issue? Email us directly atcontact@unitbytes.comor open a ticket in the Apify Issues Tab — we respond fast!
✨ Key Benefits & Superpowers
- 🔍 Dual-Mode Extraction: Scrape up to 10,000 reviews per Business Place URL or Search Query (
/maps/place/...) OR verify specific individual review share links (/maps/reviews/data=...,maps.app.goo.gl/...,/maps/contrib/.../place/...) in the exact same run. - 🗑️ Instant Takedown & Deletion Proof (
is_removed: true): Automatically confirms when a disputed review has been deleted by the author or removed by Google, while preserving the business name, address, and Place CID so ORM agencies have timestamped proof for client invoicing. - 🚨 1-Click Google Policy Dispute Links (
review_report_url): Generates direct Google policy violation report links pre-filled with the review's internalpostId—letting reputation teams flag defamatory reviews in 1 click instead of hunting through thousands of reviews manually. - ✏️ Post-Publication Edit Detection (
is_edited): Compares creation vs. modification timestamps to flag when a customer silently changes their star rating or edits their complaint text (review_modified_timestamp). - 💬 Owner Reply & SLA Auditing (
has_owner_reply): Extracts the business owner's full response text, language, and exact UTC reply timestamp (owner_reply_timestamp) to audit franchise manager response times. - 📊 100% Spreadsheet & VLOOKUP Ready: Every row preserves your exact original
input_urlalongside flat columns—open directly in Microsoft Excel, Google Sheets, or CSV with zero nested[object Object]cells. - ⚡ 10x Faster & Cheaper Than Browser Scrapers: Extracts 1,000+ Place reviews in ~10 seconds and audits 50–100 direct review links per minute on the lightweight 256MB memory tier with Pay-Per-Event billing ($0.00 charged on unsupported links or empty results).
🥊 Why Choose This Scraper? (Feature Comparison)
| Capability | 🔍 This Actor | Generic Place Scrapers | Manual VA Checking |
|---|---|---|---|
Scrape Business Place URLs (/maps/place/...) | ✅ Up to 10,000 reviews/place | ✅ Yes | ❌ Slow copy-paste |
Check Specific Review Links (/maps/reviews/...) | ✅ Yes (direct verification) | ❌ No (cannot check 1 review) | ⚠️ 1 link per minute |
| Detect Deleted / Removed Reviews | ✅ status: "REMOVED" + Business Info | ❌ No way to tell | ⚠️ Manual browser check |
1-Click Google Takedown Link (review_report_url) | ✅ Auto-generated for every review | ❌ Missing | ❌ Must scroll & find review |
Detect Edited Reviews (is_edited) | ✅ Exact modified UTC timestamp | ❌ Missing | ❌ Impossible to spot |
Resolve Mobile Share Links (maps.app.goo.gl) | ✅ Automatic resolution | ❌ Fails on shortlinks | ✅ Manual click |
| Speed | ⚡ 50–100 reviews / minute | 🐢 5–15 reviews / minute | 🐌 30–50 reviews / hour |
| False-Alarm Protection on Errors | ✅ Returns UNKNOWN (never false REMOVED) | ❌ Crashes or misreports | ⚠️ Human error |
| Spreadsheet & VLOOKUP Ready | ✅ Preserves input_url in Excel/CSV | ⚠️ Nested JSON dumps | ✅ Manual entry |
🎯 6 High-Value Use Cases & Business Playbooks
1. 🏢 Online Reputation Management (ORM) & Pay-on-Removal Billing Proof
- Who Uses It: ORM Agencies, Digital PR Consultants, Review Takedown Specialists, Local SEO Agencies.
- The Problem: ORM agencies charge $500–$2,500 per removed negative review on a performance basis. Account managers waste hours every morning opening hundreds of Google Maps links in spreadsheets to see which disputed reviews dropped so billing can invoice the client.
- How This Actor Solves It:
- Automated Proof of Removal: When Google deletes a review, the Actor outputs
status: "REMOVED"andis_removed: truewhile still returning thebusiness_name,business_address,place_cid, andcheck_timestamp—giving you an indisputable audit trail for client invoicing. - 1-Click Takedown Queues (
review_report_url): Scrape a new client's/maps/place/...URL to pull all 1-star and 2-star reviews along with pre-built Google report URLs so your team can submit policy disputes in 1 click per row.
- Automated Proof of Removal: When Google deletes a review, the Actor outputs
2. 🔄 Review Edit & Customer Retraction Tracking (is_edited)
- Who Uses It: Customer Success Teams, Auto Dealerships, Medical Clinics, Hospitality & Hotel Groups.
- The Problem: After resolving a customer complaint, your team asks the customer to update their 1-star review. Did they upgrade it to 5 stars, delete it, or edit the text to be even harsher?
- How This Actor Solves It:
- Automatically compares Google's original creation timestamp against the last-modified timestamp.
- Outputs
is_edited: true, the updatedreview_starsandreview_text, and the exact ISO 8601review_modified_timestamp.
3. ⏱️ Multi-Location Franchise & Owner Reply SLA Auditing
- Who Uses It: Franchise Headquarters, Multi-Location Retail Brands, Property Management Portfolios, CX Directors.
- The Problem: Corporate standards require local store managers to reply to every negative review within 24–48 hours. Auditing 200+ locations manually is impossible.
- How This Actor Solves It:
- Extracts
has_owner_reply,owner_reply,owner_reply_date, and exactowner_reply_timestamp. - Easily calculate response latency (
owner_reply_timestamp - review_timestamp) in Excel or BI dashboards to flag unanswered 1-star reviews.
- Extracts
4. 🕵️ Fake Review & "Burner Account" Fraud Detection
- Who Uses It: Businesses experiencing coordinated review bombing, extortion, or competitor sabotage.
- The Problem: Competitors use click farms or brand-new throwaway accounts to leave 1-star attacks.
- How This Actor Solves It:
- Burner Account Spotting: Flag suspicious reviews where
reviewer_number_of_reviews <= 1. - Serial Attacker Tracking (
reviewer_id): Extracts the permanent 21-digit Google Contributor ID andreviewer_urlso you can identify if the same user is attacking multiple locations (and feed their ID directly into Google Maps Contributor & Local Guide Reviews Scraper to expose their lifetime review history).
- Burner Account Spotting: Flag suspicious reviews where
5. 🔗 Universal Review Link Normalizer & Mobile Shortlink Resolver
- Who Uses It: Developers, Data Engineers, CRM & Automation Builders.
- The Problem: Clients and field staff paste mobile share links (
maps.app.goo.gl/...) into intake forms, which standard APIs cannot query or join to a business database. - How This Actor Solves It:
- Resolves any mobile shortlink or contributor review link into canonical
place_cid(ChIJ...),place_id,review_id, GPS coordinates (business_latitude,business_longitude), city, country, and category.
- Resolves any mobile shortlink or contributor review link into canonical
6. ⚖️ Defamation & Legal Evidence Archiving (Pre-Deletion)
- Who Uses It: Corporate Counsel, Defamation Attorneys, Brand Protection Teams.
- The Problem: If a defamatory review is deleted or edited before legal proceedings, key evidence disappears.
- How This Actor Solves It:
- Captures an immutable structured record including original language text (
review_text_original), English translation (review_text),reviewer_id, high-resolution attached photo links (review_photos), and microsecond creation timestamps.
- Captures an immutable structured record including original language text (
🔗 Supported Input Formats
Paste any combination of these formats into reviewsToCheck—the Actor detects the format and routes each target automatically:
-
Business / Place URLs (
/maps/place/...), Search Queries, or Place IDs (ChIJ...) — Bulk Place Extraction- Place URL:
https://www.google.com/maps/place/Katz's+Delicatessen/@40.722233,-73.987429,17z/ - Plain-Text Place or Location Search Query:
Katz's Delicatessen,JW Marriott Mumbai Juhu,Juhu - Google Place ID / Feature ID / CID:
ChIJ6xTXncarw4kRfLnQ-2vdHd4or0x89c2598f7ff4aa09:0x313547e757cb8cea - Google Search
#lrd=All-Reviews Links:https://www.google.com/search?q=McDonalds+NYC#lrd=0x89c25a177d4bf5db:0x84e51f23e8c0a75c,1,,, - Business
g.page&writereviewLinks:https://g.page/r/CeqMy1fnRzUxEBM/revieworhttps://search.google.com/local/writereview?placeid=ChIJ2_VLfRdawokRXKfA6CMf5YQ
Automatically resolves the business, paginates, and extracts up tomaxReviewsPerPlace(default50, up to10,000) unique reviews sorted byreviewsSortand optionally filtered byreviewKeyword—complete with each review's direct permalink (review_url) and 1-click Google dispute URL (review_report_url).
- Place URL:
-
Contributor Profile Links (
/maps/contrib/<USER_ID>or/maps/contrib/<USER_ID>/reviews) — Reviewer Feed Extraction
https://www.google.com/maps/contrib/102520373756565203865/reviews
Extracts up tomaxReviewsPerPlacepublic reviews written by that contributor across all businesses. -
Direct Review Permalinks (
/maps/reviews/data=...) — Single Review Verification
https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sCi9DQUlRQ...
Verifies whether the specific review isACTIVE,REMOVED, oris_editedand extracts full review and business metadata. -
Contributor Place Review URLs (
/maps/contrib/.../place/...) — Single Review Verification
https://www.google.com/maps/contrib/102520373756565203865/place/ChIJ6xTXncarw4kRfLnQ-2vdHd4
Verifies a specific review directly from a contributor's public place review link. -
Google Maps Share Shortlinks (
maps.app.goo.gl/...) — Auto-Resolving
https://maps.app.goo.gl/wSLNNUnwRAwg1T4W9
Generated via Three Dots (⋮) → Share review → Copy link in the Google Maps app or browser. Automatically resolves to either the specific review or business listing.
🚫 Unsupported URL Formats (Fails Fast at $0.00 Cost)
To protect your credits, the Actor immediately identifies and skips non-public links at $0.00 charge:
- Private Google Business Profile Merchant Dashboard Links (
business.google.com/dashboard/...without a public Place ID): Require private merchant login and cannot be accessed publicly. - Non-Google Domains or Bare Google Homepages (
google.com/without a Place or Review identifier).
⚙️ Input Configuration
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
reviewsToCheck | array of strings | Yes | Prefilled sample | List of Google Maps Business Place URLs (/maps/place/...), Plain-Text Search Queries (e.g., "Katz's Delicatessen", "JW Marriott Mumbai Juhu", "Juhu"), Google Place IDs (ChIJ...), Direct Review Permalinks (/maps/reviews/data=...), Share Shortlinks (maps.app.goo.gl/...), or Contributor Place Review Links (/maps/contrib/.../place/...). Also accepts newline/comma-separated strings or common API aliases (reviewUrls, placeUrls, searchQueries, startUrls, urls). |
maxReviewsPerPlace | integer | No | 50 | Maximum number of reviews to extract when a Google Maps Business Place URL, Place ID, or Search Query is provided (1 to 10,000). Also accepts maxReviews, maxItems, or limit. |
maxPlacesPerQuery | integer | No | 1 | Maximum number of matching businesses to extract reviews for when a search query or /maps/search/... URL is provided (1 to 20). Also accepts maxPlacesPerSearch or maxPlaces. |
reviewsSort | string | No | "newest" | Sort order when scraping Business Place URLs or Search Queries: • "newest" — Newest / Most Recent First (Default)• "lowest_rating" — Lowest Rating / Negative First (1-Star → 5-Star) (Ideal for ORM takedown audits)• "highest_rating" — Highest Rating / Positive First (5-Star → 1-Star)• "most_relevant" — Most Relevant |
reviewKeyword | string | No | "" | Optional server-side keyword filter for Place URLs / Search Queries (e.g., "service", "room", "pastrami", "wait time"). Leave empty to extract all reviews. Also accepts keyword, searchKeyword, filterKeyword, or category. |
language | string | No | "en" | ISO language code (hl) for Google Maps interface and server-side review translation (e.g., "en", "es", "fr", "de", "pt-BR", "ar", "ja"). Also accepts lang or hl. |
region | string | No | "us" | 2-letter ISO country/region code (gl) used to bias plain-text search queries (e.g., "us", "gb", "ca", "au", "de", "fr", "ae", "in"). Also accepts country or gl. |
proxyConfiguration | object | No | {"useApifyProxy": true} | Proxy settings. Apify Residential Proxies are automatically enforced on cloud runs when no custom proxy is provided to prevent Google rate-limiting and 403 blocks. |
maxConcurrency | integer | No | 3 | Number of review URLs verified concurrently (1 to 10). |
📊 Output Fields (Spreadsheet Columns & JSON Schema)
Every extracted or verified review returns a clean, flat object with 41 structured fields designed for 1-click Excel (.xlsx), CSV, Google Sheets, and database pipelines:
| Field Name | Type | Description |
|---|---|---|
input_url | string | The exact original URL you provided (ideal for Excel/Google Sheets VLOOKUP joins) |
resolved_url | string | The canonical resolved Google Maps URL (expands maps.app.goo.gl shortlinks) |
url | string | Canonical URL alias maintained for backwards compatibility |
status | string | "ACTIVE" = live on Google Maps, "REMOVED" = deleted/taken down, "UNKNOWN" = temporary error, "UNSUPPORTED" = invalid link format |
is_active | boolean | null | true if verified live, false if removed, null if unknown/unsupported |
is_removed | boolean | null | true if verified removed/deleted, false if live, null if unknown/unsupported (ideal for webhook filters) |
review_id | string | null | Internal Google Review ID token (used for legal & takedown appeal tracking) |
place_id | string | null | Google Maps Feature / Place hex ID (0x...:0x...) |
place_cid | string | null | Standard Google Place ID / CID (ChIJ...) |
review_url | string | null | Direct canonical Google Maps permalink to this specific review |
review_report_url | string | null | 1-Click Google Takedown URL (google.com/local/content/rap/report?postId=...) to flag the review for policy violations |
is_edited | boolean | null | true if the author modified the review after initial publication, false if untouched |
review_modified_timestamp | string | null | Exact ISO 8601 UTC timestamp of when the review was last edited |
business_name | string | null | Name of the Google Business Profile (preserved even on REMOVED reviews) |
business_address | string | null | Full physical street address of the business (preserved even on REMOVED reviews) |
business_place_url | string | null | Direct Google Maps URL to the business listing |
business_categories | array[string] | All categories assigned to the Google Business Profile |
business_primary_category | string | null | Primary category of the business (e.g. "Used car dealer", "Restaurant") |
business_city | string | null | City where the business is located |
business_country | string | null | Country where the business is located |
business_country_code | string | null | 2-letter ISO country code (e.g. "US", "GB") |
business_latitude | number | null | GPS latitude coordinate of the business |
business_longitude | number | null | GPS longitude coordinate of the business |
business_timezone | string | null | IANA timezone of the business (e.g. "America/New_York") |
business_cover_image_url | string | null | Featured cover image URL of the business listing |
reviewer_name | string | null | Public display name of the reviewer |
reviewer_id | string | null | Unique 21-digit Google Contributor user ID string |
reviewer_url | string | null | Direct link to the reviewer's Google Maps contributor profile |
reviewer_avatar_url | string | null | Reviewer's profile photo URL |
reviewer_number_of_reviews | integer | null | Total lifetime reviews written by this user (helps spot 1-review burner accounts) |
review_stars | integer | null | Star rating given (1 to 5) |
review_text | string | null | Full review text (translated to English when applicable) |
review_text_original | string | null | Original untranslated review text in the author's native language |
review_photos | array[string] | High-resolution image URLs attached to the review |
review_photos_count | integer | Total number of photos attached to the review |
review_timestamp | string | null | Exact ISO 8601 UTC creation timestamp (e.g. "2024-03-29T16:56:56.125874+00:00") |
review_date | string | null | Relative date string shown on Google Maps (e.g. "6 months ago") |
review_language | string | null | Detected ISO language code of the review (e.g. "en", "es") |
has_owner_reply | boolean | null | true if the business owner replied to this review, false otherwise |
owner_reply | string | null | Full text of the business owner's response |
owner_reply_date | string | null | Relative date of the business owner's reply |
owner_reply_timestamp | string | null | Exact ISO 8601 UTC timestamp of the business owner's reply |
owner_reply_language | string | null | Detected language code of the business owner's reply |
text_snippet | string | null | Human-readable status summary of the check |
check_timestamp | string | Exact ISO 8601 UTC timestamp when this verification was performed |
timestamp | string | ISO 8601 check timestamp alias |
error | string | null | Error description (always null for ACTIVE and REMOVED reviews) |
📤 Sample Output Data
1. Active Review (status: "ACTIVE")
{"input_url": "https://maps.app.goo.gl/wSLNNUnwRAwg1T4W9","resolved_url": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sCi9DQUlRQ...","status": "ACTIVE","is_active": true,"is_removed": false,"review_id": "Ci9DQUlRQUNvZENodHljRjlvT2tWaWExOUlkRFIwWVhFemJFa3pTekZVTlVjeGNHYxAB","place_id": "0x0:0x84e51f23e8c0a75c","place_cid": "ChIJ2_VLfRdawokRXKfA6CMf5YQ","review_url": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sCi9DQUlRQ...","review_report_url": "https://www.google.com/local/content/rap/report?postId=Ci9DQUlRQ...","is_edited": false,"review_modified_timestamp": null,"reviewer_name": "RoRo","reviewer_id": "107907612947498246994","reviewer_url": "https://www.google.com/maps/contrib/107907612947498246994","reviewer_avatar_url": "https://lh3.googleusercontent.com/a-/...","reviewer_number_of_reviews": 3,"review_stars": 1,"review_text": "I visited this location during my first trip to New York...","review_text_original": "I visited this location during my first trip to New York...","review_photos": ["https://lh3.googleusercontent.com/grass-cs/ACvplmOY0OUAUEn8J7yYHd1cCpWZ..."],"review_photos_count": 1,"review_timestamp": "2024-03-29T16:56:56.125874+00:00","review_date": "6 months ago","review_language": "en","business_name": "McDonald's","business_address": "160 Broadway, New York, NY 10038, United States","business_place_url": "https://www.google.com/maps/place/?q=place_id:ChIJ2_VLfRdawokRXKfA6CMf5YQ","business_categories": ["Fast food restaurant", "Coffee shop", "Breakfast restaurant"],"business_primary_category": "Fast food restaurant","business_city": "New York","business_country": "United States","business_country_code": "US","business_latitude": 40.7094789,"business_longitude": -74.0100364,"business_timezone": "America/New_York","business_cover_image_url": "https://lh3.googleusercontent.com/grass-cs/ACvplmMYk...","has_owner_reply": true,"owner_reply": "Thank you for bringing this to our attention. We have addressed this with our local team.","owner_reply_date": "5 months ago","owner_reply_timestamp": "2024-04-02T14:22:10.000000+00:00","owner_reply_language": "en","text_snippet": "1 stars: I visited this location during my first trip to New York...","error": null,"check_timestamp": "2026-10-01T21:08:28.579696+00:00"}
2. Removed / Deleted Review (status: "REMOVED" — Preserves Business Metadata for Billing Proof)
{"input_url": "https://www.google.com/maps/reviews/data=!4m8!14m7...","resolved_url": "https://www.google.com/maps/reviews/data=!4m8!14m7...","status": "REMOVED","is_active": false,"is_removed": true,"review_id": "ChZDSUhNMG9nS0VJQ0FnSUNwLWNMM2J3EAE","place_id": "0x0:0x57656ffbe42744ba","place_cid": "ChIJr7blnswzw4ARukQn5PtvZVc","business_name": "STG Auto Group of Montclair","business_address": "10477 Central Ave, Montclair, CA 91763, United States","business_place_url": "https://www.google.com/maps/place/?q=place_id:ChIJr7blnswzw4ARukQn5PtvZVc","business_city": "Montclair","business_country": "United States","business_country_code": "US","business_categories": ["Used car dealer", "Auto body shop"],"business_primary_category": "Used car dealer","business_latitude": 34.0640219,"business_longitude": -117.6889961,"business_timezone": "America/Los_Angeles","business_cover_image_url": "https://lh3.googleusercontent.com/gps-cs-s/...","reviewer_name": null,"review_stars": null,"review_text": null,"review_photos": [],"review_photos_count": 0,"text_snippet": "Review no longer found on Google Maps. Review removed.","error": null,"check_timestamp": "2026-10-01T21:08:27.741295+00:00"}
💰 Transparent Pay-Per-Event (PPE) Pricing ($0.25–$0.35 / 1K)
This Actor uses Apify's transparent Pay-Per-Event (PPE) model so you only pay for extracted or verified reviews:
| Apify Plan | Price per Review | Cost per 1,000 Reviews | Cost per 10,000 Reviews |
|---|---|---|---|
| Free | $0.00035 | $0.35 | $3.50 |
| Bronze | $0.00030 | $0.30 | $3.00 |
| Silver | $0.00028 | $0.28 | $2.80 |
| Gold / Platinum / Diamond | $0.00025 | $0.25 | $2.50 |
- Per Extracted or Verified Review (
apify-default-dataset-item): Charged only when a review is extracted from a Place URL or verified asACTIVE/REMOVED. - $0.00 for Unsupported Links & Errors: If an input URL is an unsupported format (
status: "UNSUPPORTED"), an empty place with zero reviews, or encounters a temporary upstream error (status: "UNKNOWN"), you are charged $0.00. - Automatic Budget Cap Protection: Fully respects your Apify account and run spending limits—halting cleanly without overcharging.
💡 Common Workflows, Schedules & Code Integrations
1. Spreadsheet / CRM Joins (Excel & Google Sheets VLOOKUP)
Because the Actor preserves your exact original link in input_url, you can export the dataset as CSV or Excel (.xlsx) and run a simple VLOOKUP or XLOOKUP against your client tracking sheet:
=VLOOKUP(A2, ApifyDataset!A:E, 4, FALSE)
2. Automated Daily Takedown Monitoring (Apify Schedules + Webhooks)
ORM agencies typically monitor disputed reviews for 7–60 days until Google removes them. Put your checks on autopilot in 30 seconds:
- In Apify Console, save your list of disputed review URLs as a Task.
- Click Actions → Schedule Actor and set it to run Daily at 8:00 AM (
0 8 * * *). - Add an Apify Webhook (
ACTOR.RUN.SUCCEEDED) connected to Slack, Zapier, Make, or Airtable with a simple filter:- Condition:
is_removed == true - Action: Send an instant Slack & billing notification: "🎉 Takedown Confirmed! Review {review_id} on {business_name} has been removed by Google!"
(Because
is_removedisnullon temporary network hiccups, you will never receive false-alarm takedown alerts).
- Condition:
3. Run via Python (apify-client)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_API_TOKEN")run = client.actor("unitbytes/google-maps-reviews-scraper").call(run_input={"reviewsToCheck": [# Mode 1: Check specific review links for removal or edits"https://maps.app.goo.gl/wSLNNUnwRAwg1T4W9","https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChZDSUhNMG9nS0VJQ0FnSUNwLWNMM2J3EAE!2m1!1s0x0:0x57656ffbe42744ba!3m1!1s2@1:CAIQACodChtycF9oOlJORWFGdmxEN3VmeDI1VlFXRXotRXc%7C%7C?hl=en-US",# Mode 2: Or paste a Business Place URL or Search Query to extract up to 10,000 reviews"https://www.google.com/maps/place/Katz's+Delicatessen/@40.722233,-73.987429,17z/"],"maxReviewsPerPlace": 50,"reviewsSort": "newest","reviewKeyword": "","maxConcurrency": 3})for item in client.dataset(run["defaultDatasetId"]).iterate_items():if item.get("is_removed") is True:print(f"🎉 Takedown verified! Review {item['review_id']} on '{item['business_name']}' was REMOVED.")elif item.get("is_active") is True:print(f"👀 Live ({item['review_stars']}★) by {item['reviewer_name']} on '{item['business_name']}'")print(f" 1-Click Report Link: {item['review_report_url']}")
4. Run via Node.js / JavaScript (apify-client)
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: "YOUR_APIFY_API_TOKEN" });const run = await client.actor("unitbytes/google-maps-reviews-scraper").call({reviewsToCheck: ["https://maps.app.goo.gl/wSLNNUnwRAwg1T4W9","https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChZDSUhNMG9nS0VJQ0FnSUNwLWNMM2J3EAE!2m1!1s0x0:0x57656ffbe42744ba!3m1!1s2@1:CAIQACodChtycF9oOlJORWFGdmxEN3VmeDI1VlFXRXotRXc%7C%7C?hl=en-US"],maxReviewsPerPlace: 50,reviewsSort: "newest",reviewKeyword: "",maxConcurrency: 3});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => {console.log(`[${item.status}] ${item.business_name} — Removed: ${item.is_removed}, Report URL: ${item.review_report_url}`);});
5. 🔌 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 official Apify MCP server:
{"mcpServers": {"apify": {"type": "http","url": "https://mcp.apify.com/?tools=actors,docs,unitbytes/google-maps-reviews-scraper"}}}
No manual API token is required in configuration if your client supports Apify OAuth sign-in. Alternatively, pass your Apify API Token in the Authorization header.
🛡️ Enterprise Reliability & Crash-Proof Checkpointing
- Smart Proxy Auto-Rotation: Automatically retries transient rate limits with exponential backoff and fresh residential proxy IPs.
- Zero False-Positive Removals: If Google returns a temporary 5xx server error, the Actor safely reports
status: "UNKNOWN"(is_removed: null) rather than falsely reporting a review asREMOVED. - Automatic State Checkpointing: Persists processed URLs to Apify Key-Value Store after every batch. If a massive run is interrupted or restarted, it resumes where it left off without re-checking or double-charging already verified URLs.
🔗 Related Google Maps Scrapers by UnitBytes
Combine all three specialized tools in the UnitBytes Google Maps Reputation Suite to build a complete local SEO and reputation defense pipeline:
- 🗺️ Google Maps Contributor & Local Guide Reviews Scraper (
unitbytes/google-maps-contributor-scraper) — Paste anyreviewer_idorreviewer_urlfrom this Actor to export that reviewer's entire lifetime review history (up to 200 reviews), Local Guide level (1–10), points, and badges in under 2 seconds. - 📸 Google Maps Photos Scraper (Places, Menus, Videos & Guides) (
unitbytes/google-maps-photos-scraper) — Download original uncompressed full-resolution photos (=s0), restaurant menus, food & drink galleries, playable MP4 videos, 360° Street View, verified photo view counts, and geo-tagged venues from Google Maps places and Local Guides.
❓ Frequently Asked Questions (FAQ)
Q: How do I check if a specific Google review was deleted or removed?
On Google Maps, click the Three Dots (⋮) → Share review → Copy link on any review you want to track, and paste that link (maps.app.goo.gl/... or /maps/reviews/data=...) into reviewsToCheck. When you run the Actor, it returns status: "ACTIVE" (is_removed: false) if the review is still live, or status: "REMOVED" (is_removed: true) if the review was deleted by the author or removed by Google.
Q: Can I also scrape all reviews from a Google Maps Business Place URL or Search Query?
Yes! Simply paste any Google Maps business link (https://www.google.com/maps/place/...), Place ID (ChIJ...), or Search Query (e.g. "Katz's Delicatessen", "Juhu") into reviewsToCheck and set maxReviewsPerPlace (up to 10,000 reviews per place), reviewsSort ("newest", "lowest_rating", "highest_rating", or "most_relevant"), and optional reviewKeyword. The Actor will extract the reviews along with each review's direct permalink (review_url), 1-click dispute link (review_report_url), star rating, text, photos, and owner reply.
Q: What is review_report_url and how does it help ORM agencies?
Every active review extracted by this Actor includes a pre-built review_report_url (https://www.google.com/local/content/rap/report?postId=...). Clicking this link opens Google's official Report a Policy Violation (RAP) dispute screen directly for that exact review—saving account managers from scrolling through thousands of reviews on a business profile to click the flag button.
Q: When a review is deleted (status: "REMOVED"), can I still see which business it belonged to?
Yes! Even after Google deletes the review text and author profile from public view, this Actor extracts and preserves the underlying business_name, business_address, place_cid, business_city, and business_categories. This gives ORM agencies timestamped proof of which client's review was removed for invoicing.
Q: Can this tool detect if a customer edited their review rating or text?
Yes. The Actor compares the review's initial creation timestamp against its last-modified timestamp. If the reviewer updated their star rating or text after posting, the Actor sets is_edited: true and outputs the exact UTC review_modified_timestamp.
Q: Will a temporary network error cause a false "REMOVED" alert?
Never. The Actor only outputs status: "REMOVED" (is_removed: true) when Google Maps definitively confirms the business profile loaded cleanly and the specific review post no longer exists. If a request hits a temporary network error, status is set to "UNKNOWN" and both is_removed and is_active are set to null.
Q: Do I need coding skills to use this Actor?
Not at all! You can paste your list of Google Maps links directly in the Apify Console, click Start, and download a clean Excel (.xlsx) or CSV file with 1 click.
Q: What proxies are recommended?
Apify Residential Proxies are enabled automatically by default on Apify Cloud runs to ensure fast, uninterrupted extraction without Google rate limits or 403 blocks.
⚖️ Compliance & Privacy
This Actor extracts strictly publicly available data from Google Maps public business listings and review pages. It does not log in, bypass authentication walls, or access private account details. Personal data is protected by regulations such as GDPR and CCPA—see Apify's guide on the legality of web scraping and ensure your data processing complies with applicable privacy regulations.
Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Google LLC, Alphabet Inc., or any of their subsidiaries.
💬 Support & Feature Requests
Need help configuring your run, requesting custom fields, or setting up bulk ORM tracking?
- 🐛 Bug Reports & Feature Requests: Open a ticket in the Apify Issues Tab
- 📧 Direct Email Support:
contact@unitbytes.com