Plumbing Lead Scraper - Maps Website Checker (Unofficial) avatar

Plumbing Lead Scraper - Maps Website Checker (Unofficial)

Pricing

from $4.00 / 1,000 place leads

Go to Apify Store
Plumbing Lead Scraper - Maps Website Checker (Unofficial)

Plumbing Lead Scraper - Maps Website Checker (Unofficial)

UNOFFICIAL Google Maps plumbing lead scraper with website health scores, tech detection, and HOT/WARM/COLD ranking. Not affiliated with Google. No AI language models.

Pricing

from $4.00 / 1,000 place leads

Rating

0.0

(0)

Developer

Viv K

Viv K

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Plumbing Lead Scraper – Google Maps + Website Checker (Unofficial)

Find plumbers and related local businesses from Google Maps, then run deterministic website health checks (reachability, SSL, SEO basics, tech stack, contact signals) and rank leads HOT / WARM / COLD.

Built for web design, SEO, and home-services agencies that sell sites, redesigns, or local SEO to plumbers.

No AI language models. No Google Places API key required.

UNOFFICIAL — not affiliated with, endorsed by, or sponsored by Google LLC. Google Maps is a trademark of Google LLC.
You are solely responsible for complying with Google’s Terms of Service, privacy laws (GDPR/CCPA), anti-spam rules (CAN-SPAM/CASL), website terms, and Apify’s Acceptable Use Policy.
Do not use for unsolicited mass messaging. Scraping Google Maps may violate Google’s contractual terms even when data is publicly visible.


Features

  • Search Google Maps by location and keywords (plumbers, drain cleaning, emergency plumber…)
  • Extract name, address, phone, website, rating, hours, Maps URL
  • Detect unclaimed Google listings
  • Website health: HTTP status, HTTPS, SSL, response time, title/meta, mobile viewport, forms, phones, emails, schema, analytics, socials, platform (WordPress / Wix / GoDaddy…)
  • Website health score 0–100 with issues / warnings / positives
  • Lead score 0–100 and tier HOT / WARM / COLD (no website / down / weak site = opportunity)
  • Optional public emails with free MX domain check
  • Phone normalization with libphonenumber
  • Simple niche tag (e.g. emergency plumbing, water heater, drain cleaning)

Health scores and contact data are rule-based from public pages only. Nothing is invented by AI.


How to use

  1. Add one or more locations (city or ZIP).
  2. Add search terms (e.g. plumbers).
  3. Set Max results per query (try 10–20 first; defaults stay small for Store tests).
  4. Keep Check websites on for health scores (and optional contact-page probes).
  5. Set proxy to Apify Proxy → RESIDENTIAL (recommended for Maps).
  6. Click Start, then download the dataset.

Example input

{
"locations": ["Houston, TX"],
"searchTerms": ["plumbers"],
"maxPlacesPerQuery": 10,
"checkWebsites": true,
"checkContactPage": true,
"validateMxRecords": true,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Input fields

FieldDescription
Target locationsCities, states, or ZIPs
Search termsMaps keywords
Max results per queryCap per location × term
Max total placesOptional cap for the whole run
Check websitesRun HTTPS/SSL/SEO/tech/contact health checks
Probe contact pagesTry common /contact paths
Validate MXFree check that email domains can receive mail
Website request timeoutSeconds per site request
Proxy for Google MapsPrefer residential
FiltersPhone only / with website / reachable only / needs-website only / include no website

Output example

{
"query": "plumbers in Houston, TX",
"businessName": "Houston Flow Plumbing",
"niche": "Emergency plumbing",
"address": "500 Main St, Houston, TX 77002",
"primaryPhone": "+17135550100",
"primaryPhoneNational": "(713) 555-0100",
"hasPhone": true,
"website": "https://houstonflowplumbing.example",
"hasWebsite": true,
"websiteHealthScore": 72,
"needsWebsite": false,
"websiteCheck": {
"reachable": true,
"httpStatus": 200,
"sslValid": true,
"hasMobileViewport": true,
"hasContactForm": true,
"detectedPlatform": "WordPress",
"websiteIssues": [],
"websiteWarnings": ["Missing LocalBusiness schema"]
},
"primaryEmail": "office@houstonflowplumbing.example",
"emails": [
{
"email": "office@houstonflowplumbing.example",
"source": "mailto",
"confidence": 95,
"mxValid": true
}
],
"leadScore": 55,
"leadTier": "COLD",
"leadReasons": [],
"googleMapsUrl": "https://www.google.com/maps/place/...",
"scrapedAt": "2026-08-08T12:00:00.000Z"
}

Pricing

Pay per event + platform usage. You pay both:

  1. Event fees (below) — paid to the Actor developer
  2. Platform usage — paid to Apify for compute, data transfer, storage, and proxies

Platform usage & residential proxy (important)

Google Maps runs need Apify Proxy → RESIDENTIAL. Residential traffic is billed by Apify per GB (rate depends on your plan; often around $7–$8 / GB on lower plans).

  • Browser/Maps traffic is heavier than simple HTTP scrapes, so even small runs can use tens–hundreds of MB.
  • Proxy + compute usually cost more than the event fees on short test runs.
  • Website health checks add some compute, but Maps residential proxy is typically the largest usage line.
  • Start with a small test (low maxPlacesPerQuery) before large city lists.
  • Without residential proxy you often get 0 results, but you still avoid that proxy charge.

Event fees

EventWhen chargedPrice
Place leadEach business saved$0.004 ($4.00 per 1,000)
Phone enrichmentOnly if at least one validated phone is found$0.005 ($5.00 per 1,000)
Website health checkWhen a listed website was health-checked$0.006 ($6.00 per 1,000)
No-website opportunityWhen the Maps listing has no website$0.008 ($8.00 per 1,000)

Event fee examples (platform usage — including residential proxy — is extra):

Result mixApprox. event cost only
1,000 places, all with phone + website checked$15.00 + usage
1,000 places with no website (all opportunity)$17.00 + usage
1,000 places, ~90% phone, ~80% website checked, ~10% no website~$14.30 + usage

Total cost scales with locations, search terms, max results, residential proxy GB, and compute. Defaults stay small for Store auto-tests and cheap first runs.


Tips

  • Residential proxy is important for Google Maps. Without it you may get zero results.
  • Expect proxy usage to be a large share of the run cost; keep max results low while testing.
  • More cities × more keywords × higher max results = longer runs and higher proxy + compute cost.
  • No website, down site, Wix/Weebly/GoDaddy, or unclaimed listings often score HOT for agencies.
  • Use the HOT / website opportunities dataset view to prioritize outreach.

Compliance

  • Public business information and public website pages only; no login walls.
  • Business emails and phones may still be personal data under GDPR/CCPA in some cases.
  • You are responsible for lawful use and outreach (anti-spam and privacy rules).
  • Do not use for spam or illegal activity.

Limitations

  • Google Maps may block non-residential traffic.
  • Some sites block bots (403/429) — reported as blocked/unreachable.
  • Content in images or heavy JS-only apps may be incomplete.
  • Health score is a heuristic, not a conversion guarantee.
  • Maps does not return unlimited listings per area.
  • Maps page layout can change over time.

Troubleshooting

ProblemWhat to try
0 resultsUse residential proxy; lower max results; check the run log
Sites marked unreachableSite may block bots; try again later or accept as opportunity signal
Slow or costly runFewer locations/terms; lower max results; reduce contact-page probes
Empty after filtersTurn off “only reachable” / “only needs website” for testing

Support: open an Issue on this Actor with your run ID and input (no secrets).