Google Maps leads
Google Maps Scraper
Turn a Google Maps search like "roofing contractor in Dallas" into a lead list with phone, website, rating and emails from each business's own site. Switch on the website check and it also tells you which businesses need a new website, and why. $1 per 1,000 places.
A lead list, not just a place list
Most Google Maps scrapers stop at the listing: name, phone, address, rating. That is enough for a map, and not enough to decide who to call. A web designer or SEO agency wants the businesses with a problem they can fix.
This actor reads the listing, then opens each business's website and checks it. You get the place, its contacts, and a plain-language list of what is wrong with its site.
- Name, categories, phone, website, rating, review count, full address, hours and coordinates
- Emails and Facebook, Instagram, LinkedIn, X, YouTube and TikTok links from each business website
- Website check: down or suspended, 404, no mobile version, no HTTPS, an old copyright year
- One filter for the niche: only places that need website work
- Filters by rating and review count, and closed places skipped
- Plain HTTP, no browser: hundreds of places per minute
- No Google API key and no Google account
{
"name": "Summit Roof & Gutter",
"category": "Roofing contractor",
"phone": "(214) 555-0187",
"website": "http://www.summitroof.example/",
"rating": 4.8,
"reviewCount": 146,
"city": "Dallas",
"emails": ["office@summitroof.example"],
"websiteStatus": "ok",
"websiteIssues": [
"no HTTPS",
"copyright notice still says 2018",
"no form on the homepage"
],
"needsWebsiteWork": true,
"mapsUrl": "https://www.google.com/maps?cid=..."
}
Example: what you type and what you get
Made-up businesses, real shape. This is what a small run looks like.
You ask for
- Search: roofing contractor
- Location: Dallas, TX
- Website filter: only places that need website work
You get back
- Lakeside Roofing 4.9 stars · 212 reviews · no website on Google Maps · phone listed
- Prairie Roof Co. 4.7 stars · 88 reviews · website is down: domain does not resolve
- Summit Roof & Gutter 4.8 stars · 146 reviews · no HTTPS, copyright notice still says 2018 · email found
Use a different actor when
- Facebook Pages Email Scraper Need a business's Facebook page details and contacts.
- Similarweb Scraper Need to know how much traffic a business's website gets.
The website check
Switch on Check each website and every place gets a websiteStatus, a list of websiteIssues and a needsWebsiteWork flag.
| websiteStatus | What it means |
|---|---|
ok | The homepage loaded. The issues list says what we found: no HTTPS, not mobile-friendly, old copyright year, no page title or meta description, no contact form, no tap-to-call link, built with Wix, GoDaddy or Weebly. |
down | The domain doesn't resolve, the server refuses connections, the homepage returns 404, 410 or a 5xx error twice, or the page shows a suspended-hosting or domain-for-sale notice. |
no-website | No website on Google Maps, or only a Facebook or Instagram page. |
unknown | The site blocks automated visitors or only shows its content with JavaScript. We say nothing about it, and the check is not charged. |
needsWebsiteWork is true only for the strong reasons: no website, down, no mobile version, no HTTPS, or a copyright notice five or more years old. Weak findings, such as a missing meta description, are listed but don't set it.
What a real run found
In a 400-place test run (roofing and HVAC contractors in Dallas and Phoenix, November 2026), 57 places (14%) needed website work: 34 had no website, 5 had a site that was down, and 18 had a working site with a strong problem, mostly an old copyright year or no HTTPS. We checked every "down" result by hand afterwards, and all 5 were real: four dead domains and one "Database Error" page.
We don't guess
- A site counts as down only after two failed tries, and only when its homepage fails too. A broken deep link on a working site is
unknown, not down. - Bot walls and Cloudflare's 520 error are
unknown. Cloudflare sends 520 to cloud servers for sites that load fine at home. - Copyright years come from the visible page, never from code comments in a theme's CSS or JavaScript.
- Emails are kept only when they belong to the business. The web designer's address, font credits and template placeholders are removed.
How to scrape Google Maps leads
- Add search terms and locations. For example
plumberandroofing contractorinDallas, TX. Every term is searched in every location. - Pick what to add. Switch on emails, the website check, or both. Set Website filter to "Only places that need website work" for the niche list.
- Run and export. Download CSV, Excel or JSON, or read the dataset from the API. The Website check view shows the issues next to each business.
Input for web-design leads (paste into the JSON tab)
{
"searchTerms": ["plumber", "roofing contractor"],
"locations": ["75201", "75204", "75206"],
"websiteFilter": "needsWork",
"scrapeContacts": true,
"minReviews": 10
}
Call it from Python
# pip install apify-client
from apify_client import ApifyClient
client = ApifyClient("your-apify-token")
run = client.actor("scrape-lads/google-maps-scraper").call(run_input={
"searchTerms": ["dentist"],
"locations": ["Chicago, IL"],
"scrapeContacts": True,
"checkWebsite": True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["name"], item.get("phone"), item.get("emails"), item.get("websiteIssues"))
Getting more places
- Split big cities. Google Maps returns about 120 to 200 places per search. Use ZIP codes or neighborhoods as locations for more, and duplicates across searches are removed for you.
- Expect fewer places with the needs-work filter. Usually 5% to 15% of a search qualifies, so add more locations and related search terms.
- Set a minimum review count to skip brand-new listings and favor busy businesses that can pay for a site.
Pricing
Pay per result. Places your filters remove, duplicates and websites we couldn't check are free.
| Event | When it is charged | Price |
|---|---|---|
| Run start | Once per run | $0.003 |
| Place | Each place in your dataset | $0.001 |
| Place with email | Each place where an email was found on its website | $0.001 |
| Website check | Each website checked with a result (ok or down) | $0.001 |
In practice: 1,000 places cost $1. The same 1,000 with emails cost about $1.40 when 40% have an email on their site. 1,000 businesses that need website work, with the reason, cost about $2. Prices are the Apify free-plan rates as of November 2026; paid Apify plans get up to 20% off. Check the listing for current pricing.
How it compares
The most used Google Maps actor on the Apify Store is Apify's own Google Maps Scraper (compass/crawler-google-places). There are also several small actors that list businesses without a website. Everything below about them comes from their public Store listings as of November 2026, at the Starter plan's prices. We did not run them.
| compass (Apify) | "No website" actors | ScrapeLads (this actor) | |
|---|---|---|---|
| Place | $3.00 per 1,000 | $2.60 to $7.90 per 1,000 | $0.90 per 1,000 |
| Emails from the website | Add-on, +$2.00 per 1,000 | Varies | +$0.90 per 1,000 places with an email |
| Checks the website itself | No | No, they only flag "no website" | Yes: down, suspended, mobile, HTTPS, copyright year |
| Reviews, images, popular times | Yes | No | No |
| Users in the last 30 days | 46,261 | 11 to 108 each | New in November 2026 |
Where compass is the better pick
- Depth. Reviews, images, popular times, menus, Q&A and many detail add-ons.
- Track record. Hundreds of thousands of users, a 4.7 rating and years of maintenance.
- Big areas. It can scan a whole city on its own. Here you split a city into ZIP codes yourself.
Where this actor is the better pick
- Price for lead lists. About a third of the per-place price, and emails cost less.
- Selling websites or SEO. The website check finds the businesses with a broken, outdated or missing site, with the reason you can open a conversation with.
- Clean emails. Addresses that belong to the web designer or a template are removed before you see them.
Limits
- About 120 to 200 places per search. That is where Google Maps stops. Use more locations for more places.
- Some websites can't be checked. Sites behind bot protection, or that only render with JavaScript, come back
unknownand are not charged for the check. - No reviews or photos. You get the rating, the review count and a link to the reviews.
- Emails only from the business's own site. A business with no website usually has no email here, but it still has a phone.
What people build with it
Web design prospect lists
Plumbers, dentists or salons in your city with no website, a dead site or no mobile version, each with a phone and the reason to call.
Local SEO outreach
Businesses with good reviews and weak sites: no HTTPS, no page title, a copyright notice from years ago.
Sales and market lists
Every business of a type in a set of ZIP codes, with phone, email, rating and coordinates, ready for a CRM or a map.
FAQ
Do I need a Google API key?
No. It reads public Google Maps search results. You only need an Apify account, and the free plan is enough to try it.
How does it find businesses that need a new website?
With the website check on, it opens each business's website and records whether it is down or suspended, mobile-friendly, on HTTPS, and how old its copyright notice is. The "Only places that need website work" filter keeps the businesses with no website or one of those strong problems.
Am I charged for websites it couldn't check?
No. Sites that block automated visitors come back as unknown and the check is free. Places removed by your filters are free too.
Why do some businesses have no email?
Emails come from the business's own website. Businesses without a website, or that don't publish an address, have none. Their phone number is still in the listing.
How do I get more than 200 places for a city?
Add the city's ZIP codes or neighborhoods as separate locations. Each one is its own search, and duplicates are removed.
Is it legal to scrape Google Maps?
It collects publicly visible business listing information. Business contact data can still fall under privacy laws such as GDPR, and marketing messages are regulated (for example CAN-SPAM in the US). Check the rules where you operate.
Try one city
Pick a business type and a ZIP code you know, switch on the website check, and see the list and the cost in a couple of minutes.
Open the actor