HVAC Contractor Directory & Leads (State License Boards) avatar

HVAC Contractor Directory & Leads (State License Boards)

Pricing

$0.002 / hvac contractor licence

Go to Apify Store
HVAC Contractor Directory & Leads (State License Boards)

HVAC Contractor Directory & Leads (State License Boards)

Export active HVAC contractor licences from five state boards β€” Texas, Ohio, West Virginia, Idaho and Delaware (27,635 on 2026-10-15) β€” in one list, with the phone and address each board publishes.

Pricing

$0.002 / hvac contractor licence

Rating

0.0

(0)

Developer

ScrapeBench

ScrapeBench

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Pain points

  • HVAC is licensed by a different board in every state, each with its own site and format: an open-data table in Texas, a roster CSV built on request in Ohio, a paged search in West Virginia, one spreadsheet per licence type in Idaho, and a dataset of every profession in Delaware.
  • The Texas table holds about a million TDLR licences of every trade; A/C Contractors are 20,436 rows of it, and 1,776 of those had already expired on 2026-10-15.
  • What each board publishes differs: West Virginia lists a phone for 1,636 of its 1,637 HVAC contractors, while Texas publishes no address, city or phone for A/C Contractors at all.

What we solve

  • One run exports the active HVAC contractor licences of all five boards into one table with the same columns, or any subset of states.
  • Only active or current licences: expired Texas licences, lapsed Idaho ones and closed Delaware ones are left out.
  • Narrow by county, city or ZIP, each with a batch list; maxResults caps every state separately, so a sample run gives you rows from each board.

Summary

Active HVAC contractor licences from five state licensing boards in one export: Texas (TDLR A/C Contractors), Ohio (OCILB HVAC, refrigeration and hydronics contractors), West Virginia (WVCLB licences with the HVAC classification), Idaho (DOPL HVAC contractor licences) and Delaware (DPR Master HVACR). 27,635 licences on 2026-10-15. Every row has the state, board, licence number and type, holder name and expiry, plus whatever contact data that board publishes. Each board is read live on every run. Pay per licence returned.

Who it's for

  • HVAC equipment and parts distributors building contractor prospect lists
  • Sales reps selling software, financing, insurance or training to HVAC contractors
  • General contractors and property managers sourcing licensed HVAC subs
  • Lead-generation agencies building HVAC lists by county

How to use

Set the input, run the actor, and collect results from the run's dataset (export to JSON/CSV/Excel, or pull via the Apify API). Example input:

{
"states": [
"OH"
],
"counties": [
"Franklin"
],
"maxResults": 1000
}

See Inputs below for every available field.

What you get

One row per record:

FieldDescription
stateLicensing state: TX, OH, WV, ID or DE
boardLicensing board: TDLR, OCILB, WVCLB, DOPL or DPR
business_nameLicensed company, or the holder's name where the board lists a person
person_nameLicensed individual or qualifying party, when published
phoneBusiness phone, when the board publishes one
addressStreet or mailing address (OH, WV, ID)
cityCity (OH, WV, ID, DE)
zip_codeZIP or ZIP+4
countyCounty as the board lists it (TX, OH, WV, ID)
license_typeThe board's licence type, e.g. A/C Contractor, HVAC Contractor, Master HVACR
license_numberThe board's licence number
expiration_dateLicence expiry (YYYY-MM-DD)
source_urlThe board page or dataset the row came from

Sample:

{
"state": "OH",
"board": "OCILB",
"license_number": "HV.10704",
"license_type": "HVAC Contractor",
"status": "ACTIVE IN RENEWAL",
"business_name": "DOOLEY HEATING & AIR CONDITIONING",
"person_name": "BRIAN P DOOLEY",
"phone": "(614) 278-9944",
"email": null,
"address": "2010 Zettler Rd",
"city": "Columbus",
"address_state": "OH",
"zip_code": "43232-3834",
"county": "Franklin",
"issue_date": "2026-01-01",
"expiration_date": "2026-12-31",
"trade": "hvac",
"matched_by": "export",
"source_url": "https://elicense4.com.ohio.gov/Lookup/GenerateRoster.aspx"
}

Inputs

FieldRequiredTypeDefaultDescription
statesnoarray["OH", "WV"]Which boards to export: TX, OH, WV, ID, DE (codes or names). Empty = all five.
statenostringβ€”One state, as a code or name. Kept for saved tasks; 'States' takes a list.
countynostringβ€”A county name, matched in every selected state (so pick the state too: Franklin County exists in Ohio, Texas and Idaho). Delaware's board publishes no county, so a county filter returns no Delaware rows.
countiesnoarray[]Several counties in ONE run, e.g. Franklin, Delaware, Licking.
citynostringβ€”Business or mailing city, exact match ignoring case and punctuation. Texas publishes no city for A/C Contractors, so a city filter returns no Texas rows.
citiesnoarray[]Several cities in ONE run.
zipnostringβ€”A 5-digit ZIP (ZIP+4 accepted; the first 5 digits are matched). Texas publishes no ZIP for A/C Contractors.
zipsnoarray[]Several ZIP codes in ONE run.
maxResultsnointeger100Cap on licences for EACH selected state β€” your spend control. Every active HVAC licence across the five boards was 27,635 on 2026-10-15 (TX 18,660, OH 4,850, WV 1,637, ID 1,249, DE 1,239); set 100000 to take them all.
proxyConfigurationnoobject{"useApifyProxy": false}Not needed: every board answers Apify's own IPs (each one runs live in its own state actor). Leave it off unless a run reports that a board refused it.

