Roofing Lead Scraper – Google Maps + Phone & Email (Unofficial)
Pricing
from $4.00 / 1,000 place leads
Roofing Lead Scraper – Google Maps + Phone & Email (Unofficial)
UNOFFICIAL Google Maps roofing lead scraper with validated phones, optional public emails, and lead scoring. Not affiliated with Google. No AI language models.
Pricing
from $4.00 / 1,000 place leads
Rating
0.0
(0)
Developer
Viv K
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Find roofing contractors and related local businesses from Google Maps, with validated phone numbers, optional public website emails, free email-domain (MX) checks, and lead scoring (HOT / WARM / COLD).
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 (roofers, roof repair, metal roofing…)
- Extract name, address, phone, website, rating, hours, Maps URL
- Detect unclaimed Google listings (often high-value for agencies)
- Optional crawl of public website pages for more phones, emails, and social links
- Normalize phones with libphonenumber
- Free MX domain check on found emails
- Simple niche tag (e.g. emergency roofing, metal roofing, residential roofing)
- Lead score 0–100 and tier HOT / WARM / COLD
Phones and emails are only taken from Maps and text that appears on public pages. Nothing is invented by AI.
How to use
- Add one or more locations (city or ZIP).
- Add search terms (e.g.
roofers). - Set Max results per query (try 10–20 first; defaults stay small for Store tests).
- Turn on Extract website phones / Extract emails / MX check if you want site enrichment.
- Set proxy to Apify Proxy → RESIDENTIAL (recommended for Maps).
- Click Start, then download the dataset.
Example input
{"locations": ["Austin, TX"],"searchTerms": ["roofers"],"maxPlacesPerQuery": 10,"extractWebsitePhones": true,"extractEmails": true,"validateMxRecords": true,"maxWebsitePagesPerPlace": 2,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Input fields
| Field | Description |
|---|---|
| Target locations | Cities, states, or ZIPs |
| Search terms | Maps keywords |
| Max results per query | Cap per location × term |
| Max total places | Optional cap for the whole run |
| Extract website phones | Crawl public pages for additional phones |
| Extract emails | Crawl public website pages for emails |
| Validate MX | Free check that the email domain can receive mail |
| Max pages per website | How many site pages to check |
| Proxy for Google Maps | Prefer residential |
| Filters | Phone only / email only / include no website |
Output example
{"query": "roofers in Austin, TX","businessName": "Austin Peak Roofing","niche": "Residential roofing","address": "100 Congress Ave, Austin, TX 78701","primaryPhone": "+15125550100","primaryPhoneNational": "(512) 555-0100","phones": [{"phone": "+15125550100","national": "(512) 555-0100","sourceType": "google_maps","confidence": 96}],"hasPhone": true,"website": "https://austinpeakroofing.example","rating": 4.7,"isUnclaimed": false,"emails": [{"email": "office@austinpeakroofing.example","source": "mailto_contact","confidence": 95,"mxValid": true}],"primaryEmail": "office@austinpeakroofing.example","hasEmail": true,"hasContactForm": true,"contactPageUrl": "https://austinpeakroofing.example/contact","leadScore": 58,"leadTier": "COLD","googleMapsUrl": "https://www.google.com/maps/place/...","scrapedAt": "2026-08-08T12:00:00.000Z"}
Pricing
Pay per event + platform usage. You pay both:
- Event fees (below) — paid to the Actor developer
- 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.
- 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
| Event | When charged | Price |
|---|---|---|
| Place lead | Each business saved | $0.004 ($4.00 per 1,000) |
| Phone enrichment | Only if at least one validated phone is found | $0.005 ($5.00 per 1,000) |
| Email enrichment | Only if at least one public email is found | $0.004 ($4.00 per 1,000) |
Event fee examples (platform usage — including residential proxy — is extra):
| Result mix | Approx. event cost only |
|---|---|
| 1,000 places, all with phone, no emails | $9.00 + usage |
| 1,000 places, all with phone + email | $13.00 + usage |
| 1,000 places, ~80% phone, ~40% email | ~$9.60 + 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.
- Unclaimed listings and businesses without a website often score HOT for agencies.
- Many contractors only offer a contact form (no public email). Check
hasContactFormandcontactPageUrl.
Compliance
- Public business information 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.
- Phones/emails hidden in images or complex scripts may be missed.
mxValidchecks the domain, not that a specific mailbox is active.- Lead score is a heuristic, not a guarantee of conversion.
- Maps does not return unlimited listings per area.
- Maps page layout can change over time.
Troubleshooting
| Problem | What to try |
|---|---|
| 0 results | Use residential proxy; lower max results; check the run log |
| Places but no phones | Rare for Maps; open the place log; try another location |
| Places but no emails | Common for form-only sites; try more website pages |
| Slow or costly run | Fewer locations/terms; lower max results |
| Empty after filters | Turn off “only with phone” / “only with email” for testing |
Support: open an Issue on this Actor with your run ID and input (no secrets).