HVAC Leads Scraper — Contractor Emails & Phones
Pricing
from $35.00 / 1,000 enriched hvac leads
HVAC Leads Scraper — Contractor Emails & Phones
Find HVAC contractor leads in any US city from Google Maps: phone, website, checked email, services, 24/7 flag and rating. USD 50 per 1,000 leads.
Pricing
from $35.00 / 1,000 enriched hvac leads
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
16
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
HVAC Leads Scraper builds HVAC leads from Google Maps: it finds HVAC contractors in any US city and returns each company's name, phone, website, email with a deliverability check, detected services, 24/7 emergency flag, rating and map location. It is built for teams that sell to HVAC companies, such as field-service software, equipment suppliers, marketing agencies and insurers, and it costs USD 50 per 1,000 enriched leads on the FREE tier (USD 35 per 1,000 on GOLD).
These are leads of HVAC businesses for B2B outreach. If you are an HVAC contractor looking for homeowner service requests, this Actor is not that kind of lead source.
What data does HVAC Leads Scraper return?
Each lead is one dataset row. With the default full output format you get these fields:
| Field | What it contains |
|---|---|
business_name | Company name as listed on Google Maps |
business_type | The HVAC sub-niche you searched, for example AC Repair Service |
category | Google Maps category label, for example HVAC contractor |
phone | Phone number from the Google Maps listing (US and Canada formats) |
website | Company website from the listing |
email | First email address found on the company website |
email_verified, email_verification_status, email_verification_note | Result of the deliverability check: smtp_verified, dns_only, unverified or unknown |
all_emails | Up to 5 emails found on the website, each with its own check result |
services | HVAC services detected on the website, such as AC Repair, Furnace Installation, Duct Cleaning, Heat Pump Service or Commercial HVAC (17 service patterns) |
emergency_service | true when the website advertises 24/7 or emergency service, otherwise null |
facebook, instagram, linkedin, twitter | Social profile links found on the website |
address | Full street address from the Google Maps listing, for example 1725 W Williams Dr #15, Phoenix, AZ 85027 |
rating | Google Maps star rating |
review_count | Number of Google reviews |
hours | Weekly hours, for example Monday: 7 AM–5 PM; Tuesday: … |
google_maps_url, place_id | Maps place link and the Google place ID (ChIJ…) |
latitude, longitude | Coordinates of the listing |
scraped_at, source_url | Collection time and the Google Maps search URL |
Choose hubspot or salesforce in Output Format to get the same data with HubSpot or Salesforce Lead column names (city, state and ZIP split out), ready for CSV import.
How do I get a list of HVAC companies with emails and phone numbers?
Pick a sub-niche, enter a city, set a result limit and run. The Actor searches Google Maps, then opens each contractor's website (home page plus up to two contact or service pages) to collect emails, social links and services.
- HVAC Business Type: HVAC Company, AC Repair Service, Heating Contractor, Air Conditioning Contractor, Furnace Repair Service, Duct Cleaning Service, Commercial HVAC Contractor, Refrigeration Service, Indoor Air Quality Company, or Custom.
- Location:
City, STworks best, for exampleDallas, TX. ZIP codes also work. - Max Results: start with 3–10 to check the output, then raise it.
- Keep Find Email Addresses, Verify Email Deliverability and Find Social Media Links on for full enrichment, or turn them off for a faster phone-and-address list.
- Download the dataset as CSV, JSON or Excel, or read it through the API.
Input for AC repair companies in Phoenix:
{"businessType": "AC Repair Service","location": "Phoenix, AZ","maxResults": 50,"enrichEmails": true,"verifyEmails": true,"enrichSocials": true,"outputFormat": "full"}
Input for a niche the dropdown does not cover (the location field is ignored in Custom mode):
{"businessType": "Custom","searchQuery": "mini-split installers in Orlando, FL","maxResults": 30,"outputFormat": "hubspot"}
When should I use HVAC Leads Scraper, and when not?
Use it when you need a fresh list of heating, cooling and air-conditioning companies in a specific US market, with contact emails and the services each company advertises, for cold email, calling or CRM import.
Use another Actor when:
- You need several trades at once (plumbers, electricians, roofers and HVAC in one workflow): Contractor Leads Scraper.
- You only need names, phones, ratings and addresses for any business category, with no website crawling: Google Maps Scraper is cheaper per place.
- You need license records instead of marketing data, for example license type, status and expiration from the Texas licensing agency: Texas TDLR License Scraper.
- Your market is in Australia: Yellow Pages Australia Scraper.
- You want homeowner job requests to buy: this Actor does not provide them.
How do I run it from code?
JavaScript with apify-client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/hvac-lead-scraper').call({businessType: 'HVAC Company',location: 'Dallas, TX',maxResults: 50,outputFormat: 'full',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.length, items[0]?.business_name, items[0]?.email);
Python with apify-client:
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("muhammadafzal/hvac-lead-scraper").call(run_input={"businessType": "Heating Contractor","location": "Chicago, IL","maxResults": 25,})for item in client.dataset(run.default_dataset_id).iterate_items():print(item["business_name"], item.get("phone"), item.get("email"))
You can also schedule runs, trigger webhooks, or connect the dataset to Make, Zapier or Google Sheets.
Use it from an AI assistant
HVAC Leads Scraper works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add this single-tool URL to your client: https://mcp.apify.com/?tools=muhammadafzal/hvac-lead-scraper. Then ask in plain language, for example: "Find 25 AC repair companies in Phoenix, AZ with emails and phone numbers and give me a CSV." The assistant reads the input schema, starts the run, and returns the leads. Each lead is charged at the prices below, so set a result limit in your prompt.
What does the output look like?
Two shortened records in the full format (sample values):
[{"business_name": "Comfort Air Solutions","business_type": "HVAC Company","category": "HVAC contractor","services": ["AC Repair", "Furnace Installation", "Duct Cleaning", "24/7 Emergency Service"],"phone": "(214) 555-0192","emergency_service": true,"email": "service@comfortairsolutions.com","email_verified": true,"email_verification_status": "smtp_verified","website": "https://comfortairsolutions.com","address": "4521 Maple Ave, Dallas, TX 75219","rating": 4.7,"review_count": 519,"hours": "Monday: 7 AM–5 PM; Tuesday: 7 AM–5 PM; Wednesday: 7 AM–5 PM; Thursday: 7 AM–5 PM; Friday: 7 AM–5 PM; Saturday: Open 24 hours; Sunday: Open 24 hours","facebook": "https://facebook.com/comfortairsolutions","google_maps_url": "https://www.google.com/maps/place/?q=place_id:ChIJlWXYi3ZlK4cR1pYHHriTqQw","place_id": "ChIJlWXYi3ZlK4cR1pYHHriTqQw","latitude": 32.8032,"longitude": -96.8067,"scraped_at": "2026-10-26T12:00:00.000Z"},{"business_name": "North Texas Heating & Cooling","business_type": "HVAC Company","category": "Air conditioning contractor","services": ["Heat Pump Service", "Preventive Maintenance"],"phone": "(972) 555-0148","emergency_service": null,"email": "office@ntxheatcool.com","email_verified": null,"email_verification_status": "unknown","website": "https://ntxheatcool.com","rating": 4.9,"review_count": 443,"hours": "Monday: Open 24 hours; Tuesday: Open 24 hours; Wednesday: Open 24 hours; Thursday: Open 24 hours; Friday: Open 24 hours; Saturday: Open 24 hours; Sunday: Open 24 hours","scraped_at": "2026-10-26T12:00:05.000Z"}]
Pricing: how much do HVAC leads cost?
HVAC Leads Scraper uses pay-per-event pricing. Platform usage is included in the event prices.
| Event | FREE | BRONZE | SILVER | GOLD | PLATINUM / DIAMOND |
|---|---|---|---|---|---|
| Enriched HVAC Lead (one dataset row) | USD 0.05 | USD 0.045 | USD 0.04 | USD 0.035 | USD 0.035 |
| Actor start (per started GB of allocated memory) | USD 0.00005 | USD 0.00005 | USD 0.00005 | USD 0.00005 | USD 0.00005 |
Worked totals on the FREE tier at the default 512 MB memory (one start event, USD 0.00005):
- 50 leads: 50 × USD 0.05 + USD 0.00005 = USD 2.50005
- 3-lead test run: 3 × USD 0.05 + USD 0.00005 = USD 0.15005
On GOLD the same 50 leads cost USD 1.75005. A lead is charged only when it has a phone, website or email; a lead with only a name and Maps link is saved but not charged, and each lead is saved before it is charged. A run that finds no listings charges only the start fee. Set a maximum cost per run in Apify Console to cap spending; the Actor stops when that limit is reached. Every run ends with a status message of the form Saved N leads; charged M lead events; stop reason: … and writes an OUTPUT record with the same counts to the default key-value store.
How reliable are the emails, services and limits?
- One search per run. Google Maps lists about 120 places per search, so
maxResultsvalues above 120 rarely add leads. For more coverage, run one city or ZIP code per run and merge the datasets; duplicates are removed by place ID within a run. - Emails depend on the website. Many contractors publish only a phone number or a contact form, so
emailisnullfor some leads. - The email check does not send mail. It looks up the domain's mail servers and asks the server whether the mailbox exists. Some servers do not answer; those emails get
unknown. Each check times out after 8 seconds. - Services and the emergency flag are detected from website text, so services a company does not mention online are missed.
- Speed. Listings come from Google Maps' own search results data over plain HTTP, and each website is read the same way (home page plus up to two contact or service pages), so a 50-lead run usually finishes in a few minutes. Turning off email and social enrichment gives a faster phone-only list.
- Outside North America the phone and street-address patterns may return
null. - Data access is handled by the Actor. An optional custom proxy URL is available under Advanced options.
FAQ
Is there a free HVAC leads tool?
You can run HVAC Leads Scraper on Apify's free plan. Each delivered lead is charged at the FREE-tier price above, and there is no subscription.
Does it find the owner's personal email?
No. It collects emails published on the company website, which are usually shared inboxes such as service@ or info@.
Can I search several cities in one run?
No, one run covers one location or one custom query. Run it once per city, or schedule several runs, and merge the datasets.
Does it work for commercial HVAC companies?
Yes. Choose Commercial HVAC Contractor, or use Custom with a query such as commercial HVAC contractors in Denver, CO.
Can I import the leads into HubSpot or Salesforce?
Yes. Set Output Format to hubspot or salesforce, download the dataset as CSV, and use the CRM's import wizard.
Why are some leads not charged?
A lead with no phone, website or email is a name and Maps link only. It is saved in the dataset for reference but not charged as an enriched lead; the run's status message and OUTPUT record show how many such leads there were.
Related Actors
Other local-business lead tools from the same developer:
- Contractor Leads Scraper for HVAC, plumbing, electrical and other trades together
- Google Maps Scraper for any business category
- USA Plumbers Scraper and Electrician Leads Scraper for neighboring trades
- Dentist Leads Scraper and Google Maps Restaurant Scraper for other local-business niches
Legal and compliance
HVAC Leads Scraper collects business information that companies publish on Google Maps and on their own websites. It does not log in or bypass access controls. You are responsible for how you use the data: follow CAN-SPAM for commercial email, TCPA and Do Not Call rules for calls and texts, and any state or local laws that apply. This is not legal advice.
Last verified: 2026-11-04