Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📍 Google Maps Reviews Tracker, Local Guide & Photos Scraper API

Available on Apify n8n Workflows Zero Login Pricing

Enterprise Google Maps reputation intelligence & Local Guide auditing suite on Apify. Track deleted/removed Google Maps reviews, scrape reviewer contribution histories, and extract high-res venue photos.

🚀 Try Live on Apify • ⚡ 21 Free n8n Templates • 📖 Documentation & Schemas • 💼 Custom Data Feeds


📍 Google Maps Reviews Tracker, Local Guide & Photos Scraper API

Try it for Free
⚡ 1-Click Free Trial: Test live queries using Apify's $5 free monthly credit • Zero login or cookies required


📦 Included in This Repository (Python Quickstarts, n8n Workflows & Sample Data)

This repository contains ready-to-run Python SDK scripts, 1-click n8n automation workflow .json templates, and sample output datasets (JSON & CSV):

Extraction Engine 🐍 Python Quickstart ⚡ n8n Workflow Template 📊 Sample Output 🚀 Cloud Console
Google Maps Reviews Tracker: Check Removed & Edited Reviews
unitbytes/google-maps-reviews-tracker • Full Schema
examples/run_google_maps_reviews_tracker.py n8n/google-maps-reviews-tracker-n8n-workflow.json JSON · CSV ⚡ Run on Apify
Google Maps Reviewer Profile & Local Guide History Scraper
unitbytes/google-maps-contributor-scraper • Full Schema
examples/run_google_maps_contributor_scraper.py n8n/google-maps-contributor-scraper-n8n-workflow.json JSON · CSV ⚡ Run on Apify
Google Maps Contributor & Local Guide Photos Scraper
unitbytes/google-maps-photos-scraper • Full Schema
examples/run_google_maps_photos_scraper.py n8n/google-maps-photos-scraper-n8n-workflow.json JSON · CSV ⚡ Run on Apify

💡 Using n8n? Browse all 21 pre-built scraping workflows with 1-click canvas copy (Ctrl+V) at unitbytes.com/n8n.


⚡ Pre-Configured 1-Click Task Presets

Launch pre-configured extraction templates directly in the Apify Cloud Console with zero parameter setup:

Task Preset Target Extraction Use Case Direct Launch
Track Google Maps Review Deletions & Edits Monitor Google Maps reviews for silent removals, text edits, and star rating changes. Get structured ACTIVE/REMOVED status per review URL ⚡ Run Task Preset
Monitor Reviews for Car Dealers & Local Businesses Audit Google Maps reviews for auto dealers and local businesses. Detect fake review removal, rating changes, and owner reply updates in bulk ⚡ Run Task Preset
Verify Google Maps Review Removal Takedowns Confirm if your reported Google Maps reviews were successfully removed. Verify takedown requests and get ACTIVE/REMOVED status instantly ⚡ Run Task Preset
Verify Fake Google Review Takedown & Deletion Confirm if reported fake or defamatory 1-star reviews were removed by Google. Get timestamped ACTIVE or REMOVED verification without manual checking. ⚡ Run Task Preset
Local SEO Client Google Review Removal Audit Audit client Google Business Profiles for unexpectedly dropped or filtered 5-star reviews. Differentiate between active and quietly deleted reviews. ⚡ Run Task Preset
Restaurant & Hotel Google Review Change Monitor Monitor hospitality reviews for star rating modifications, text updates, and owner reply changes. Export audit logs for brand reputation defense. ⚡ Run Task Preset
Audit Local Guide Reviews & Contribution History Extract full review history, ratings, photos, and places visited by an active Google Local Guide. Audit reviewer authority, credibility, and sentiment. ⚡ Run Task Preset
Export Google Contributor Reviews to Excel / CSV Download all Google Maps reviews by a contributor into a spreadsheet. Includes star ratings, review text, permalinks, and owner replies. ⚡ Run Task Preset
Analyze Competitor Google Maps Reviewers Investigate reviewers who reviewed competitors. Uncover which other businesses they frequent, their rating patterns, and identify potential brand advocates. ⚡ Run Task Preset
Find Local Food & Restaurant Influencers on Google Maps Identify Level 6-10 food critics and culinary Local Guides with hundreds of high-quality dining reviews and uploaded photos. ⚡ Run Task Preset
Scout Travel & Hotel Local Guides for Tourism Marketing Find prolific travel reviewers and hospitality Local Guides who frequently review resorts, boutique hotels, and tourist attractions. ⚡ Run Task Preset
Extract High-Resolution Local Guide Photos in Original Quality Download original full-resolution (=s0) photos uploaded by top Google Maps Local Guides with dimensions, captions, and place coordinates. ⚡ Run Task Preset
Scrape Restaurant Food, Dishes & Menu Photos on Google Maps Extract authentic customer-uploaded food, dish, drink, and menu photos with restaurant name, category, and place IDs. ⚡ Run Task Preset
Track Local Guide Total Photo Views & Influencer Reach Measure total aggregate photo view counts (e.g. 15M+ views), Local Guide levels, and points to identify top visual influencers. ⚡ Run Task Preset
Extract Hotel, Resort & Vacation Photos Uploaded by Guests Collect authentic guest-uploaded travel photos of hotel rooms, amenities, pools, and resorts with exact GPS coordinates. ⚡ Run Task Preset
Audit Storefronts, Retail Signage & Commercial Photos Gather exterior storefront images, entrance photos, and commercial signage uploaded by local contributors across US cities. ⚡ Run Task Preset
Map Contributor Photos to Place IDs & GPS Coordinates Extract photos with verified Google Place IDs, CIDs, addresses, and latitude/longitude coordinates for GIS and spatial mapping. ⚡ Run Task Preset

