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 to $40+ per 1,000 requests), the official Places API returns a maximum of 5 reviews per business location.
You cannot paginate past review #5. You cannot filter by "Newest" to catch a 1-star customer complaint posted 10 minutes ago. You cannot extract full customer photo galleries, and you cannot inspect the public review history of a contributor to tell whether a sudden burst of 1-star reviews is coming from a real customer or a coordinated competitor attack.
In this guide, we break down how data teams, reputation platforms, and local lead generation agencies extract complete Google Maps review histories, high-resolution customer photos, and Local Guide contributor portfolios at scale—either as a Done-For-You Excel/CSV delivery or via self-serve cloud APIs.
Official Google Places API vs. UnitBytes Google Maps Engines#
| Capability | Official Google Places API | UnitBytes Google Maps Suite |
|---|---|---|
| Max Reviews per Location | Hard-capped at 5 reviews | Unlimited (Extract 100s or 1,000s of reviews) |
| Sort by Newest / Lowest Rating | Limited / Restricted | Full control (Newest, Lowest Rating, Highest Rating, Most Relevant) |
| Customer Review Photos | Truncated / Metadata only | Full-resolution image URLs + timestamps + categories |
| Contributor / Local Guide History | Not available | Complete public cross-location review & photo history |
| Pricing per 1,000 Records | $17.00 – $40.00+ (SKU dependent) | From $0.35 – $1.00 / 1,000 items |
| Spreadsheet / CSV Export | Requires custom engineering | 1-Click CSV / Excel / JSON export |
The 3 Core Pillars of Google Maps Intelligence#
To give businesses complete visibility into their physical locations and competitors, UnitBytes provides three specialized extraction engines that work together:
1. Real-Time Review & Sentiment Tracking (google-maps-reviews-tracker)
For multi-location restaurant groups, dental practices, auto dealerships, and hotel chains, waiting days to notice a 1-star review costs real revenue.
- Sort by
Newest: Poll your locations daily or hourly to detect new reviews the moment they are published. - Owner Response Auditing: Track
response_from_owner_textandresponse_from_owner_dateacross 500+ franchise branches to verify whether local store managers are replying to unhappy customers within SLA. - Detailed Sub-Ratings: Capture structured aspect ratings (e.g., Food: 5/5, Service: 2/5, Atmosphere: 4/5) and dining/service metadata.
2. Local Guide & Contributor Intelligence (google-maps-contributor-scraper)
When a business suddenly receives five 1-star reviews in a single afternoon, the first question is: Are these legitimate customers, or fake accounts?
- By passing the reviewer's contributor URL or ID into the Google Maps Contributor & Local Guide Scraper, you can inspect their entire public footprint: Local Guide level, badge count, total reviews written, and every other business they have rated across the map.
- Market researchers also use anonymized contributor footprints to map consumer brand affinities (e.g., "Customers who rate Location A 5 stars also frequently visit Brands B and C").
3. Visual Storefront & Menu Auditing (google-maps-photos-scraper)
A business's Google Maps photo gallery is often the #1 conversion factor for local searchers.
- The Google Maps Photos Scraper extracts high-resolution user-submitted and owner-uploaded photos, upload dates, and contributor metadata—ideal for auditing storefront signage, menu pricing boards, and interior renovations across thousands of competitors.
Two Ways to Get Your Google Maps Data#
Option B: Automate Review Monitoring in Python#
You can integrate the Google Maps Reviews Tracker directly into your backend or BI workflow in under 20 lines of Python:
from apify_client import ApifyClient
import pandas as pd
client = ApifyClient("YOUR_APIFY_TOKEN")
# Track newest reviews across your target Google Maps locations
run_input = {
"placeUrls": [
"https://www.google.com/maps/place/Tartine+Bakery/@37.761425,-122.4241037,17z"
],
"maxReviewsPerPlace": 250,
"sort": "newest",
"language": "en"
}
run = client.actor("unitbytes/google-maps-reviews-tracker").call(run_input=run_input)
reviews = list(client.dataset(run["defaultDatasetId"]).iterate_items())
df = pd.DataFrame(reviews)
# Filter for urgent 1-star and 2-star reviews without an owner response
urgent_alerts = df[(df["rating"] <= 2) & (df["ownerResponse"].isna())]
print(f"Extracted {len(df)} total reviews ({len(urgent_alerts)} urgent alerts requiring response).")
df.to_csv("google_maps_reviews_audit.csv", index=False)
Sample Extracted Review Payload#
{
"reviewId": "ChdDSUhNMG9nS0VJQ0FnSUN6cXZyNjdBRRAB",
"placeTitle": "Tartine Bakery",
"reviewerName": "Sarah Jenkins",
"reviewerLocalGuideLevel": 6,
"reviewerTotalReviews": 84,
"rating": 5,
"publishedAt": "2026-10-14T16:42:10Z",
"reviewText": "Best morning bun and country bread in San Francisco. Line moves fast even on weekends!",
"ownerResponse": "Thank you for visiting us, Sarah! See you again soon.",
"reviewPhotos": [
"https://lh5.googleusercontent.com/p/AF1QipN_sample_high_res_photo_1"
]
}
Ready to Monitor Your Locations or Audit Competitors?#
Deploy any of the three Google Maps engines self-serve on Apify Cloud, or use the Done-For-You Dataset Request Form below to have our engineering team deliver your custom review or location dataset in Excel, CSV, or BigQuery.
Bypass the 5-Review Places API Cap — Extract 100% of Reviews & Photos
Monitor unlimited Google Maps reviews sorted by Newest, audit full storefront photo galleries, and inspect Local Guide contributor histories at a fraction of official Places API costs.