Texas State Licensed Contractor Scraper — TDLR License Data avatar

Texas State Licensed Contractor Scraper — TDLR License Data

Pricing

from $25.00 / 1,000 tdlr license records

Go to Apify Store
Texas State Licensed Contractor Scraper — TDLR License Data

Texas State Licensed Contractor Scraper — TDLR License Data

Scrape Texas Department of Licensing & Regulation (TDLR) public license records: license number, type, class, business & contact info, status, bond, insurance, discipline, sponsor. Returns CRM-ready structured JSON for contractor lead-gen and compliance verification.

Pricing

from $25.00 / 1,000 tdlr license records

Rating

0.0

(0)

Developer

Muhammad Afzal

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Scrapes the Texas Department of Licensing and Regulation (TDLR) public license database and returns complete, structured licensee records — license number, type, class, business name, contact details, status, issue/expiration dates, bond amount, insurance amount, sponsor, and discipline/violations.

Export scraped data, run the scraper via API, schedule and monitor runs, or integrate with other tools.


Why use this actor

  • Full license detail — not just the search-results row. Every record carries the detail-page data: bond, insurance, sponsor, discipline, and violations.
  • 80+ license program types — Electricians, Air Conditioning Contractors, Elevator Contractors, Cosmetologists, Barbers, Massage Therapists, Mold Remediation, and every other TDLR program.
  • Flexible filtering — by license type, license number, business name, owner name, city, county, ZIP code, or technician tier (Registered / Certified).
  • Contractor lead-gen ready — Electrician and Elevator Contractor records include address, phone, and email. Drop straight into HubSpot/Salesforce.
  • Compliance / verification — verify a contractor's license status, bond, and insurance before hiring. Perfect for insurance underwriters, HOAs, and GCs.
  • MCP/AI-agent friendly — semantic field names, field-level output schema, predictable maxResults, and a per-record pricing model an agent can budget.

What it outputs

One dataset item per TDLR license:

FieldTypeExample
licenseNumberstring80019
licenseTypestringElectricians
licenseClassstringMaster
licenseDescriptionstringMaster Electrician
businessNamestringAcme Electric LLC
contactNamestringJohn Smith
addressstring123 Main St
citystringAustin
statestringTX
zipCodestring78701
countystringTravis
phonestring(512) 555-0100
emailstringinfo@acmeelectric.com
statusstringActive
issueDatestring2021-01-15
expirationDatestring2026-01-15
renewalDatestring2024-01-15
bondAmountstring$10,000
insuranceAmountstring$500,000
sponsorstringAcme Electric LLC
sponsorLicenseNumberstring80019
sponsorExpirationstring2026-01-15
disciplinestringNone
violationsstringNone
detailUrlstringhttps://www.tdlr.texas.gov/LicenseSearch/Detail/80019
scraped_atstring2026-07-01T20:35:00.000Z
source_urlstringhttps://www.tdlr.texas.gov/LicenseSearch/

Note: phone, email, bondAmount, insuranceAmount, sponsor* are published by TDLR only for license programs that collect them (Electricians, Elevator Contractors, Air Conditioning Contractors). For other programs these fields will be null.

Input parameters

FieldTypeRequiredDescription
licenseTypeenumrecommendedTDLR license program (e.g. Electricians).
licenseNumberstringnoLook up a specific license number.
businessNamestringnoFull/partial business name.
ownerNamestringnoIndividual/owner license holder name.
citystringnoTexas city (free text).
countyenumnoTexas county (official list, incl. Out Of State).
zipCodestringno5-digit ZIP.
technicianTypeenumnoAll / Registered / Certified (Electricians and A/C only).
maxResultsintegernoMax records to return. Default 50.

At least one filter is required. licenseType alone is the most common entry point.

Pricing

EventPriceWhen charged
result-item$0.025Per TDLR license record saved to the dataset
apify-actor-start$0.00005Once per run

A typical small pull of 100 licensed-electrician leads costs ≈ $2.50 + a few cents compute. There is no charge for runs that return 0 results.

Quickstart

# 1. Install + run locally against the live TDLR site
cd tdlr-texas-scraper
npm install
apify login
apify run --input '{"licenseType":"Electricians","city":"Austin","maxResults":5}'
# 2. Push to your Apify account
apify push -f -w 120
# 3. Set PPE pricing + SEO (one-time, after first push)

Run via API:

curl -X POST "https://api.apify.com/v2/acts/USERNAME~tdlr-texas-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"licenseType":"Electricians","county":"Harris","maxResults":100}'

How it works

  1. GET the TDLR search page and harvest the ASP.NET hidden fields (__VIEWSTATE, __EVENTVALIDATION).
  2. POST the search form with your filters.
  3. Parse the results grid and enqueue each license's detail-page URL.
  4. GET each detail page, extract the full record, and push it to the dataset immediately (never batched across requests — a single detail-page timeout can't lose other records).
  5. Stop when maxResults is reached. Each successful record triggers a result-item charge.

Limitations & transparency

  • Selectors may need a one-time calibration run. TDLR's public search HTML occasionally shifts class names. The actor uses multiple fallback selectors per field. If a run returns 0 items with a No detail links parsed from results page warning, run it once locally and adjust the selectors/constants at the top of src/main.ts (search form field names + the RESULTS/DETAIL parsers). This is the only brittle layer; the rest of the pipeline is durable.
  • Single results page. The current build enqueues detail links from the first results page (TDLR shows up to a few hundred rows per search). For exhaustive lists, run multiple county/city filters and merge the datasets.
  • Contact info (phone/email) is only published by TDLR for Electricians and Elevator Contractors — it will be null for other programs by design, not a bug.
  • No login, no anti-bot — TDLR's public search is open. The actor uses US datacenter proxies (fast + cheap) by default.

Use cases

  • Home-services lead generation — pull every licensed electrician / A/C / elevator contractor in a county with phone + email for cold outreach.
  • Compliance & verification — bulk-verify that subcontractors hold an active license, valid bond, and current insurance before signing a contract.
  • Insurance underwriting — feed bond + insurance amounts into risk models.
  • Market research — count active licensees by program, county, or city for TAM sizing.

Troubleshooting

SymptomFix
0 results, No detail links parsed warningDo one local apify run, open the saved HTML, and update the RESULTS/DETAIL selectors in src/main.ts.
phone/email are nullExpected for non-Electrician/non-Elevator license programs — TDLR doesn't publish contact info for them.
__VIEWSTATE missingTDLR may have changed the search URL. Confirm SEARCH_PAGE_URL/SEARCH_RESULTS_URL at the top of src/main.ts.
Charge shows but no rowsEnsure at least one filter is set and spelled exactly as TDLR uses it (case-insensitive for businessName).

Source: https://www.tdlr.texas.gov/LicenseSearch/ — Texas Department of Licensing and Regulation public license search. This actor only reads publicly available licensee data.