Google Maps Scraper - Places, Phones, Websites, Emails, Reviews
Pricing
from $1.39 / 1,000 places
Google Maps Scraper - Places, Phones, Websites, Emails, Reviews
Google Maps scraper for leads: name, category, address, phone, website, rating, reviews count, hours, coordinates and IDs from searches, Maps URLs or place IDs. Add-ons: emails + socials from the business website, details, top reviews. Grid search past Google's cap, dedup, lead score.
Pricing
from $1.39 / 1,000 places
Rating
0.0
(0)
Developer
Kanto Labs
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Security
Limited permissionsShare
What does this Google Maps scraper do?
This Google Maps scraper turns any Google Maps search into a clean list of businesses: name, category, full address, phone, website, rating, review count, opening hours, coordinates, place ID and Maps link, one row per place. Type what you would type into Google Maps ("dentist", "coffee shop", "plumber"), add a city or country, and get a lead list you can download as CSV/Excel or pull through the API.
Optional add-ons, charged only when the data is actually delivered:
- Emails and social profiles from the business's own website (Facebook, Instagram, LinkedIn, X, YouTube, TikTok, extra phone numbers)
- Place details: plus code, description, 1-5 star distribution, review keywords, booking and order links
- Reviews: the newest of the reviews Google shows to signed-out visitors (up to 5 per place)
Why this one
- Gets past Google's ~240-results-per-search limit. When you ask for more, the area is split into a grid and searched cell by cell. A test run for "dentist" in Houston returned exactly 400 unique places.
- Stays inside your location. Places are checked against the real city boundary from OpenStreetMap, not a rough rectangle. Places outside the area are dropped for free.
- Stops exactly at your limit. Ask for 150, get 150.
- No duplicates. A place found by two search terms, or by two grid cells, is returned and charged once.
- Filters are free. Category, minimum rating, with/without website and skip-closed cost nothing extra.
- Only new places mode. Point it at the dataset of an earlier run and it skips every place you already have. Run it weekly to catch newly listed businesses.
- Lead score (0-100) on every row: website, phone, email, rating, review volume, open status.
- CSV-friendly views: "Places", "Leads: contacts" and "Details" tables with flat columns.
- Failed lookups are free and show up as clear error rows instead of a silent empty run.
How much does it cost to scrape Google Maps?
Pay per result, no subscription:
| Event | Free plan | Starter (Bronze) | Scale (Silver) | Business (Gold) | When it is charged |
|---|---|---|---|---|---|
| Place | $0.0037 | $0.0028 | $0.00185 | $0.00139 | every place delivered |
| Contact details | $0.00185 | $0.00185 | $0.00139 | $0.00097 | only when an email, social profile or phone was found on the website |
| Place details | $0.00185 | $0.00185 | $0.00139 | $0.00097 | only when the place page loaded |
| Review | $0.00046 | $0.00046 | $0.00034 | $0.00024 | per review delivered |
Every tier is below the most-used Google Maps scraper's price for the same tier. Filters, duplicates, places outside the area and errors are free.
Worked example. 1,000 dentists with the minimum-rating filter and the contacts add-on, with contacts found for 700 of them: 1,000 x $0.0037 + 700 x $0.00185 = $4.99. The same job on the most-used Google Maps scraper at its Free-plan prices: 1,000 x $0.004 (place) + 1,000 x $0.001 (filter) + 1,000 x $0.002 (contacts) = $7.00. Duplicates, filtered-out places and errors are never charged here.
You can cap any run with Max cost per run; the scraper stops cleanly when the cap is reached.
How to use it
- Enter one or more search terms and a location ("Austin, TX, USA", "Manila, Philippines", "Praha").
- Set Number of places per search.
- Optional: filters, the add-ons, a language, or a custom circle (latitude, longitude, radius).
- Run, then download the table as CSV, Excel or JSON.
You can also paste Google Maps URLs (search or place links) or place IDs (ChIJ..., CID numbers).
Input example
{"searchStringsArray": ["dentist"],"locationQuery": "Austin, TX, USA","maxCrawledPlacesPerSearch": 100,"scrapeContacts": true,"placeMinimumStars": "4"}
Output example (one row, shortened)
{"title": "Swish Dental Downtown","categoryName": "Dentist","address": "201 W 5th St Ste 175, Austin, TX 78701","city": "Austin","postalCode": "78701","phone": "(512) 713-1099","website": "https://www.swishsmiles.com/location/downtown","rating": 4.5,"reviewsCount": 987,"latitude": 30.2674035,"longitude": -97.7451433,"openingHoursText": "Monday: 9 AM-6 PM; Tuesday: 8 AM-5:30 PM; ...","placeId": "ChIJdWgENLS1RIYReos4IrRuTmQ","cid": "7227836171923524474","url": "https://www.google.com/maps/place/?q=place_id:ChIJdWgENLS1RIYReos4IrRuTmQ","emails": ["downtown@swishsmiles.com"],"facebook": "https://www.facebook.com/SwishDentalTX","instagram": "https://www.instagram.com/swishdental","leadScore": 100}
Lead generation with n8n, Make and the API
- Local lead lists: "roofer" in 20 cities, "Only without a website" for web-design outreach, or "Only these categories" to keep the list tight.
- n8n / Make / Zapier: use the Apify node or module "Run an Actor", pick this scraper, then send the dataset rows to Google Sheets, a CRM or an email tool.
- API:
POST https://api.apify.com/v2/acts/kantolabs~google-maps-scraper/run-sync-get-dataset-itemswith the input JSON returns the rows in one call. - Schedules: run weekly with "Only new places" to receive just the businesses that appeared since last time.
What it does not do
- No sign-in, ever. It reads what Google Maps shows any visitor who is not signed in. Because of that, reviews are limited to the few Google shows signed-out visitors (up to 5 per place), and popular times are not available (Google no longer shows them to signed-out visitors).
- Price level is filled only when Google shows it in search results.
- Short
maps.app.goo.gllinks are not followed - open them once and paste the full URL.
FAQ
Is it legal to scrape Google Maps?
This scraper collects publicly visible business information - the same details anyone sees on Google Maps without logging in - and reads only the businesses' own public websites for contact details, respecting robots.txt. It does not log in, solve captchas or bypass any access control. Business listings can still contain personal data (for example a sole trader's name, or reviewer names if you switch them on). If you process personal data, you are responsible for having a lawful basis under GDPR, CCPA and similar laws, and for following the rules on direct marketing in your country. If unsure, ask a lawyer.
Why did I get fewer places than I asked for?
Either the area simply has fewer matching places (a small town may have 4 hardware stores), your filters removed some, or Google returned places outside your location, which are dropped for free. The status message at the end of the run gives the exact counts.
What happens when Google blocks a request?
The request is retried on a different proxy IP. If it still fails, that search page or place becomes a free error row - you are never charged for it.
Can I search a whole country?
Yes, but a country is a very large area: set a sensible "Number of places per search" and consider searching city by city for full coverage.
Which languages are supported?
40 languages, including English, Spanish, German, French, Portuguese, Czech, Polish, Japanese, Korean, Chinese, Indonesian, Vietnamese, Thai and Filipino. Names, categories, addresses and hours come back as Google Maps shows them in that language.
More from Kanto Labs
Browse our other data and media tools at apify.com/kantolabs.
Support
Found a wrong field or a place that should have been found? Open an issue in the Issues tab with the run ID and the place link - we reply within a day.