Texas Contractor Directory & Leads Scraper (TDLR) avatar

Texas Contractor Directory & Leads Scraper (TDLR)

Pricing

$0.002 / contractor records

Go to Apify Store
Texas Contractor Directory & Leads Scraper (TDLR)

Texas Contractor Directory & Leads Scraper (TDLR)

Pull every TDLR-licensed contractor in any Texas county — licence number, type, expiry, owner — plus street address, suite and phone on the licence types TDLR publishes contact data for.

Pricing

$0.002 / contractor records

Rating

0.0

(0)

Developer

ScrapeBench

ScrapeBench

Maintained by Community

Actor stats

0

Bookmarked

51

Total users

0

Monthly active users

2 days ago

Last modified

Categories

Share

Pain points

  • The TDLR portal searches one licensee at a time, so building a county roster by hand means one search per contractor. The bulk data exists on data.texas.gov, but it is a raw Socrata dataset: you have to know the SoQL query, the county field and the licence-type codes to get a usable list out of it.
  • Building a county-scoped contractor prospect list by hand from the TDLR website takes hours of copy-paste work.
  • Marketing teams and GCs need structured, territory-scoped contact data they can load straight into a CRM — not a slow per-lookup search tool, and not a raw state file where the contact columns are populated on one licence type and empty on the next.

What we solve

  • Pull every TDLR licensee in any Texas county in one run — no per-record search, no manual export.
  • Returns license number, type, subtype, expiration, business name and owner on every row — plus street address, suite, city/ZIP and phone on the licence types TDLR publishes contact data for.
  • Filter by license type (e.g. 'Electrical Contractor', 'A/C Contractor') to narrow the list before it lands in your CRM.

Summary

Browse the complete roster of TDLR-licensed contractors and tradespeople in any Texas county — just supply a county name and get back every licensee on record: license number, type, subtype, expiration, business name and owner. Filter by license type to pull only electricians, HVAC/AC contractors, or any other TDLR-regulated trade. Where TDLR publishes contact details — which it does for the roughly 40 establishment and company licence types, effectively 100% of those rows — you also get street address, suite, city/ZIP and phone; individual licences (Apprentice Electrician, A/C Technician, A/C Contractor, cosmetology operators) are roster-only by law, so those columns come back null. Data comes straight from the official Texas Department of Licensing & Regulation (TDLR) open-data API — authoritative, no scraping fees beyond the flat per-record PPE charge. Ideal for building targeted contractor prospect lists, territory-scoped outreach campaigns, or compliance coverage maps.

Who it's for

  • Sales and BD teams building county-scoped HVAC, electrical, or trade contractor prospect lists
  • Marketing agencies running direct-mail or digital campaigns targeting licensed Texas contractors
  • General contractors and developers building subcontractor shortlists by county and trade type
  • Compliance teams and insurance underwriters mapping licensed coverage in a service territory

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:

{
"counties": [
"TRAVIS"
],
"licenseType": "Electrical Contractor",
"maxResults": 200
}

See Inputs below for every available field.

What you get

One row per record:

FieldDescription
stateAlways 'TX' for this actor
license_numberTDLR license number
business_nameLicensed business or licensee name
person_nameOwner or individual licensee name
license_typeTDLR license type (e.g. A/C Contractor, Master Electrician, Plumber)
license_subtypeTDLR subtype code (e.g. BE, REG, CER, RAIC)
expiration_dateLicense expiration date (MM/DD/YYYY)
countyTexas county of the business address
addressBusiness street address. Published for establishment/company licence types only — null for individual licensees
address_line2Suite / unit / building, when TDLR holds a second address line
city_state_zipBusiness city, state, and ZIP as one glued string, e.g. 'AUSTIN TX 78704'
phoneBusiness phone, bare digits. Published for establishment/company licence types only — null for individual licensees
source_urlLink to the official TDLR open-data dataset

Sample:

