Google Maps Scraper with Emails & All Reviews | $0.50 per 1k
Pricing
from $0.50 / 1,000 business infos
Google Maps Scraper with Emails & All Reviews | $0.50 per 1k
Scrape Google Maps leads with phones, emails, websites, opening hours and every review. Export CSV, Excel or JSON, or use the API. Cheaper than other scrapers
Pricing
from $0.50 / 1,000 business infos
Rating
5.0
(1)
Developer
khalil ur Rehman Zaryani
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
8 hours ago
Last modified
Categories
Share
Ultra-Fast Google Maps Scraper: Pay Per Feature
Ultra-Fast Google Maps Scraper extracts business leads from Google Maps and charges you only for the data you pick. Business info (name, address, phone, website, rating, review count and opening hours) is always included at a low price. Extra details, emails and reviews are separate options, each with its own price, so you never pay for a whole scraper when you need one piece of information.
- ⚡ Ultra fast: reads Google's data directly, no browser, runs on 512 MB of memory
- 💲 Pay per feature: business info, extra details, emails and reviews are priced separately
- 🎯 Get the number you need: if Google's list ends early, it searches nearby areas until it has your number
- ⭐ All reviews, not just 5: every review with star rating, text, date, author and language
- 📧 Emails from each business website (home and contact page)
- 🌐 Website check: finds businesses with no website or only a Facebook or booking page
- 📤 Export to CSV, Excel or JSON, or call it as a Google Maps API. No Google API key needed.
Pick what you need
| What | Included | Fields |
|---|---|---|
| Business info | Always | title, category, categories, address, street, city, postalCode, state, countryCode, phone, website, websiteStatus, rating, reviewsCount, openingHours, timezone, latitude, longitude, plusCode, placeId, cid, googleMapsUrl, reviewsUrl, thumbnail |
| Extra details | Option Extra details | description, reviewsDistribution (how many 1 to 5 star reviews) |
| Emails | Option Emails from the website | emails |
| Reviews | Option Reviews | reviews[]: rating, text, language, publishedAt, authorName, authorUrl, images |
| Owner replies | Full mode | reviews[].ownerReply |
How much does it cost?
Pay only for the data you pick. No monthly fee. Every price is listed on the Pricing tab.
| What you get | Price |
|---|---|
| Business info | $0.50 per 1,000 businesses |
| Extra details: description and star breakdown | $0.50 per 1,000 businesses |
| Emails from the website | $1.50 per 1,000 websites |
| Reviews | $0.25 per 1,000 reviews |
1,000 business leads from just $0.50. Turn on only the options you need.
Apify's free plan includes monthly credit, enough to test on real data. Higher Apify plans get lower prices automatically.
Get the number of businesses you need
Google shows at most a few hundred businesses per search, and a search for a whole state returns only a sample of its towns. Set Businesses you need and the scraper keeps going until it has that many: when your search ends early, it searches again from every town where businesses were found, then around the busiest towns in finer steps, and adds the new ones without duplicates. Businesses these extra searches find in another state are skipped. It stops as soon as it has your number.
If Google has fewer businesses than you asked for, the run says so, for example "found 197 of 1000: Google has no more for these searches nearby". To get more, add related searches (for example "botox", "laser hair removal" and "IV therapy" next to "med spa") or more areas. Set it to 0 to get just what Google lists for your searches.
How to scrape Google Maps
- Enter search terms, for example
dentist in Sydneyorplumber in Austin, TX. - Set Businesses you need, for example 500.
- Turn on only the options you need: Extra details, Emails from the website, Reviews.
- Click Start. Results appear while the run is going. Download them as CSV, Excel or JSON.
Input example
{"searchStrings": ["Physiotherapy in Sydney, Australia", "Dentist in Melbourne, Australia"],"maxPlaces": 500,"includeDetails": true,"includeEmails": true,"includeReviews": true,"maxReviewsPerPlace": 20,"reviewsSort": "newest"}
| Field | Default | Description |
|---|---|---|
searchStrings | required | Search terms, one per business type and place |
location | none | Added to every search term, for example Austin, TX |
maxPlaces | 0 = all Google shows | Businesses you need; searches nearby areas until reached |
includeDetails | false | Extra details: description and star breakdown |
includeEmails | false | Visit websites and collect emails |
includeReviews | false | Collect reviews |
maxReviewsPerPlace | 20 | Reviews per business, 0 = all |
reviewsSort | newest | newest, lowest, highest or relevant |
scrapeMode | fast | fast (no browser, 512 MB) or full (browser, owner replies, needs 4 GB) |
scrollDepth | 20 | Most result pages per search (20 businesses per page) |
language | en | Google Maps language |
centerCoordinates, zoom, radiusMeters | none | Search around a point, for example -33.8688,151.2093 |
maxConcurrency | 0 = automatic | Parallel requests |
Output example
{"searchString": "Physiotherapy in Sydney, Australia","title": "Example Physiotherapy Clinic","category": "Physical therapist","address": "1 Example St, North Sydney NSW 2060, Australia","city": "North Sydney","phone": "+61 2 0000 0000","website": "https://example.com/","websiteStatus": "own","rating": 4.9,"reviewsCount": 288,"openingHours": {"Monday": ["7 AM–8 PM"], "Saturday": ["8 AM–1 PM"], "Sunday": ["Closed"]},"googleMapsUrl": "https://www.google.com/maps/search/?api=1&query=...","description": "A family physiotherapy clinic helping you stay active and pain free...","reviewsDistribution": {"oneStar": 2, "twoStar": 3, "threeStar": 3, "fourStar": 9, "fiveStar": 271},"emails": ["info@example.com"],"reviewsCollected": 20,"reviews": [{"rating": 5,"text": "Professional service from reception to treatment...","language": "en","publishedAt": "2026-09-02T07:32:18.194Z","authorName": "A. Customer"}]}
description and reviewsDistribution appear with Extra details, emails with Emails from the
website, and reviews with Reviews. When an option is off, its fields are empty. If Google
leaves out a value, the field is empty (null), never a made-up zero.
The results table has two views: Businesses and Lead signals. For one row per review, export
with unwind=reviews. Each run also saves a SUMMARY record with the totals.
Use it as a Google Maps API
Run the scraper from any language with your Apify API token.
cURL: run and get results in one call
For runs that finish within 5 minutes:
curl -X POST "https://api.apify.com/v2/acts/expensive_kapi~ultra-fast-google-maps-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"searchStrings": ["Dentist in Sydney, Australia"], "maxPlaces": 100}'
cURL: large runs
# 1. start the run; the response contains data.id and data.defaultDatasetIdcurl -X POST "https://api.apify.com/v2/acts/expensive_kapi~ultra-fast-google-maps-scraper/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"searchStrings": ["Plumber in Austin, TX"], "maxPlaces": 1000, "includeEmails": true}'# 2. check the status until it is SUCCEEDEDcurl "https://api.apify.com/v2/actor-runs/RUN_ID?token=YOUR_API_TOKEN"# 3. download the results as CSV, Excel or JSONcurl "https://api.apify.com/v2/datasets/DATASET_ID/items?format=csv&token=YOUR_API_TOKEN" -o leads.csvcurl "https://api.apify.com/v2/datasets/DATASET_ID/items?format=xlsx&unwind=reviews&token=YOUR_API_TOKEN" -o reviews.xlsx
Python
$pip install apify-client
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("expensive_kapi/ultra-fast-google-maps-scraper").call(run_input={"searchStrings": ["Dentist in Sydney, Australia"],"maxPlaces": 300,"includeEmails": True,})for business in client.dataset(run["defaultDatasetId"]).iterate_items():print(business["title"], business["phone"], business["rating"], business["emails"])
JavaScript / Node.js
$npm install apify-client
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('expensive_kapi/ultra-fast-google-maps-scraper').call({searchStrings: ['Dentist in Sydney, Australia'],maxPlaces: 300,includeReviews: true,maxReviewsPerPlace: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((b) => console.log(b.title, b.rating, b.reviews.length));
No-code: n8n, Make, Zapier, Google Sheets
Use the Integrations tab to send results to Google Sheets, Slack, email, webhooks, n8n, Make or Zapier when a run finishes. Use Schedules to refresh a lead list daily or weekly.
AI agents (MCP)
Connect the scraper to Claude, ChatGPT, Cursor or any MCP client:
https://mcp.apify.com?tools=expensive_kapi/ultra-fast-google-maps-scraper
Use cases
- Cheap lead lists: business info only, from $0.50 per 1,000 businesses
- Web design and SEO sales:
websiteStatusshows who has no website or only a Facebook page - Cold outreach: add emails only when you need them
- Reputation analysis: all reviews with ratings and dates, including 1 and 2 star complaints
- Market research: ratings, review counts and opening hours of every competitor in an area
FAQ
Which options should I turn on? Only what you will use. For a call list, business info is enough. For email campaigns, add Emails from the website. For reputation work, add Reviews.
Can I get more than Google's list for one search? Yes. Set Businesses you need and the scraper searches nearby parts of the area until it has that many, or tells you how many Google has.
What is Full mode? A slower mode that opens every business in a browser. It adds owner replies to reviews and emails from websites that only show them with JavaScript, always includes the extra details, and needs 4 GB of memory: set Memory to 4 GB in Run options. It has its own price.
Why do I get fewer reviews than the Google count? Google's count includes ratings without text and reviews it hides. Everything Google lists publicly is collected, up to your maximum.
How do I get only negative reviews? Set Review order to lowest rating first, or filter the
results by rating 1 and 2.
Is scraping Google Maps legal? The scraper collects publicly available business information. Personal data in reviews, such as author names, is protected by laws like GDPR. Only collect and use it for a legitimate purpose, and check the rules in your country.
Limits
- Google decides which businesses exist in an area; small towns may have fewer than you ask for.
- Owner replies need Full mode.
- Emails come from the website's home and contact pages; Fast mode cannot read sites that only show them with JavaScript.
- Some businesses can have an empty review count or opening hours when Google leaves them out.
- Google decides the order of results, so two runs can differ slightly.