Pricing (Pay Per Event)

You pay per result (dataset-item) β€” no charge for empty runs. Example: 302 Franklin County, Ohio HVAC contractors at $0.002/result β‰ˆ $0.60.

The default run (100 licences per state, all five states) costs $1.00; every active licence in the five states (27,635 on 2026-10-15) costs $55.27 at maxResults 100000. Apify platform usage is billed separately.

Use cases

  • Distributor prospecting: an equipment distributor exports every HVAC contractor in Franklin County, Ohio with phone and address for a territory push.
  • Multi-state list build: a software vendor takes all five states once, then re-runs monthly and compares licence numbers to find new licensees.
  • Phone-ready outreach: a sales team exports West Virginia, where nearly every HVAC licence carries a phone number, for a calling campaign.
  • Sub sourcing: a general contractor lists the licensed HVAC contractors in one Idaho county before sending bid invitations.

Why this actor

  • 27,635 active HVAC licences across five boards in one table with one set of columns (measured 2026-10-15).
  • Each board is read live on every run from its own public site or open-data portal.
  • A board that does not answer becomes a free notice row while the other states still deliver; a filter value it does not recognise is dropped and logged, never widened to everything.

Limitations & updates

Five states only (TX, OH, WV, ID, DE); more may be added. Contact fields are whatever each board publishes, and Texas publishes no address or phone for A/C Contractors. Texas and Delaware licences are held by individuals, so business_name is often a person's name there. Ohio licenses commercial trade contractors only. Addresses are as filed and can be PO boxes or out-of-state offices.

FAQ

Which states and licences are included?

Texas: TDLR A/C Contractor licences (18,660 current). Ohio: OCILB HVAC, refrigeration and hydronics contractor licences (4,850). West Virginia: WVCLB licences carrying the HVAC classification (1,637). Idaho: DOPL HVAC Contractor, HVAC Specialty and HVAC Limited Heating Specialty licences (1,249). Delaware: DPR Master HVACR and Master HVACR Restricted licences (1,239). Counts from 2026-10-15.

Which contact fields will I get?

Whatever each board publishes, measured 2026-10-15. Phone: WV 1,636 of 1,637, OH 3,125 of 4,850, ID 46 of 1,249, TX and DE none. Street address: OH 4,819, WV all, ID 734, TX and DE none. City and ZIP: OH, WV, ID (734) and DE (all); Texas publishes none for A/C Contractors, only the county (17,988 of 18,660).

Does it include expired licences?

No. Texas licences past their expiry date, Idaho licences not Active and Delaware licences not Active are left out; Ohio's roster and West Virginia's search list live licences only.

How do filters work across states?

A county, city or ZIP is matched in every state you select, so pick the state too: Franklin County exists in Ohio, Texas and Idaho. A state whose board does not publish a field cannot match a filter on it (no Texas rows for a city or ZIP filter, no Delaware rows for a county filter), and the run log says so.

How am I charged?

$0.002 per HVAC licence returned. maxResults caps each state separately: the default 100 per state across all five is 500 licences ($1.00). Franklin County, Ohio was 302 ($0.60) and all five states 27,635 ($55.27) on 2026-10-15. Rows explaining an outage, an unrecognised filter, no match or a reached spending cap are free.

Which actor to choose

Need every trade, not just HVAC? Each state has its own lookup:

  • Texas Contractor & Trade License Lookup & Export (TDLR) β€” You want Texas electrical, A/C and other TDLR trade licences, or a lookup by licence number or name.
  • Ohio Contractor License Lookup & Export (OCILB) β€” You want Ohio electrical and plumbing contractors as well as HVAC.
  • West Virginia Contractor License Lookup & Export (WVCLB) β€” You want any West Virginia classification, or a lookup by licence number or company name.

Guides & use cases

Written up on scrapebench.dev β€” the bench that runs and verifies this actor against the live source every night:

More actors, coverage and nightly verification results: scrapebench.dev

Works with AI assistants (MCP)

Callable as an MCP tool, so Claude, Cursor, VS Code Copilot and other MCP clients can run it directly. Grab the config from the MCP tab on this page β€” Apify hosts the server and keeps that snippet current, and OAuth signs you in on first connect, so no API token goes in your config file.

Then just ask:

"List the licensed HVAC contractors in Franklin County, Ohio, with phone and address."

That input returned 302 licences on 2026-10-15. Leave the filters empty to export every state. Runs started this way bill exactly like any other run.