Electrician Leads Scraper: Contractor Emails · Apify
Electrician Leads Scraper — Contractor Emails & Phones avatar

Electrician Leads Scraper — Contractor Emails & Phones

Pricing

from $20.00 / 1,000 enriched electrician leads

Go to Apify Store
Electrician Leads Scraper — Contractor Emails & Phones

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

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

1

Monthly active users

6 days ago

Last modified

Features

Limited permissions

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.

FieldWhat it containsExample
nameBusiness name on Google MapsValencia Electric, Llc
business_typeThe specialty you searched for (null for start-URL runs)Residential Electrician
categoryGoogle Maps categoriesElectrician, Lighting contractor
phonePhone number from Google Maps(214) 295-8910
websiteWebsite from Google Mapshttp://www.valenciaelectric.com/
addressStreet address; null for service-area businesses that hide it3421 Hacienda Dr, Dallas, TX 75233
latitude, longitudeGPS coordinates32.7029, -96.8885
rating, review_countGoogle rating (1–5) and number of reviews5, 30
hoursOpening hours by weekdayMonday: 7:30 AM–4:30 PM; …
maps_url, place_idGoogle Maps link and place IDChIJe4vGC3qQToYRZgYB9TZSgBA
emailFirst email found on the website (a domain-checked one when verification is on)info@valenciaelectric.com
all_emailsEvery email found, each with verified, status and verificationNotearray
email_verified, email_verification_statusResult of the mail-server checktrue, deliverable
social_linksFacebook, Instagram, LinkedIn, X, YouTube and TikTok links found on the websiteobject
license_numberLicense number printed next to "License"/"Lic." or a TECL/EC prefix on the website26090
service_areasPlace names found near "serving"/"service area" wording on the website["Dallas", "Irving"]
specialtySpecialty detected from website text (Residential, Solar installation, EV charging…)Residential
scraped_at, source_urlCollection time and the search or place URL usedISO 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:

Input

FieldDefaultNotes
businessTypeResidential ElectricianOne of 9 presets, or Custom with searchQuery
locationDallas, TXCity 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
maxResults501–2,000 leads
enrichEmails, verifyEmails, enrichSocials, extractLicenseNumber, extractServiceAreastrueWebsite enrichment switches
maxWebsitePages5Website pages read per contractor, 1–20
outputFormatfullfull, hubspot or salesforce
deduplicateResultstrueAlso 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 os
from apify_client import ApifyClient
client = 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.

EventFreeBronzeSilverGold
Enriched electrician leadUSD 0.025USD 0.024375USD 0.02375USD 0.02
Actor start (per started GB of memory)USD 0.009856USD 0.009609USD 0.009363USD 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 OUTPUT record with status (DATA, EMPTY, BLOCKED, FAILED or REJECTED), 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.

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