{
"state": "TX",
"license_number": "18028",
"business_name": "DEAN JOHNSTON, INC",
"person_name": "DEAN JOHNSTON, INC",
"license_type": "Electrical Contractor",
"license_subtype": "EC",
"expiration_date": "08/04/2026",
"county": "TRAVIS",
"address": "515 S CONGRESS AVE",
"address_line2": "SUITE 106",
"city_state_zip": "AUSTIN TX 78704",
"phone": "5124773747",
"source_url": "https://data.texas.gov/dataset/Texas-Department-of-Licensing-and-Regulation/7358-krk7"
}

Inputs

FieldRequiredTypeDefaultDescription
countynostring"TRAVIS"Texas county name to browse (e.g. TRAVIS, 'Harris County', DALLAS). Case, spacing and a trailing 'County' do not matter. If it is missing or is not a Texas county, the run returns the free county list instead of failing, so you can see the exact names.
countiesnoarray["TRAVIS"]Look up many in ONE run instead of starting a run per lookup. Takes the same values as 'County'. Combined with 'County' if you fill both, and duplicates are removed. Billing is unchanged: you are charged per record returned, not per entry submitted.
licenseTypenostringOptional substring filter on TDLR's license-type text (e.g. 'Electrical Contractor', 'A/C Contractor', 'Establishment'). Note TDLR does not use the word 'HVAC' — the type is 'A/C Contractor'. IF YOU WANT PHONE NUMBERS AND ADDRESSES, pick an establishment/company type: 'Electrical Contractor', 'Appliance Installation Contractor', 'Water Well Driller', 'Full Service Establishment' and ~35 others carry contact data on effectively every row. Individually held licences (A/C Contractor, A/C Technician, all electrician grades, cosmetology operators) are roster-only — the state publishes no address or phone for them, so those columns come back null. Leave blank for every license type in the county.
maxResultsnointeger500Cap on the number of records returned PER ENTRY, not per run — so a batch cannot silently return only the first 500 rows overall and read as 'the rest don't exist'. Default 500; raise to pull an entire county roster (the biggest, Harris, holds 161,937 rows across all trades).

Pricing (Pay Per Event)

You pay per result (dataset-item) — no charge for empty runs. Example: 500 contractor records at $0.002/result$1.00.

Illustrative — the final per-record price is set at publish time. Apify platform usage (compute) is billed separately per your plan.

Use cases

  • Outbound calling lists — pull every Electrical Contractor, Appliance Installation Contractor or Water Well Driller in Travis or Harris County; those licence types carry a business phone and address on effectively every row, so the export is dial-ready.
  • Territory mapping — build a full picture of licensed trade coverage in a county, by trade and by city, for market-entry research or competitive analysis.
  • Subcontractor discovery — find every licensed HVAC or electrical contractor in a county before bidding a commercial project.
  • Compliance auditing — export the county roster to verify that vendors on your approved-supplier list are still licensed and current.

Why this actor

  • Direct from the official TDLR open-data API - authoritative state data, not a stale third-party copy.
  • County-scoped, not one-at-a-time — pull an entire county roster in one run instead of searching license-by-license.
  • License-type filter narrows results before they hit your dataset — HVAC only, electricians only, or the full mix.
  • Pay per record; no results, no charge.

Limitations & updates

Covers Texas TDLR-regulated trades only — excludes general contractors (no statewide TX GC license) and plumbers (TSBPE board, separate dataset). Address, suite, city/ZIP and phone exist only on the licence types TDLR publishes contact data for — about 40 establishment and company types, 99,720 of 983,494 rows (10.1%), measured 2026-08-21. On individually held licences (A/C Contractor, A/C Technician, all electrician grades, cosmetology operators) those columns are null on every row statewide, so filter to an establishment or contractor type if you need a calling list. There is no licence STATUS field in this export at all — expiration_date is the only liveness signal, and a past date is a proxy, not a fact. County filter matches the business address county; 37,776 rows statewide have no county at all and cannot be reached by any county query. Data freshness reflects TDLR's open-data export, which is republished irregularly (no published schedule) — check the dataset's last-updated date on data.texas.gov.

