Electrician Leads Scraper — Contractor Emails & Phones
Pricing
from $20.00 / 1,000 enriched electrician leads
Electrician Leads Scraper — Contractor Emails & Phones
Find electrician leads on Google Maps with phones, websites, addresses, ratings and website emails. Lists of electrical contractors for USD 0.025 per lead.
Pricing
from $20.00 / 1,000 enriched electrician leads
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Features
Share
Electrician Leads Scraper finds electricians and electrical contractors on Google Maps in any US city and returns name, phone, website, address, GPS coordinates, rating, review count, opening hours and category, plus the emails, social links and license numbers printed on each contractor's website. It is built for solar, EV-charging, electrical-supply and trade-software sales teams, and it costs USD 25 per 1,000 leads (USD 0.025 per lead on the Free tier) plus a start fee of about USD 0.01.
What data does the electrician leads scraper return?
Each dataset row is one electrical business from Google Maps, enriched from its own website.
| Field | What it contains | Example |
|---|---|---|
name | Business name on Google Maps | Valencia Electric, Llc |
business_type | The specialty you searched for (null for start-URL runs) | Residential Electrician |
category | Google Maps categories | Electrician, Lighting contractor |
phone | Phone number from Google Maps | (214) 295-8910 |
website | Website from Google Maps | http://www.valenciaelectric.com/ |
address | Street address; null for service-area businesses that hide it | 3421 Hacienda Dr, Dallas, TX 75233 |
latitude, longitude | GPS coordinates | 32.7029, -96.8885 |
rating, review_count | Google rating (1–5) and number of reviews | 5, 30 |
hours | Opening hours by weekday | Monday: 7:30 AM–4:30 PM; … |
maps_url, place_id | Google Maps link and place ID | ChIJe4vGC3qQToYRZgYB9TZSgBA |
email | First email found on the website (a domain-checked one when verification is on) | info@valenciaelectric.com |
all_emails | Every email found, each with verified, status and verificationNote | array |
email_verified, email_verification_status | Result of the mail-server check | true, deliverable |
social_links | Facebook, Instagram, LinkedIn, X, YouTube and TikTok links found on the website | object |
license_number | License number printed next to "License"/"Lic." or a TECL/EC prefix on the website | 26090 |
service_areas | Place names found near "serving"/"service area" wording on the website | ["Dallas", "Irving"] |
specialty | Specialty detected from website text (Residential, Solar installation, EV charging…) | Residential |
scraped_at, source_url | Collection time and the search or place URL used | ISO 8601, URL |
license_number, service_areas and specialty are best-effort text matches from the contractor's website. They are null or empty when the site does not print them, and they are not a state license-board lookup.
How many electricians can I get per city?
Google Maps lists up to about 120 businesses for one search, and the Actor reads all of them, 20 per page. To build a bigger list, add several cities in locations (for example ["Dallas, TX", "Fort Worth, TX", "Plano, TX"]) and raise maxResults (up to 2,000). A business that appears in more than one search is returned once. Use a city name rather than a bare ZIP code: a ZIP code alone returns far fewer places.
How are electrician emails found and verified?
When enrichEmails is on, the Actor reads up to maxWebsitePages pages of each contractor's website (home, contact, about, services, service-area) and collects the email addresses printed there. With verifyEmails on, each email's domain is checked for a mail server (DNS MX record) without sending anything. That removes dead domains and typos, but it does not prove the individual mailbox exists. In a 26-lead test in Austin, TX, 16 leads had an email and all 26 had a phone number and website.
When should I use this Actor, and when not?
Use it to build territory lists of residential, commercial or industrial electricians, solar installers, EV-charger installers, low-voltage and generator contractors, with phones, websites and emails ready for a CRM. Choose outputFormat: "hubspot" or "salesforce" to get column names that match those imports.
Do not use it for:
- Official license status or expiry dates. Use TDLR License Scraper for Texas or Contractor License Leads for WA, CA and TX.
- Other trades. Use HVAC Leads Scraper, USA Plumbers Scraper or Roofing Contractor Lead Scraper.
- Any business type on Google Maps. Use Google Maps Scraper.
Input
| Field | Default | Notes |
|---|---|---|
businessType | Residential Electrician | One of 9 presets, or Custom with searchQuery |
location | Dallas, TX | City and state |
locations | – | Several cities in one run |
searchQuery | – | Your own Google Maps query, used with Custom |
startUrls | – | Google Maps place URLs (one business each) or search URLs; overrides specialty and location |
maxResults | 50 | 1–2,000 leads |
enrichEmails, verifyEmails, enrichSocials, extractLicenseNumber, extractServiceAreas | true | Website enrichment switches |
maxWebsitePages | 5 | Website pages read per contractor, 1–20 |
outputFormat | full | full, hubspot or salesforce |
deduplicateResults | true | Also merge listings that share a phone number |
{"businessType": "Solar Installer","locations": ["Phoenix, AZ", "Tucson, AZ"],"maxResults": 100,"enrichEmails": true,"verifyEmails": true}
JavaScript (apify-client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/electrician-lead-scraper').call({businessType: 'Commercial Electrician',location: 'Houston, TX',maxResults: 25,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.map((l) => `${l.name} | ${l.phone} | ${l.email ?? '-'}`));
Python (apify-client 3.x)
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("muhammadafzal/electrician-lead-scraper").call(run_input={"businessType": "EV Charging Station Installer", "location": "Seattle, WA", "maxResults": 25})for lead in client.dataset(run.default_dataset_id).iterate_items():print(lead["name"], lead["phone"], lead["email"])
Use it from an AI assistant
Electrician Leads Scraper works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add https://mcp.apify.com/?tools=muhammadafzal/electrician-lead-scraper as a server and ask, for example: "Get me 40 commercial electricians in Houston with phone numbers and emails, and put the ones rated 4.5 or higher first."
Output example
[{"name": "Valencia Electric, Llc","business_type": "Residential Electrician","category": "Electrician","address": "3421 Hacienda Dr, Dallas, TX 75233","phone": "(214) 295-8910","website": "http://www.valenciaelectric.com/","email": "info@valenciaelectric.com","email_verified": true,"email_verification_status": "deliverable","license_number": "26090","service_areas": ["Dallas", "Irving", "Grand Prairie", "Arlington"],"rating": 5,"review_count": 30,"latitude": 32.7029204,"longitude": -96.8884897,"maps_url": "https://www.google.com/maps/place/?q=place_id:ChIJe4vGC3qQToYRZgYB9TZSgBA"},{"name": "Falco Electrical Services LLC","category": "Electrician, Electric vehicle charging station contractor, Lighting contractor","address": null,"phone": "(512) 470-8938","website": "https://www.falcoelectricllc.com/","rating": 5,"review_count": 127,"latitude": 30.4182041,"longitude": -97.6640979}]
How much does it cost?
You pay per lead saved to the dataset, plus a start fee per started GB of allocated memory. Platform usage is included.
| Event | Free | Bronze | Silver | Gold |
|---|---|---|---|---|
| Enriched electrician lead | USD 0.025 | USD 0.024375 | USD 0.02375 | USD 0.02 |
| Actor start (per started GB of memory) | USD 0.009856 | USD 0.009609 | USD 0.009363 | USD 0.007884 |
The default memory is 512 MB, so one start event is charged. Worked totals on the Free tier: 50 leads cost about USD 0.01 + 50 × 0.025 = USD 1.26; 500 leads cost about USD 12.51. A lead is charged only after it is saved, each Google place is charged once per run, and if you set a maximum charge the run stops cleanly before going over it.
Reliability and limits
- Runs are fast: a 26-lead run with website enrichment took about 9 seconds and used under 100 MB of memory.
- Google Maps search stops at about 120 places per query.
- Website enrichment depends on what each contractor publishes; sites that block automated reads return no email.
- Every run writes an
OUTPUTrecord withstatus(DATA,EMPTY,BLOCKED,FAILEDorREJECTED), leads delivered, lead events charged, stop reason and warnings. If Google blocks every search, the run ends as failed with no lead charges.
FAQ
Is there a free electrician leads list? Apify's free plan includes monthly credit you can use on this Actor; leads cost USD 0.025 each on the Free tier, so a 3-lead test costs about USD 0.08.
Why is the email empty for some electricians? Many contractors publish only a phone number or a contact form. The Actor never guesses or generates emails.
Can I scrape one specific electrician from a Google Maps link?
Yes. Put the place URL (https://www.google.com/maps/place/...) in startUrls. Google Maps search URLs work there too. Short maps.app.goo.gl links are not supported.
Why is the address null for some businesses? Service-area businesses hide their street address on Google Maps. Their phone, website, coordinates and rating are still returned.
Will I be charged twice for the same business?
No. Each Google place is saved and charged once per run, and with deduplicateResults on, listings sharing a phone number are merged too.
Do I need a proxy or a Google account? No. Access is handled by the Actor and no login is used.
Can I export to HubSpot or Salesforce?
Yes. Set outputFormat to hubspot or salesforce and download the dataset as CSV.
Related Actors
- HVAC Leads Scraper
- Contractor Leads Scraper
- Roofing Contractor Lead Scraper
- USA Plumbers Scraper
- TDLR License Scraper
- Google Maps Scraper
Legal and compliance
The Actor reads public Google Maps listings and public contractor websites without logging in. Business contact data can still be personal data in some jurisdictions; follow GDPR, CAN-SPAM, TCPA and the Do Not Call rules that apply to your outreach, and honour opt-outs.
Last verified: 2026-10-27