Google Maps Leads - Outscraper Alternative, Websites Checked
Pricing
from $0.85 / 1,000 business returneds
Google Maps Leads - Outscraper Alternative, Websites Checked
Google Maps scraper for leads, an Outscraper alternative that checks each business website: missing, dead, parked, no HTTPS, not mobile-ready, slow. Scored with reasons; optional emails and socials. $1.50 per 1,000 places (the most used Google Maps scraper charges $4), $2 per 1,000 sites checked.
Pricing
from $0.85 / 1,000 business returneds
Rating
0.0
(0)
Developer
locaihost data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
Share
Google Maps Leads Scraper: No Website or Outdated Website
Google Maps leads with a reason to call: find local businesses on Google Maps and see which of them have no website or an outdated one (dead, parked, no HTTPS, not mobile-ready, slow), all in one run.
Quick start, copy and run:
{"searchTerms": ["plumber"],"locations": ["Leeds, UK"],"maxPlacesPerQuery": 100,"checkWebsites": true,"leadProfile": "web-design","websiteFilter": "problem","countryCode": "gb"}
websiteFilter: "problem" returns only businesses whose site is missing, social-only, dead, parked,
broken, or has no HTTPS — the ones worth a call. Expect roughly 10–30% of the businesses searched to
qualify, and you pay only for the ones returned. Want to know the price before you commit to a big list?
See Price first below.
Every Google Maps scraper gives you a name, an address, a phone number and a website URL. You then open a few hundred of those websites by hand to work out who is actually worth contacting. This Actor does that pass for you: it fetches each business's site, checks it, and returns a lead score with plain-English reasons.
Business Site status Score WhyCutts Plumbing unreachable 90 Website is listed but the domain does not resolve.Smartpipe Plumbing Services insecure 30 No HTTPS — browsers show visitors a "Not secure" warning.Leeds Plumber UK ok 15 Footer copyright still says 2014.Norton Plumbing ok 12 Homepage took 3.1s to respond.
What you get per business
From the listing: name, categories, full address, city, country, latitude/longitude, business phone, website, star rating, review count, opening hours, permanently-closed flag, and a Google Maps link.
From the website check: status (none, social-only, unreachable, ssl-invalid, parked,
broken, insecure, blocked, timeout, ok; unchecked when website checks are off), HTTPS, mobile-ready, response time, CMS, footer copyright
year, SSL days to expiry, email provider and DMARC policy.
From the scoring: a 0–100 score, a band (hot / warm / cool / skip) and the reasons behind
it, written so you can paste them straight into your own outreach.
From the business's own website (optional, includeContacts): business email addresses, social
profiles and the contact page. See Contact details below.
Score leads for what you sell
The same business is a different lead depending on who you are, so pick a profile:
| Profile | Treats as a reason to call |
|---|---|
| Web design | No website, dead domain, parked page, broken site, invalid certificate, no HTTPS, not mobile-ready, stale copyright, slow |
| SEO | Missing <title>, no meta description, not mobile-ready, slow homepage, few reviews, low rating |
| Email set-up / IT | No DMARC, DMARC set to p=none, certificate expiring, domain expiring, no HTTPS |
| Local marketing | No opening hours, few reviews, no phone, no website, low rating |
A missing DMARC record is gold to an IT provider and irrelevant to a web designer. One global "quality" number would be worse than useless, so there isn't one.
Honest limits — please read before buying
- We tell you when we could not check. If a site's firewall blocks automated requests, it comes
back as
blocked, never as "broken", and nothing read from the firewall's page is reported or scored. Facts that don't come from the page still count: DMARC and email provider (from DNS) and the Google listing. So a web designer gets no points for a blocked site, while an IT provider still sees its missing DMARC. We would rather hand you a shorter list than send you to pitch a business whose website is perfectly fine. - A timeout is not a fault. Slow small-business sites are common, so timeouts are reported and deliberately not scored.
- Google caps one search at roughly 120 results per location. To cover a large city, split it into several smaller locations rather than raising the limit.
- Ratings and review counts are Google's, captured at the time of the run.
- Opening hours can occasionally be partial, in which case the row says so.
Contact details
Turn on includeContacts (website checks must be on too) and each row also gets the contact details the
business publishes on its own website. They are read from the homepage the website check already fetched,
plus at most two more pages on the same site: the contact page, then the about page, both found from the
homepage's links. Those two pages are only read if the site's robots.txt allows it.
{"searchTerms": ["dentist"],"locations": ["Austin, TX"],"maxPlacesPerQuery": 50,"checkWebsites": true,"includeContacts": true}
emails: shared business mailboxes only, up to 5: info@, hello@, sales@, bookings@, or an address named after the business itself. Anything that looks like a person's address is dropped: firstname@, firstname.lastname@, and personal Gmail, Outlook or Yahoo addresses. Addresses hidden by Cloudflare's email protection are decoded.emailSource: the page the first email was found on.socials: the business's Facebook, Instagram, LinkedIn company page, X, TikTok and YouTube (nullwhere there is none). Personal profiles, share buttons and a website builder's own accounts are left out. A listing whose website is a Facebook or Instagram page gets that page here too.contactPage: the contact page's URL, when the homepage links to one.
The Contacts view of the dataset puts these first. An example row (names and addresses made up):
name Acme Dental Carephone (512) 555-0134website https://www.acmedentalcare.example/emails ["info@acmedentalcare.example", "appointments@acmedentalcare.example"]socials {"facebook": "https://www.facebook.com/acmedentalcare","instagram": "https://www.instagram.com/acmedentalcare","linkedin": null, "x": null, "tiktok": null, "youtube": null}contactPage https://www.acmedentalcare.example/contact/emailSource https://www.acmedentalcare.example/
On a test of 55 real small-business websites (dentists, plumbers and cafés, October 2026), 71% gave at least one email or social profile and 42% gave an email. Sites that block automated visits, or build their page with JavaScript only, give nothing; those rows come back with empty contact columns and are not charged for contact details.
Only what's new since last time
Turn on onlyNew and a saved task remembers what it already returned, so a daily or weekly schedule becomes a new-business radar: only businesses that have appeared since your last run.
What it costs
| Event | Price per 1,000 |
|---|---|
place — a business returned | $1.50 |
website-check — a site actually fetched and checked | $2.00 |
contact-details — only with includeContacts, and only when the business's own website gave at least one email or social profile | $1.50 |
Businesses with no website are never charged a check — there is nothing to fetch. Turn
checkWebsites off and you pay only the place price. Contact details are off by default; when on, a
business whose site gave none costs nothing extra.
Free-plan users get 500 businesses per run. (Free-plan runs earn us nothing and cost us nothing, so the cap is generous on purpose.)
Price first: count, sample, then the full list
Building a list with an AI agent, or want the bill before you pay it? Run it in three steps. Each run's
status message states what the next step will cost, from the run's own pricing, and gives the exact
input for it (a very long search list is too big for a status message, so it then points to the run's
SUMMARY record, where priceFirst always holds the full figures and the input). Copy these as they are:
1. Count. An ordinary places-only run, charged per business returned. It says how many businesses matched, how many have a website worth checking, what checking all of those would cost, and the input for step 2.
{"searchTerms": ["plumber"],"locations": ["Leeds, UK"],"maxPlacesPerQuery": 100,"countryCode": "gb","checkWebsites": false}
2. Sample. Checks a random 50 of those websites (websiteCheckSample, 10–500) and returns only those
50 businesses, each charged one place and one website check, so you know its price before it runs. It
reports how many of the 50 are hits, the estimated number of hits in the whole list, and what the full
run would cost. The sample is random, never the first 50 in Google's order (sorted results bunch by area and skew the hit rate). The estimate comes with a 95% range (a larger sample narrows it). The same search always picks the same 50; set sampleSeed to any word or number to draw a different random 50, repeatable with the same seed. Every row carries sampleHit.
{"searchTerms": ["plumber"],"locations": ["Leeds, UK"],"maxPlacesPerQuery": 100,"countryCode": "gb","checkWebsites": true,"websiteCheckSample": 50,"leadProfile": "web-design","websiteFilter": "problem"}
3. Full list. The same input without the sample.
{"searchTerms": ["plumber"],"locations": ["Leeds, UK"],"maxPlacesPerQuery": 100,"countryCode": "gb","checkWebsites": true,"leadProfile": "web-design","websiteFilter": "problem"}
Want contact details in the final list? Add "includeContacts": true to all three inputs. The count then
states the most contact details could add, the sample measures how many websites actually give them, and
the full run's estimate includes them. Each step's next input keeps the setting.
A hit is a business that passes your websiteFilter. With websiteFilter: "any", which every
business passes, a hit is one scored hot or warm for your leadProfile. Businesses with no website,
or only a social-media page, never need a check: they are counted exactly rather than sampled, and a
sample run doesn't return them. A sample run never reads or updates the onlyNew memory, so leave
onlyNew off for these three steps.
Lawful use
This Actor reads what any logged-out visitor sees on Google Maps and on each business's own public website. It never signs in, never uses an account or session cookie, and never touches anything behind a login.
It returns businesses, together with the contact details those businesses chose to publish. With
includeContacts, the emails and social profiles come only from the business's own website, and only
shared business mailboxes and business pages are kept, never a person's personal address. Some
listings — sole traders especially — show a person's name, a home address or a mobile number as the
business's own contact details. Where you are, that may still be personal data. You are the data
controller for what you do with the output. If you use it for marketing, the usual rules apply
(GDPR/UK GDPR and PECR in Europe, CAN-SPAM in the US, and local do-not-call registers for phone
numbers). Check before you call or email, and honour opt-outs.
Support
Open an issue on the Actor's page. Issues are usually answered within a day.