FAQ

Where does the data come from?

The official Texas Department of Licensing & Regulation (TDLR) open-data registry, published on data.texas.gov. TDLR does not publish a refresh schedule for it.

What trades does TDLR license?

TDLR licenses electricians, HVAC/AC contractors and technicians, appliance installers, boiler operators, cosmetologists, behavior analysts, and dozens of other trades — but NOT general contractors (Texas has no statewide GC license) and NOT plumbers (licensed by the separate TSBPE board).

How do I find the right county name to use?

Texas county names in the TDLR dataset are in ALL CAPS (e.g. TRAVIS, HARRIS, DALLAS). The actor accepts any case and normalizes it for you.

How many records can I pull?

As many as the county holds — measured 2026-08-21, Harris has 161,937 TDLR licensees across all trades and Travis has 36,652. maxResults is a cap PER county entry, not per run, and the actor pages through the state's API automatically until it hits your cap or runs out of rows. Narrow with licenseType first unless you really want the whole roster: a county pull is billed per record.

Which license types actually come with a phone number and address?

The establishment and company ones. TDLR publishes contact details for about 40 of its licence types — Electrical Contractor, Full Service Establishment, Mini Establishment, Appliance Installation Contractor, Water Well Driller/Pump Installer, Elevator Contractor, Electrical Sign Contractor and similar — and on those it is present on effectively every row (Electrical Contractor: 13,911 of 13,917 statewide, measured 2026-08-21). Individually held licences do not carry contact data at all: A/C Contractor, A/C Technician, Apprentice/Journeyman/Master Electrician, cosmetology operators and the rest come back with address, city/ZIP and phone null on every row, statewide, by design — that is what the state publishes, not a gap in the scrape. Across the whole dataset it works out at 99,720 of 983,494 rows (10.1%). If you need a dialling list, filter to an establishment or contractor licence type; if you need a roster or a compliance sweep, every type works.

Can I map the results?

Not directly from this output, and that is deliberate. The state's file does carry a coordinate pair, but it is a city centroid rather than a street geocode — across Travis County's Electrical Contractors, 432 distinct addresses share just 17 distinct points, with 347 of them stacked on one. Passing that through would put a whole city's contractors on a single pin, so it is left out; city_state_zip carries the same information with more precision. Geocode the address column yourself if you need pins.

Can I filter by license type?

Yes — pass a partial string in licenseType (e.g. 'A/C Contractor', 'Electrician') to restrict results to that trade type within the county.

How am I charged?

Pay-per-record — one PPE event per dataset item returned. Runs with no results incur no charge.

Is this personal data?

It's public professional-license data (business and license records as TDLR publishes them); we add no personal/PII enrichment beyond what the state publishes.

How current is the data?

TDLR publishes no refresh schedule and the export is not daily. Checked again on 2026-08-21, the dataset's last row update was still 2026-07-16 — 36 days earlier, and the same date reported at the 2026-07-28 check. Records reflect the most recent published snapshot, which can be weeks old; data.texas.gov shows the exact date, and the actor's source_url links straight to it.

Which actor to choose

Part of the contractor-data suite — pick the one that fits your goal:

  • Texas Contractor & Trade License Lookup (TDLR) — You need to verify a specific Texas TDLR license by number or business name — one licensee at a time.
  • California Contractor Directory & Leads Scraper (CSLB) — You want a county-scoped roster of California licensed contractors from the CSLB.
  • Washington Contractor Directory & Leads Scraper (L&I) — You want a county-scoped roster of Washington licensed contractors from L&I.
  • Multi-State Contractor & Trade License Lookup — You need the same contractor verified across TX, WA, OR, CA, and other states in one run.

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