If you build software for multi-location franchises, hospitality brands, healthcare clinics, or local SEO agencies, you have almost certainly run into the most frustrating limitation of the official Google Places API:
No matter how much you pay Google ($17.00 to $40.00+ per 1,000 requests), the official Places API returns a hard maximum of 5 reviews per business location.
You cannot paginate past review #5. You cannot filter by keyword to pull every review mentioning "food poisoning", "billing error", or "wait time". You cannot extract all 1-star complaints across 500 franchise branches, and you cannot audit whether store managers are responding to unhappy customers within SLA.
In this 2026 engineering and pricing teardown, we compare the true cost of commercial Google Reviews APIs and show how to extract up to 10,000 Google Maps reviews per location using the UnitBytes Google Maps Reviews Scraper—starting at $0.25 to $0.35 per 1,000 reviews ($0.00025/item), with 14,000 to 20,000 free reviews every month included in Apify's free tier.
1. Google Maps Reviews API Pricing Comparison (2026 Teardown)#
When teams look beyond the official Google Places API, they typically encounter two problems: overpriced SERP proxy APIs with $50–$75/month minimums that charge per page of 10 reviews, or sluggish headless-browser scrapers that burn cloud RAM scrolling a virtual DOM for 20 minutes.
Here is how the leading Google Maps review extraction options compare in 2026:
| Provider / Solution | Max Reviews per Place | Base Monthly Minimum | Cost per 1,000 Reviews | Speed (1,000 Reviews) | Output Schema |
|---|---|---|---|---|---|
| Official Google Places API | ❌ Hard-capped at 5 reviews | $0 (Cloud Billing required) | $17.00 – $40.00+ / 1K calls | <1s (5 reviews only) | Nested Places JSON |
| SerpApi (Google Maps Reviews) | ✅ Unlimited (10 per call) | $75.00 / mo | $15.00 / 1K calls ($1.50/1K reviews) | ~45–90s (sequential pagination) | Nested raw SERP JSON |
| Outscraper / Legacy Scrapers | ✅ Unlimited | $0 – $29 / mo | $1.00 – $3.00 / 1K reviews | ~60–180s | Multi-level JSON / CSV |
| DIY Playwright / Selenium | ⚠️ Brittle (DOM freezes >500) | $40+ / mo residential proxy | $3.50 – $8.00 / 1K (RAM + proxy GB) | 5–15 minutes per place | Unstructured DOM selectors |
| UnitBytes Google Maps Reviews Scraper | ✅ Up to 10,000 / Place | $0.00 / mo ($5 free credit) | 💰 $0.25 – $0.35 / 1K reviews | ⚡ ~10 seconds per 1,000 reviews | 📊 55 Flat CSV / Excel / JSON Fields |
Have a list of 50, 500, or 5,000 Google Maps business URLs, Place IDs, or city search queries? Submit them via our Done-For-You Dataset Request Form below. We will extract all reviews, star ratings, owner replies, and photo URLs and deliver a clean Excel / CSV spreadsheet directly to your inbox.
2. All 10 Supported Google Maps Input Formats (Zero Pre-Processing)#
In real-world agency and enterprise databases, location lists are rarely clean. One client sends shortened maps.app.goo.gl share links from mobile devices, another sends raw ChIJ... Place IDs from their CRM, and a third sends plain business names and cities.
The Google Maps Reviews Scraper (/actors/google-maps-reviews-scraper/) accepts all 10 public Google Maps identifier formats inside a single reviewsToCheck array—resolving them automatically with zero manual formatting:
- Standard Google Maps Place URLs:
https://www.google.com/maps/place/Katz's+Delicatessen/@40.722233,-73.987429,17z/ - Plain-Text Business Search Queries:
"Katz's Delicatessen New York","Tartine Bakery San Francisco", or"Emergency Dentist Austin TX" - Raw Google Place IDs (
ChIJ...):ChIJ2_VLfRdawokRXKfA6CMf5YQor?q=place_id:ChIJ2_VLfRdawokRXKfA6CMf5YQ - Shortened Mobile Share Links:
https://maps.app.goo.gl/exampleReviewLink1 - Google Business Review Request Links (
g.page):https://g.page/r/CVynwOgjH-WEEBM/review - Google Search Knowledge Panel Review Dialogs (
#lrd=):https://www.google.com/search?q=katzs+deli#lrd=0x89c2598f54f515cb:0x84e51f23e8c0a75c,1 - Direct Write-a-Review Links (
writereview?placeid=):https://search.google.com/local/writereview?placeid=ChIJ2_VLfRdawokRXKfA6CMf5YQ - Hex Feature / CID Links:
0x89c2598f54f515cb:0x84e51f23e8c0a75c - Google Maps Contributor Profile URLs:
https://www.google.com/maps/contrib/100000000000000000001/reviews - Individual Review Permalinks (for Takedown & Edit Audits):
https://www.google.com/maps/reviews/data=!4m8!14m7...
3. Server-Side Sorting & Keyword Filtering (Stop Paying for Unwanted Reviews)#
A major hidden cost in legacy review scrapers is post-fetch filtering. If a hotel has 8,000 reviews and you only want to analyze 1-star complaints or reviews that mention "bed bugs" or "valet parking", basic scrapers force you to scrape and pay for all 8,000 reviews first and filter them in Python afterward.
UnitBytes executes both sort order and keyword filtering directly upstream on Google's servers before a single item is billed:
reviewsSort: "newest": Ideal for daily cron jobs and n8n workflows. Fetch only the newest reviews published since your last poll.reviewsSort: "lowest_rating": Immediately surfaces 1-star and 2-star reviews at the top of the stream for customer recovery, churn analysis, or competitor weakness auditing.reviewsSort: "highest_rating": Extracts 5-star testimonials for website social proof widgets and marketing case studies.reviewsSort: "most_relevant": Google's default high-signal ranking, prioritizing detailed reviews with photos and Local Guide authority.reviewKeyword: Pass any term (e.g.,"wait time","manager","vegan","refund") to extract only reviews containing that exact keyword across the business's entire review history.
4. Complete 55-Field Flat Schema (1-Click Excel, CSV & Pandas Ready)#
Every extracted review is normalized into 55 flat, root-level fields—eliminating nested [object Object] columns when exporting to Excel, Google Sheets, CSV, or BigQuery:
{
"input_url": "https://www.google.com/maps/place/Katz's+Delicatessen/@40.722233,-73.987429,17z/",
"resolved_url": "https://www.google.com/maps/place/Katz's+Delicatessen/@40.722233,-73.987429,17z/",
"status": "ACTIVE",
"change_type": "BASELINE",
"is_active": true,
"is_removed": false,
"review_id": "Ci9DQUlRQUNvZENodHljRjlvT0000000000000000000000000000002YxAB",
"place_id": "0x89c2598f54f515cb: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": "Sarah J.",
"reviewer_id": "100000000000000000002",
"reviewer_url": "https://www.google.com/maps/contrib/100000000000000000002",
"reviewer_avatar_url": "https://lh3.googleusercontent.com/a-/ALV-UjX...",
"reviewer_number_of_reviews": 84,
"review_stars": 5,
"review_text": "Best pastrami on rye in New York City. The counter carvers give you a sample while you wait!",
"review_text_original": "Best pastrami on rye in New York City. The counter carvers give you a sample while you wait!",
"review_photos": [
"https://lh3.googleusercontent.com/grass-cs/ACvplmOY0OUAUEn8J7yYHd1cCpWZ..."
],
"review_photos_count": 1,
"review_timestamp": "2026-10-18T16:56:56.125874+00:00",
"review_date": "6 days ago",
"review_language": "en",
"business_name": "Katz's Delicatessen",
"business_address": "205 E Houston St, New York, NY 10002, United States",
"business_place_url": "https://www.google.com/maps/place/?q=place_id:ChIJ2_VLfRdawokRXKfA6CMf5YQ",
"business_categories": ["Deli", "Sandwich shop", "Tourist attraction"],
"business_primary_category": "Deli",
"business_city": "New York",
"business_country": "United States",
"business_country_code": "US",
"business_latitude": 40.722233,
"business_longitude": -73.987429,
"business_timezone": "America/New_York",
"has_owner_reply": true,
"owner_reply": "Thank you for visiting Katz's, Sarah! Hope to see you again soon.",
"owner_reply_date": "5 days ago",
"owner_reply_timestamp": "2026-10-19T14:22:10.000000+00:00",
"owner_reply_language": "en",
"response_time_hours": 21.42,
"unanswered_hours": null,
"is_burner_suspect": false,
"triage_flags": [],
"check_timestamp": "2026-10-24T12:00:00.000000+00:00"
}
Built-In Superpowers Inside Every Row:
- Post-Publication Edit Detection (
is_edited&review_modified_timestamp): Instantly see when a customer silently updated their star rating or changed their complaint text after initial publication. - 1-Click Policy Violation Dispute Link (
review_report_url): Every review includes a directhttps://www.google.com/local/content/rap/report?postId=...URL so reputation managers can report spam or conflict-of-interest reviews in one click. - Automated Owner Response SLA & Triage Metrics (
response_time_hours,unanswered_hours,is_burner_suspect,triage_flags): Automatically calculates exact hours between review publication and owner reply (response_time_hours), how many hours an unanswered review has been waiting (unanswered_hours), and flags suspicious 1–2 star attacks from low-history accounts (is_burner_suspect&triage_flags). - Need Stateful Cross-Run Change Diffing (
NEW,REMOVED,RATING_CHANGED,OWNER_REPLIED)? Pair or switch to the Google Maps Review Monitor & Change Tracker (/actors/google-maps-reviews-tracker/), which saves a persistent baseline per business across Apify Scheduled runs and automatically verifies disappeared reviews.
5. Python Tutorial: Extract & Analyze 1,000+ Google Reviews in 10 Seconds#
You can integrate the Google Maps Reviews Scraper into your Python data pipeline or BI dashboard in under 25 lines of code:
import os
import pandas as pd
from apify_client import ApifyClient
client = ApifyClient(os.getenv("APIFY_TOKEN", "YOUR_APIFY_TOKEN"))
# Pass Place URLs, plain-text search queries, or ChIJ Place IDs
run_input = {
"reviewsToCheck": [
"https://www.google.com/maps/place/Katz's+Delicatessen/@40.722233,-73.987429,17z/",
"Tartine Bakery San Francisco",
"ChIJ2_VLfRdawokRXKfA6CMf5YQ"
],
"maxReviewsPerPlace": 1000,
"reviewsSort": "newest",
"reviewKeyword": "",
"language": "en",
"region": "us"
}
# Execute on Apify Cloud ($0.25 - $0.35 per 1,000 reviews)
run = client.actor("unitbytes/google-maps-reviews-scraper").call(run_input=run_input)
# Load all 55 flat fields directly into a Pandas DataFrame
items = list(client.dataset(run["defaultDatasetId"]).iterate_items())
df = pd.DataFrame(items)
# Filter for 1-star & 2-star reviews missing an owner reply
unanswered_negative = df[(df["review_stars"] <= 2) & (~df["has_owner_reply"])]
print(f"Scraped {len(df)} reviews. Found {len(unanswered_negative)} unanswered 1-2 star complaints!")
df.to_csv("google_maps_reviews_dataset.csv", index=False)
6. No-Code Automation with n8n, Google Sheets & Slack#
Want to log every new Google Maps review to Google Sheets and trigger an instant Slack alert whenever a location receives a 1-star or 2-star review?
Grab our pre-built automation templates from the UnitBytes n8n Workflow Directory:
You can also explore the complete UnitBytes Google Maps Intelligence Suite for specialized workflows:
- 🧲 Google Maps Email & Leads Scraper: Read our B2B Leads, Website Emails, Ad Pixels & Cold Outreach Guide to extract 48 flat B2B lead fields starting at
$1.00/1K. - 🛡️ Google Maps Review Takedown & Removal Tracker: Read our dedicated ORM Review Takedown & Removal Verification Guide to verify whether disputed reviews are
ACTIVE,REMOVED, orEDITED. - 🕵️ Google Maps Contributor & Local Guide Scraper: Read our Fake Review & Competitor Attack Investigation Guide to inspect a reviewer's full cross-location history.
- 📸 Google Maps Photos & Menu Scraper: Read our Full-Resolution (
=s0) Google Maps Photos & Restaurant Menu Guide to extract 4K storefront galleries and MP4 videos.
Start Scraping up to 10,000 Google Maps Reviews per Place#
Stop hitting the 5-review Google Places API wall or overpaying $15/1K for legacy SERP proxies. With Apify's $5.00 free monthly credit, you can extract up to 20,000 Google Maps reviews every month for $0.00:
- 🚀 Deploy Google Maps Reviews Scraper ($0.25/1K on Apify)
- 🛡️ Deploy Google Maps Review Takedown Tracker (ORM Audit)
- 📄 Explore Full Schema Documentation & 1-Click Presets
Frequently Asked Questions (FAQ)
Why does the official Google Places API only return 5 reviews per business?
Google's official Places API (both Legacy and New v1) enforces a hard server-side cap of 5 reviews per Place Details request with no pagination token, sort parameter, or keyword filter. To extract up to 10,000 reviews per business sorted by newest or lowest rating, use unitbytes/google-maps-reviews-scraper.
Can I filter Google Maps reviews by keyword or extract only 1-star complaints without paying for all reviews?
Yes. Both reviewsSort ('lowest_rating', 'newest', 'highest_rating', 'most_relevant') and reviewKeyword execute directly on Google's backend servers before results are returned, so you only extract and pay for the exact matching reviews.
Can this scraper check if a specific disputed Google review was deleted or edited?
Yes. Paste any direct review share link (maps.app.goo.gl/... or /maps/reviews/data=...) into reviewsToCheck to verify whether the review is ACTIVE or REMOVED, inspect post-publication edits (is_edited and review_modified_timestamp), and get a 1-click Google policy dispute URL (review_report_url).
How much does it cost to scrape 1,000 Google Maps reviews on Apify?
Pricing starts at $0.25 to $0.35 per 1,000 extracted reviews under Apify Pay-Per-Event billing ($0.00025–$0.00035 per review), and every Apify account includes $5.00 in free monthly credits (up to 14,000–20,000 free reviews every month).
Bypass Google Places API Caps — Extract Enriched B2B Leads, Photos & 10K Reviews
Extract B2B business leads with verified website emails & ad pixels ($0.50/1K), uncompressed original (=s0) photos, up to 10,000 reviews per place ($0.25/1K), and Local Guide contributor histories at a fraction of official Places API costs.
Related Technical Guides & Teardowns
How to Audit Fake 1-Star Google Reviews, Local Guide Contributors & Track Takedowns in 2026
Complete playbook for auditing fake 1-star Google Maps reviews, extracting Local Guide contributor histories in 1.5 seconds, generating 1-click Google dispute links, and tracking review takedowns.
How to Scrape Naver Map & Naver Place (2026): South Korea Business Leads, Menus & Visitor Reviews Guide ($0.50–$1.00/1K)
Complete 2026 engineering and B2B lead generation guide to scraping Naver Map (네이버 지도) and Naver Place (네이버 플레이스). Bypass the official Naver Local Search API's 5-item limit to extract 36+ South Korean business fields, road/jibun addresses, KRW menu prices, Instagram/Kakao links, and receipt-verified visitor reviews (영수증 리뷰) from $0.50 to $1.00 per 1,000 items.
Google Places Photo API Pricing & 10-Photo Limit in 2026 ($7.00/1K vs. $0.20–$0.25/1K Alternatives)
Complete breakdown of Google Places Photo API pricing ($7.00 per 1,000 photos + Place Details fees), the 10-photo and 1600px limits, and how to extract uncompressed (=s0) photos, restaurant menus, MP4 videos, and Local Guide portfolios at $0.20–$0.25/1K.