Google Maps Reviews Scraper — Local Review Monitoring API
Pricing
from $5.00 / 1,000 review extracteds
Google Maps Reviews Scraper — Local Review Monitoring API
Extract every Google Maps review for any place — reviewer, star rating, text, date, owner replies, likes. No Google API key. Paste a place URL, business name or search query. For reputation monitoring, review analysis and local SEO.
Pricing
from $5.00 / 1,000 review extracteds
Rating
0.0
(0)
Developer
NexGenData
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
Share
⭐ Google Maps Reviews Scraper — Ratings, Review Text & Owner Replies (No API Key)
✅ No Google API key required. Extract every Google Maps review for any place — reviewer name, star rating, review text, date, owner replies, and likes. Just paste a place URL, a business name, or a search query and run.
Pull individual customer reviews straight from Google Maps for any business, landmark, hotel, restaurant, or service — at scale, with no Places API billing, no quotas, and no SDK fees. A drop-in alternative to Google Places API reviews, Outscraper Reviews, SerpApi Google Maps Reviews, and Bright Data — built for reputation monitoring, review analytics, and local-SEO research.
📊 Sample Output

_type | message | targets | as_of_timestamp |
|---|---|---|---|
| no_results | No reviews were extracted for the supplied targets. Google may have s… | ['Franklin Barbecue Austin TX'] | 2026-09-25T00:08:45Z |
Real rows from run V1lZUkNXh7f8pzXX8 on build 0.0.15 (2026-09-25), unedited apart from masked emails/phones and shortened long text; fields the source does not publish are empty.
🔧 Input reference
| Field | Type | Default | What it does |
|---|---|---|---|
placeUrls | array | [] | Google Maps place URLs (https://www.google.com/maps/place/...). One record is returned per review for each place. You can also paste a Maps search URL. NO Google API key required.… |
searchQueries | array | ["Franklin Barbecue Austin TX"] | Business names or search queries — e.g. 'Franklin Barbecue Austin TX', 'Eiffel Tower Paris'. The scraper opens the top matching place and extracts its reviews. Use this when you d… |
maxReviews | integer | 100 | Maximum number of reviews to extract per place. Reviews are sorted by newest first and the feed is scrolled to lazy-load up to this many. 30 for a quick scan, up to a few thousand… |
max_reviews | integer | 100 | Alias of maxReviews. |
placeNames | array | [] | Alias of Search Queries. List of business/place names to look up and scrape reviews for. |
queries | array | [] | Alias of Search Queries for users coming from other Apify scrapers. |
urls | array | [] | Alias of Place URLs. Accepts Google Maps place URLs. |
startUrls | array | [] | Alias of Place URLs. Accepts plain strings or {url: ...} dict items. |
proxyConfiguration | object | {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]} | Proxy used to scrape Google Maps. Apify RESIDENTIAL proxy is strongly recommended (and used by default) — Google Maps is anti-bot defended. |
🧾 JSON sample record
One real record from run V1lZUkNXh7f8pzXX8 (emails/phones masked, long text shortened):
{"_type": "no_results","message": "No reviews were extracted for the supplied targets. Google may have served an anti-bot interstitial, or the place has no reviews.","targets": ["Franklin Barbecue Austin TX"],"as_of_timestamp": "2026-09-25T00:08:45Z"}
💰 Pricing
| Event | Price (USD) | When it is charged |
|---|---|---|
Actor Start (apify-actor-start) | $0.02 | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). |
Review extracted (result) | $0.005 | Charged per Google Maps review extracted. |
Pay-per-event: you pay only for what the run delivers. A run that delivers nothing bills no result events (only the actor-start event, when the actor defines one). Example: a run that delivers 100 results costs 100 × $0.005 = $0.50 plus the start fee.
🔗 Related Actors
More from the NexGenData Leads, contacts & enrichment family:
- Domain Security Posture Checker — DNS, SPF, DMARC, TLS
- Email DMARC Auditor — SPF/DKIM/DMARC Bulk Check
- Bulk Email Validator — Verify & Clean Lists API
- IP Geolocation — Bulk IP to Location & ISP
- IPinfo / MaxMind GeoLite2 Replacement — DB-IP Powered IP Lookup
- AI Lead Gen Agent — Automated B2B Prospecting API
30 more in this family on the NexGenData Store page.
Why This Beats the Places API & Paid Review APIs
| Feature | NexGenData Google Maps Reviews | Google Places API | Outscraper Reviews | SerpApi Maps Reviews | Bright Data |
|---|---|---|---|---|---|
| Reviews per place | Up to thousands (scrolled) | Only 5 most-relevant | Yes (plan-gated) | Yes (plan-gated) | Yes (enterprise) |
| Owner replies | Yes (text + date) | No | Partial | Partial | Partial |
| Review text + author | Yes | Yes | Yes | Yes | Yes |
| Star rating per review | Yes | Yes | Yes | Yes | Yes |
| Review date | Relative + absolute | Limited | Yes | Yes | Yes |
| Cost | Pay-per-event, no plan | $17–$32 / 1,000 calls | Per-result, plan-gated | $75–$2,500 / mo | Enterprise contract |
| Auth | Apify token | Google Cloud key + billing | API key + plan | API key + plan | Enterprise SSO |
| Time-to-first-row | < 90 seconds | Billing + project setup | Signup + plan | Signup + plan | Sales cycle |
The Places API caps you at 5 reviews per place and never returns owner replies. This actor scrolls the full review feed and pulls every review plus the business owner's responses — ideal for sentiment analysis, competitor monitoring, and reputation management.
What You Get
One record per review, with:
- place_name, place_id, place_address — which place the review belongs to
- reviewer_name — the review author
- reviewer_review_count — how many reviews the author has written (credibility signal)
- rating — 1–5 stars for this review
- review_text — the full review (auto-expanded past "More")
- review_date — relative date as shown ("2 weeks ago"), plus absolute where available
- owner_response + owner_response_date — the business's public reply, if any
- likes_count — helpful votes on the review
- review_url — link back to the place
- data_source, as_of_timestamp — provenance for every row
Output streams to a clean Apify dataset — export to CSV, JSON, Excel, or hit the API directly.
Use Cases
- Reputation monitoring — track new reviews and owner replies for your locations over time.
- Competitor analysis — pull a rival's full review history and mine it for complaints and praise.
- Sentiment & NLP — feed thousands of real review texts into your sentiment or topic models.
- Local SEO audits — measure review velocity, rating distribution, and response rate.
- Customer research — surface recurring themes in what real customers say.
How To Use
Provide any one of:
- Google Maps place URLs —
placeUrls: ["https://www.google.com/maps/place/Franklin+Barbecue/..."] - Place names —
searchQueries: ["Franklin Barbecue Austin TX"](opens the top match) - A search query — same field; the top matching place is scraped.
Set maxReviews (default 100) to control depth. The scraper sorts reviews newest-first and scrolls the feed to lazy-load up to that many.
3 Sample Inputs
A — By place name (recommended for a quick start):
{ "searchQueries": ["Franklin Barbecue Austin TX"], "maxReviews": 30 }
B — By direct place URL:
{ "placeUrls": ["https://www.google.com/maps/place/Franklin+Barbecue"], "maxReviews": 200 }
C — Multiple places at once:
{ "searchQueries": ["Blue Bottle Coffee SF", "Philz Coffee SF"], "maxReviews": 100 }
📊 Sample Output
{"place_name": "Franklin Barbecue","place_id": "0x8644b59e1c1d0a8f:0x...","place_address": "900 E 11th St, Austin, TX 78702","reviewer_name": "Jordan M.","reviewer_review_count": 87,"rating": 5,"review_text": "Worth every minute of the line. The brisket melts in your mouth...","review_date": "2 weeks ago","owner_response": "Thanks so much for the kind words — see you next time!","owner_response_date": "a week ago","likes_count": 12,"review_url": "https://www.google.com/maps/place/Franklin+Barbecue/...","data_source": "google_maps_scrape","as_of_timestamp": "2026-06-13T00:00:00Z"}
How It Works
The actor launches a headless Chromium browser (Playwright) through Apify's RESIDENTIAL proxy network, handles Google's consent interstitial, opens the place's Reviews panel, sorts by Newest, and scrolls the review feed to lazy-load reviews up to your maxReviews. Each review card is parsed for the author, rating, text, date, owner reply, and likes. No Google API key is ever required.
🔗 Related Actors
- Google Maps Extractor — Business Leads & Emails — names, phones, websites, emails, ratings, hours for whole local markets.
- Yelp Business Scraper — business listings + reviews from Yelp.
- Google Maps Scraper — the original key-free Maps business scraper.
🏢 About NexGenData
NexGenData builds reliable, no-API-key public-data scrapers for lead generation, market research, and competitive intelligence. Every actor returns clean, structured data you can drop straight into your CRM, warehouse, or model. Explore the full fleet: apify.com/nexgendata.
⚖️ Legal & Compliance
This actor collects publicly available review data displayed on Google Maps. Use it in accordance with applicable laws and Google's Terms of Service. Do not use scraped personal data in ways that violate privacy regulations (GDPR/CCPA). You are responsible for your use of the output.
❓ FAQ
Do I need a Google API key? No. The scraper reads Google Maps directly.
How many reviews can I get? Up to thousands per place — set maxReviews. Google lazy-loads reviews as you scroll; the actor scrolls until it reaches your limit or runs out.
Does it get owner replies? Yes — owner_response and owner_response_date when the business has replied.
Can I pass a business name instead of a URL? Yes — use searchQueries. The top matching place is scraped.
What sort order? Newest first, so you always capture the latest reviews.
Which proxy should I use? Apify RESIDENTIAL (default). Google Maps is anti-bot defended; residential IPs are strongly recommended.
What does it cost? Pay-per-event — you're charged per review extracted. No subscription.
🛠️ Troubleshooting
- No reviews returned — the place may genuinely have none, or Google served an anti-bot page. Re-run (each retry uses a fresh residential IP).
- Fewer reviews than expected — raise
maxReviews; some places simply have fewer reviews than your limit. - Place not found by name — pass a more specific query (add the city/state) or use the direct place URL.
- Slow runs — residential proxy + a real browser is slower than an API; this is the trade-off for needing no API key.
- Run memory — keep memory at 2048 MB or higher (Playwright needs it).