Google Maps scraper and API: places, reviews and emails as a table
Google Maps holds the most complete list of local businesses in the world, but it gives you about 120 places per search, no export and an API that is billed per request and returns no emails. This page shows how to get Google Maps places as rows: which fields each place has, how to get past the 120-place limit, how reviews and emails work, and what it costs.
The ways to get Google Maps data
| Route | What you get |
|---|---|
| google.com/maps | Search, scroll, click each place. About 120 places per search, no export. |
| Google Places API | Official, needs a Google Cloud billing account, billed per request, at most 60 places per text search, no emails, reviews limited to 5 per place. |
| Browser extensions | Scroll the list for you in your browser. Slow, one search at a time, breaks with Maps updates. |
| Scraper on Apify | Search terms and locations in, one row per place out, with reviews and website contacts as options. Runs in the cloud, on a schedule or from code. |
The scraper
The Google Maps Scraper on Apify takes search terms with locations (dentist in Chicago, IL), Google Maps URLs or place IDs and returns one row per place:
- Place:
title,categoryName,categories,description,addresswithstreet,city,postalCode,state,countryCode,plusCode,location(lat, lng),phone,website. - Reputation:
totalScore,reviewsCount,reviewsDistribution(1 to 5 stars),reviewsTags(topics people mention). - Hours and attributes: weekly
openingHours,additionalInfo, photos, owner. Hotels add stars, prices by booking site and amenities. - Place details (option): star breakdown, review topics, owner description and, where Google shows them,
price,popularTimesHistogram,menuand related places. - Reviews (option): text, translation, stars, date, owner reply, photos, aspect ratings, reviewer.
- Website contacts (option):
emails,phonesand Facebook, Instagram, LinkedIn, X, YouTube, TikTok and Pinterest profiles from the business website.
Free filters run before anything is charged: minimum rating, with or without a website, category words, name must contain the term, skip closed places. Field names match the most used Google Maps scraper on Apify, so existing sheets and automations keep working.
Calling it from code
curl -X POST "https://api.apify.com/v2/acts/alfalfa~google-maps-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"searchStringsArray":["plumber"],"locationQuery":"Houston, TX","website":"withoutWebsite","maxCrawledPlacesPerSearch":200}'
Longer jobs: start the run, poll it, read the dataset when it finishes. Schedules, webhooks and the n8n, Make and Zapier nodes work as for any Apify Actor; the API overview shows the pattern. For one row per review, add &unwind=reviews to the dataset URL.
Things to know before you trust the numbers
- The 120-place limit is per map, not per city. A city holds thousands of restaurants. The scraper searches the location part by part when it holds more places than one search shows, and removes duplicates.
- Google decides what it shows. Price range, popular times and menus exist for many restaurants and shops, not for every place, and Google does not include them every time.
- Search results are Google's ranking. A niche term in a small town returns nearby towns too, as on the map. Filters narrow it down.
- Emails come from websites, not from Google. Sites that hide emails in images or block visitors return nothing, and nothing is charged for them.
Uses that pay for themselves
- Lead lists. Every gym, clinic or contractor in a region with phone, website and email, into a CRM or a cold email tool.
- Web design prospecting. Businesses without a website, with phone numbers and ratings.
- Local SEO audits. Ratings, review counts, star breakdowns and review topics of every competitor in town.
- Review monitoring. The newest reviews of your locations every week, with owner replies.
Questions people ask
Is scraping Google Maps allowed?
The scraper reads data Google shows to every visitor without an account. Reviewer details can be turned off. When you use emails for outreach, follow the privacy and anti-spam rules of your country.
Why is it this cheap?
A place record is a few kilobytes and details are one small request. Prices are per event with no start fee and no charge per filter: $0.07 per 1,000 places, place details $0.20 per 1,000, reviews $0.035 per 1,000, website contacts $0.90 per 1,000 places with results. Each is the lowest per-event price for Google Maps data on Apify at every plan level.
Which countries and languages work?
Any country Google Maps covers and any of its languages. Reviews come in the original language with a translation into the language you pick.
Open the Google Maps Scraper Read: emails from Facebook pages