🛠️ Extraction Engines in This Suite

🚀 Google Maps Reviews Tracker: Check Removed & Edited Reviews (unitbytes/google-maps-reviews-tracker)

Did Google delete your client's 5-star review, or did a reported fake review finally disappear? The dedicated data engine for Google Maps review lifecycle auditing, removal detection, and change monitoring.

Key Capabilities

  • Instant Removal & Deletion Verification: Confirm whether a specific review URL is still live, removed by Google algorithms, or taken down by the author.
  • Review Modification & Rating Edit Tracking: Compare historical text, star ratings, and owner responses across sweeps to detect when reviewers update their feedback.
  • High-Speed Cloud Execution: 10x faster and 10x cheaper than legacy scrapers, running at sub-second speeds with minimal compute overhead.
  • ORM & Local SEO Agency Workflow: Compile evidence packages and verify dispute status automatically on a schedule for hundreds of client profiles.

Python SDK Quickstart (examples/run_google_maps_reviews_tracker.py)

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "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"
    ],
    "proxyConfiguration": {
        "useApifyProxy": True
    }
}

run = client.actor("unitbytes/google-maps-reviews-tracker").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item.get("reviewer_name"), item.get("business_name"), item.get("review_date"))

Sample Output Schema (samples/google-maps-reviews-tracker-sample.json)

{
  "input_url": "https://maps.app.goo.gl/wSLNNUnwRAwg1T4W9",
  "resolved_url": "https://www.google.com/maps/reviews/data=!4m8!14m7...",
  "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_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_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",
  "check_timestamp": "2026-10-01T21:08:28.579696+00:00"
}

Frequently Asked Questions

Q: How does this differ from traditional Google Maps scrapers? Traditional scrapers crawl entire place listings. This Actor inspects individual review permalinks to definitively verify whether a specific review is ACTIVE, REMOVED, or HIDDEN.

Q: Why is the UnitBytes review tracker so fast and affordable? Our streamlined cloud extraction pipeline eliminates heavy compute overhead, completing status checks in milliseconds under Pay-Per-Event pricing.

Q: Can I automate periodic review health sweeps? Yes. Schedule weekly or monthly runs with your client review URLs to immediately flag unexpected deletions.

Q: Does it track changes in review text or star rating? Yes. By comparing output datasets between runs, you can immediately detect when a reviewer edited their rating or text.


🚀 Google Maps Reviewer Profile & Local Guide History Scraper (unitbytes/google-maps-contributor-scraper)

Deep reputation intelligence for Google Maps. Audit Local Guide contributor profiles, unmask fake or paid review syndicates, track deleted/edited negative reviews, and protect your brand rating.

Key Capabilities

  • Deleted & Edited Review Auditing: Track changes across review histories to identify when critical reviews are quietly scrubbed or modified.
  • Local Guide Points & Level Scoring: Extracts exact contributor level (Level 1-10), total review points, badge history, and review trust weights.
  • Syndicate & Review Farm Detection: Audit reviewer historical patterns to detect coordinated 1-star attack networks or paid review rings.
  • Full Review Text & Rating Distribution: Extracts star rating, detailed review paragraphs, owner response timestamps, and attached review photo links.

Python SDK Quickstart (examples/run_google_maps_contributor_scraper.py)

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "contributors": ["https://www.google.com/maps/contrib/102520373756565203865"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"]
    }
}

