Google Maps Scraper avatar

Google Maps Scraper

Pricing

Pay per usage

Go to Apify Store
Google Maps Scraper

Google Maps Scraper

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

Pay per usage

Rating

5.0

(1)

Developer

khalil ur Rehman Zaryani

khalil ur Rehman Zaryani

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Categories

Share

Google Maps Scraper: Leads, Emails & All Reviews

Google Maps Scraper extracts business leads from Google Maps with phone numbers, websites, emails found on the website, opening hours, star ratings and every review. Search by keyword and location, get one clean row per business, and export to CSV, Excel or JSON, or call it as a Google Maps API from your own code. No Google API key, no coding needed.

  • ✅ All reviews, not just 5: every review with star rating, text, date, author and language
  • ✅ Emails and contacts from each business website (home and contact page)
  • ✅ Website check: finds businesses with no website or only a Facebook or booking page
  • ✅ Opening hours, star breakdown, coordinates, categories included at no extra cost
  • ✅ Cheaper than the big Google Maps scrapers, pay only for what you get

What data can you extract from Google Maps?

DataFields
Businesstitle, category, categories, description, priceRange
Contactphone, website, emails
Website checkwebsiteStatus: own, social_only, booking_platform or none
Locationaddress, street, city, postalCode, state, countryCode, latitude, longitude, plusCode
Ratingsrating, reviewsCount, reviewsDistribution (1 to 5 star counts)
Opening hoursopeningHours per day, timezone
Reviewsreviews[]: rating, text, language, publishedAt, authorName, authorUrl, ownerReply, images
Links and IDsgoogleMapsUrl, reviewsUrl, placeId, cid, thumbnail

How much does it cost to scrape Google Maps?

You pay only for results. Every price is listed on the Pricing tab.

What you getPrice
Business with all details: contacts, hours, ratings, star breakdown$3.00 per 1,000 businesses
Review with rating, text, date and author$0.50 per 1,000 reviews
Website checked for emails$2.00 per 1,000 websites
Run start$0.02 per run

Examples

JobCost
1,000 businesses, no reviews, no emailsabout $3
1,000 businesses with emailsabout $5
1,000 businesses with emails and 20 reviews eachabout $15

Other Google Maps scrapers charge extra for place details and contacts. Here they are included in the business price. Apify's free plan includes monthly credit, enough to test on real data. Higher Apify plans get lower prices automatically.

Keep costs down: set Maximum businesses, lower Maximum reviews per business, or turn off reviews or emails when you don't need them. Each run also respects the maximum cost you set in its run options.

How to scrape Google Maps

  1. Enter search terms, for example dentist in Sydney or plumber in Austin, TX. One search returns up to about 120 businesses, which is Google's limit.
  2. Optional: fill Location to add it to every search term.
  3. Choose how many reviews per business you want (0 = all) and their order. Lowest rating first is the fastest way to collect complaints.
  4. Keep Find emails on to visit each business website.
  5. 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": 200,
"includeReviews": true,
"maxReviewsPerPlace": 20,
"reviewsSort": "newest",
"includeEmails": true,
"language": "en"
}
FieldDefaultDescription
searchStringsrequiredSearch terms, one per business type and place
locationnoneAdded to every search term, for example Austin, TX
maxPlaces0 = no limitStop after this many businesses in total
includeReviewstrueCollect reviews
maxReviewsPerPlace50Reviews per business, 0 = all
reviewsSortnewestnewest, lowest, highest or relevant
includeEmailstrueVisit websites and collect emails
scrollDepth20How far to scroll Google's results; 20 reaches the end
languageenGoogle Maps language
centerCoordinates, zoom, radiusMetersnoneSearch around a point, for example -33.8688,151.2093
proxyConfigurationbuilt-in residentialLeave on the default, or choose Own proxies

Output example

{
"searchString": "Physiotherapy in Sydney, Australia",
"title": "Sydney Health Physiotherapy CBD",
"category": "Physical therapist",
"address": "Level 1 Shop 35/210 Pitt St, Sydney NSW 2000, Australia",
"city": "Sydney",
"phone": "+61 2 9267 0077",
"website": "https://sydneyhealthphysio.com.au/",
"websiteStatus": "own",
"emails": ["cbd@sydneyhealthphysio.com.au"],
"rating": 5,
"reviewsCount": 103,
"reviewsDistribution": {"oneStar": 1, "twoStar": 0, "threeStar": 0, "fourStar": 1, "fiveStar": 101},
"openingHours": {"Monday": ["7 AM–8 PM"], "Saturday": ["8 AM–1 PM"], "Sunday": ["Closed"]},
"googleMapsUrl": "https://www.google.com/maps/place/...",
"reviewsCollected": 20,
"reviews": [
{
"rating": 5,
"text": "Friendly, helpful and accommodating reception staff and top physio expertise...",
"language": "en",
"publishedAt": "2026-07-28T07:32:18.194Z",
"authorName": "Bettina S.",
"ownerReply": ""
}
]
}

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, about 100 businesses:

curl -X POST "https://api.apify.com/v2/acts/expensive_kapi~google-maps-scraper-emails-reviews/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchStrings": ["Dentist in Sydney, Australia"], "maxPlaces": 50, "maxReviewsPerPlace": 10}'

cURL: large runs

# 1. start the run; the response contains data.id and data.defaultDatasetId
curl -X POST "https://api.apify.com/v2/acts/expensive_kapi~google-maps-scraper-emails-reviews/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchStrings": ["Plumber in Austin, TX"], "maxReviewsPerPlace": 20}'
# 2. check the status until it is SUCCEEDED
curl "https://api.apify.com/v2/actor-runs/RUN_ID?token=YOUR_API_TOKEN"
# 3. download the results as CSV, Excel or JSON
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?format=csv&token=YOUR_API_TOKEN" -o leads.csv
curl "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 ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("expensive_kapi/google-maps-scraper-emails-reviews").call(run_input={
"searchStrings": ["Dentist in Sydney, Australia"],
"maxPlaces": 100,
"maxReviewsPerPlace": 20,
"includeEmails": True,
})
for business in client.dataset(run["defaultDatasetId"]).iterate_items():
print(business["title"], business["rating"], business["emails"], len(business["reviews"]))

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/google-maps-scraper-emails-reviews').call({
searchStrings: ['Dentist in Sydney, Australia'],
maxPlaces: 100,
maxReviewsPerPlace: 20,
includeEmails: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((b) => console.log(b.title, b.rating, b.emails, 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/google-maps-scraper-emails-reviews

Use cases

  • Lead generation for agencies: businesses with no website, only a Facebook page, or low ratings
  • Web design and SEO sales: websiteStatus shows who needs a website
  • Reputation and sentiment analysis: all reviews with ratings and dates, including 1 and 2 star complaints
  • Market research: compare competitors' ratings, review volume and opening hours by area
  • CRM enrichment: phone numbers, emails and websites for local businesses

FAQ

Can I get more than 120 businesses? Google shows about 120 per search. Split a city into suburbs or add more business types: plumber in Parramatta NSW, plumber in Penrith NSW.

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.

Do I need a proxy? No setup is needed. The Actor uses built-in residential proxies, included in the price. To use your own, open Proxy and choose Own proxies.

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

  • About 120 businesses per search term.
  • Owner replies are available for the first few reviews of each business.
  • Google decides which businesses a search returns, so two runs can differ slightly.