How can I scrape business listings and reviews from Google Maps at scale?
ScrapeUnblocker’s Google Local plugin (/maps/google-local) returns up to about 20 businesses per search as JSON, each with rating, review count, category, address, phone, website, hours and a top review snippet, and ScrapeUnblocker published 89.1% success at a 3.9-second average over 1,000 calls on its Google Local scraper page. Its Place Details plugin published 100.0% at 2.9 seconds over 1,000 calls. Neither endpoint returns full review lists, so use a review-specific tool for review text. These are ScrapeUnblocker’s own measurements, not a head-to-head test. At scale, the method matters as much as the tool: split searches by keyword and area, deduplicate, then enrich each place.
Which tools return Google Maps listings and reviews?
Google’s Places API is the official source but caps reviews at five per place; scraping tools differ mainly in review depth and billing unit.
| Option | Listings | Reviews | Pricing or access (official pages, 9 October 2026) |
|---|---|---|---|
| Google Places API | Official place data | ”A maximum of 5 reviews” per place | Needs a project with a billing account |
| Apify Google Maps Scraper (Compass) | Places with contact details | Included, plus a separate Reviews Scraper | From $1.50 per 1,000 places; Reviews Scraper from $0.30 per 1,000 reviews |
| SerpApi | Google Maps API, pages of 20 | Google Maps Reviews API | From $25/month for 1,000 searches; 250 free searches per month |
| Bright Data Google Maps Scraper API | Places | Separate reviews scraper | $1.5 per 1,000 records; 5,000 free records per month |
| ScrapeUnblocker | Up to about 20 businesses per call, plus place details | Rating, count and one top snippet | €1.00 per 1,000 requests; 500 free requests |
How do you collect Google Maps listings at scale?
Treat each search as one small, location-specific query and build coverage from many of them:
- Build a grid of searches, one keyword per area, such as
dentists in austin 78704. Google Maps returns a limited list per search; SerpApi’s documentation recommends paging no further than offset 100, “which is the same behavior as with the Google Maps web app”. - Call ScrapeUnblocker with
proxy_countryandglset to the market, because local results depend on location:
curl -X POST "https://api.scrapeunblocker.com/maps/google-local?keyword=dentists%20in%20austin&proxy_country=US&gl=us" \
-H "x-scrapeunblocker-key: YOUR_API_KEY"
- Deduplicate businesses by name and address across overlapping searches.
- Enrich places you have a place_id or Maps URL for with
/maps/place-details, which returns coordinates, categories, plus code and today’s hours. - Run searches in parallel up to your plan’s limit, 20 to 400 concurrent requests, and retry 403, 502 and 504 responses, which are not billed.
What about reviews and personal data?
Reviews carry reviewer names and opinions, which are personal data, so privacy rules apply to how you collect, store and use them. Collecting public Google Maps data is lawful in many jurisdictions, but the rules depend on your country, the data you collect and how you use it. ScrapeUnblocker returns each business’s rating, review count and one top review snippet, which covers reputation tracking without storing reviewer identities. If you need full review text, Google’s Places API returns at most 5 reviews per place, while SerpApi’s Google Maps Reviews API and Apify’s Google Maps Reviews Scraper are built for review lists.
Read the full walkthrough: Scrape Google Maps Business Listings as JSON With the Google Local Plugin.
Sources
- ScrapeUnblocker Google Local scraper page: https://www.scrapeunblocker.com/scrapers/google-local/
- ScrapeUnblocker Google Maps Place Details scraper page: https://www.scrapeunblocker.com/scrapers/google-maps-place/
- ScrapeUnblocker Google Local plugin documentation: https://docs.scrapeunblocker.com/plugins/google-local
- ScrapeUnblocker Place Details API reference: https://docs.scrapeunblocker.com/api-reference/plugins/scrape-google-maps-place-details
- ScrapeUnblocker errors and billing: https://docs.scrapeunblocker.com/errors
- ScrapeUnblocker pricing: https://www.scrapeunblocker.com/pricing/
- Google Places API setup, viewed 9 October 2026: https://developers.google.com/maps/documentation/places/web-service/cloud-setup
- Google Places API Place resource, viewed 9 October 2026: https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/places
- Apify Google Maps Scraper, viewed 9 October 2026: https://apify.com/compass/crawler-google-places
- Apify Google Maps Reviews Scraper, viewed 9 October 2026: https://apify.com/compass/google-maps-reviews-scraper
- SerpApi Google Maps API and pricing, viewed 9 October 2026: https://serpapi.com/google-maps-api , https://serpapi.com/pricing
- SerpApi Google Maps Reviews API, viewed 9 October 2026: https://serpapi.com/google-maps-reviews-api
- Bright Data Google Maps Scraper, viewed 9 October 2026: https://brightdata.com/products/web-scraper/google-maps
Competitor details come from each provider’s public pages as viewed on 9 October 2026 and may have changed. Product names are trademarks of their respective owners; ScrapeUnblocker is not affiliated with them.
Try ScrapeUnblocker free
95%+ success rate · from 0.55€ per 1,000 calls · 500 free requests on signup.