run = client.actor("unitbytes/google-maps-contributor-scraper").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item.get("contributor_name"), item.get("place_name"), item.get("place_price_range"))

Sample Output Schema (samples/google-maps-contributor-scraper-sample.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"
}

Frequently Asked Questions

Q: Why is auditing the contributor more useful than just scraping place reviews? Place reviews only show what is currently visible on that venue. Scraping the contributor full profile reveals if they review 5 competitors negatively in 2 days, establishing evidence of review fraud.

Q: Does this actor extract reviewer photos? Yes, reviews with attached user photos include high-resolution photo URLs and view counts.

Q: Can I use this for ORM (Online Reputation Management)? Yes, agencies use this tool to compile evidence packages when requesting removal of malicious or fraudulent Google reviews.

Q: How fast does it extract contributor profiles? Extraction runs asynchronously at sub-second rates per contributor profile via parallel network requests.


🚀 Google Maps Contributor & Local Guide Photos Scraper (unitbytes/google-maps-photos-scraper)

Extract authentic high-resolution imagery uploaded by Google Maps Local Guides and venue visitors. Power travel apps, food delivery menus, architectural analysis, and visual AI training datasets.

Key Capabilities

  • Uncompressed Original Resolution: Extracts direct photo CDN URLs up to 4K resolution, bypassing Google Maps thumbnail downscaling.
  • Public Photo View Counts: Captures exact viewer engagement counts for each photo to identify the most visually appealing dish or venue angle.
  • Contributor Attribution: Associates each photo with the Local Guide uploader name, profile URL, and upload timestamp.
  • Batch Venue Ingestion: Pass lists of Google Maps place URLs or contributor IDs to scrape thousands of categorized photos in minutes.

Python SDK Quickstart (examples/run_google_maps_photos_scraper.py)

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "contributors": ["https://www.google.com/maps/contrib/102520373756565203865"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"]
    }
}

run = client.actor("unitbytes/google-maps-photos-scraper").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item.get("name"), item.get("placeName"), item.get("placeRating"))

Sample Output Schema (samples/google-maps-photos-scraper-sample.json)

{
  "targetType": "contributor",
  "name": "Reema Mulchandani",
  "isLocalGuide": true,
  "localGuideLevel": 7,
  "localGuidePoints": 8119,
  "totalPhotosCount": 878,
  "totalPhotoViews": 16439131,
  "photoId": "CIABIhA_6alxtNVk22yu_5rt7M6b",
  "caption": "Side of red chili sauce",
  "photoUrlHighRes": "https://lh3.googleusercontent.com/gps-cs/AH1DqX...=s0",
  "imageWidth": 4032,
  "imageHeight": 3024,
  "uploadDate": "2026-09-05",
  "placeName": "Juhu",
  "placeAddress": "517 Union Blvd Unit B, Totowa, NJ 07512",
  "placeCategory": "Cafe",
  "placeRating": 5.0,
  "placeReviewsCount": 71,
  "latitude": 40.901379,
  "longitude": -74.216956,
  "status": "OK"
}

Frequently Asked Questions

Q: What resolution are the downloaded photos? Photos are extracted with the =s0 maximum-resolution parameter, delivering the raw uncompressed photo originally uploaded.

Q: Can I scrape photos by category (food, interior, exterior, menu)? Yes. Google Maps categorized photo tabs can be targeted directly.

Q: Is this suitable for computer vision AI model training? Yes, widely utilized for training visual object recognition, menu OCR, and venue aesthetics models.

Q: Does this require Google Maps API keys or billing? Zero Google API keys or billing required. Avoid expensive Google Places API photo fees entirely.


⚡ Quick Installation & Local Usage

1. Run with Python (apify-client)

git clone https://github.com/unitbytes/Google-Maps-Reviews-Scraper-API.git
cd Google-Maps-Reviews-Scraper-API
pip install -r requirements.txt
export APIFY_API_TOKEN="your_apify_api_token"
python examples/run_google_maps_reviews_tracker.py

2. Import into n8n (Self-Hosted or Cloud)

  1. Open any .json file inside the n8n/ folder (or copy in 1 click from unitbytes.com/n8n).
  2. Press Ctrl+V / Cmd+V directly onto your n8n workflow canvas.
  3. Paste your Apify API Token into Node 1. Set Apify Token & Input and click Test Workflow.

💼 Need Done-For-You Datasets or Custom Pipelines?

Don't want to manage API tokens or scripts? UnitBytes Data Delivery provides ready-to-use CSV, Excel (.xlsx), Google Sheets, or Webhook feeds tailored to your exact target keywords, cities, or categories.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors