Texas TDLR License & Contractor Records Scraper
Pricing
from $9.23 / 1,000 results
Texas TDLR License & Contractor Records Scraper
Extract public Texas TDLR license records across 149 trades including electricians, HVAC, cosmetology and tow companies. Get licensee name, business, license number, status, address, city, county, ZIP, phone and dates. Export to JSON, CSV or Excel.
Pricing
from $9.23 / 1,000 results
Rating
5.0
(1)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
Texas TDLR License Scraper
Here is one real result, with every field the actor returns:
{"name": "APEX TOWING LLC","businessName": null,"licenseType": "Tow Company","licenseNumber": "006632622C","status": null,"address": "3802 CULEBRA RD","city": "SAN ANTONIO","state": "TX","zip": "78228-5820","county": "BEXAR","phone": "210-758-0310","licenseSubtype": null,"continuingEducationFlag": null,"mailingAddress": "3802 CULEBRA RD","mailingCity": "SAN ANTONIO","mailingState": "TX","mailingZip": "78228-5820","mailingPhone": "210-758-0310","insuranceCompany": "NATIONAL LIABILITY & FIRE INSURANCE COMPANY","policyType": "10","coverageAmount": null,"vehicleCount": "1","tdiNumber": "93805","insuranceEffectiveDate": "6/4/2026 12:00:00 AM","insuranceCancelDate": "8/2/2026 12:00:00 AM","issueDate": null,"expirationDate": null,"observedAt": "2026-07-25T07:47:45.603Z","error": null}
Every value above is the exact record from a live run. Fields are null when the selected TDLR file does not carry that column for the licensee (for example, insurance fields are populated for tow companies but not for individual electricians).
The most complete Texas TDLR license scraper available. It downloads the official bulk license file for any of 150+ TDLR programs, returns every column each file exposes (physical and mailing address, phone, county, license dates, and for regulated fleets the insurer, policy, vehicle count and coverage), and gives you six client-side filters (program, name, city, county, ZIP, license number) to target exactly the licensees you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor downloads the official public bulk license CSV published by the Texas Department of Licensing and Regulation (TDLR) for each program you select, parses it into normalized records, applies your filters client-side, and writes one record per licensee to the run's dataset. Programs range from electricians, cosmetologists and barbers to tow companies, vehicle storage facilities, massage therapists, midwives and podiatrists, over 150 in total. Column availability depends on the file: regulated-fleet programs (tow companies, vehicle storage) carry insurer, policy and vehicle data, while individual-trade files carry license dates and continuing-education flags. Missing values are returned as null rather than invented.
Quickstart
Open the actor, paste this into the input, and press Run. It returns 10 Master Electrician records.
{"program": ["Ltmstele.csv"],"maxLicenses": 10}
program defaults to Master Electricians. Every filter is optional and applied after the CSV is downloaded; leave them blank to keep everything.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
program | string[] | no | ["Ltmstele.csv"] | One or more TDLR license programs, each mapping to an official bulk CSV. Choose from 150+ programs (electricians, cosmetology, tow companies, massage, podiatry, and more). All Licenses (ltlicfile.csv) is the full statewide file and is large. |
maxLicenses | integer | no | 10 | Maximum licensee records to collect. Range 1 to 5000000. |
name | string | no | (empty) | Keep only licensees whose name or business name contains this text (case-insensitive). |
city | string | no | (empty) | Keep only records in this city (case-insensitive, partial match). |
county | string | no | (empty) | Keep only records in this Texas county (case-insensitive, partial match). |
zip | string | no | (empty) | Keep only records whose ZIP starts with this value. |
licenseNumber | string | no | (empty) | Keep only the record(s) with this exact license or certificate number. |
All filters are applied client-side after the CSV is downloaded and combine with logical AND.
Output reference
One dataset item per licensee. Types: string, or null when the source file does not carry that column for the record.
| Field | Type | Description |
|---|---|---|
name | string | Licensee name. |
businessName | string | Business or DBA name, or null. |
licenseType | string | License type derived from the selected program, for example Master Electrician, Tow Company. |
licenseNumber | string | License or certificate number. |
status | string | License status when the file carries it, otherwise null. |
address | string | Physical address. |
city | string | Physical address city. |
state | string | Physical address state. |
zip | string | Physical address ZIP. |
county | string | Texas county. |
phone | string | Phone number, or null. |
licenseSubtype | string | License subtype code when present, for example ME. |
continuingEducationFlag | string | Continuing-education flag (Y/N) when present. |
mailingAddress | string | Mailing address. |
mailingCity | string | Mailing address city. |
mailingState | string | Mailing address state. |
mailingZip | string | Mailing address ZIP. |
mailingPhone | string | Mailing phone. |
insuranceCompany | string | Insurer name (regulated-fleet programs), or null. |
policyType | string | Insurance policy type code, or null. |
coverageAmount | string | Coverage amount when published, or null. |
vehicleCount | string | Number of insured vehicles, or null. |
tdiNumber | string | Texas Department of Insurance company number, or null. |
insuranceEffectiveDate | string | Insurance effective date, or null. |
insuranceCancelDate | string | Insurance cancellation date, or null. |
issueDate | string | License issue date when present, or null. |
expirationDate | string | License expiration date (MM/DD/YYYY) when present, or null. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"program": ["TowCompanies.csv"], "maxLicenses": 3}):
{"name": "BLAGRONE PROPERTIES LLC","businessName": "BL TOWING","licenseType": "Tow Company","licenseNumber": "006602290C","status": null,"address": "511 1/2 EAST SABINE ST","city": "CARTHAGE","state": "TX","zip": "75633-2721","county": "PANOLA","phone": "903-693-5782","mailingAddress": "511 E SABINE ST","mailingCity": "CARTHAGE","mailingState": "TX","mailingZip": "75633-2721","mailingPhone": "903-693-5782","insuranceCompany": "PROGRESSIVE COUNTY MUTUAL INSURANCE COMPANY","policyType": "23","vehicleCount": "2","tdiNumber": "67940","insuranceEffectiveDate": "12/30/2025 12:00:00 AM","insuranceCancelDate": null,"observedAt": "2026-07-25T07:47:45.603Z","error": null}
Null-only fields are omitted here for readability but are present in the full dataset item.
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~texas-tdlr-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"program":["Ltmstele.csv"],"county":"HARRIS","maxLicenses":50}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~texas-tdlr-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"program":["TowCompanies.csv"],"city":"San Antonio","maxLicenses":200}'
Apify CLI:
apify call scrapers_lat/texas-tdlr-scraper \--input '{"program":["vsMassageTherapist.csv"],"name":"Nguyen"}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per licensee record returned (
resultevent). See the pricing tab for the current per-result price. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxLicenses.
FAQ and troubleshooting
A run returned 0 records. Why? Your filters (name, city, county, ZIP, license number) matched nothing in the selected file. Loosen the filters or confirm the value. Zero-result runs are not charged.
Which programs can I download?
Over 150 TDLR programs, from electricians and cosmetologists to tow companies, vehicle storage facilities, massage therapists and podiatrists. Pick one or more in the program field. All Licenses is the full statewide file and is large.
Why are the insurance fields null? Those columns only exist in regulated-fleet files such as tow companies and vehicle storage facilities. Individual-trade files carry license dates and continuing-education flags instead.
Can I scrape several programs at once?
Yes. Add each CSV to program. maxLicenses applies across the whole run.
Is this an official Texas government tool? No. This actor is independent and has no affiliation with TDLR. It downloads only the bulk license files TDLR publishes for public use.
Related scrapers
- Texas PELS Engineers Scraper: Texas professional engineers and firms.
- Texas Comptroller Entities Scraper: Texas registered business entities and officers.
- Tennessee License Scraper: Tennessee professional and business licenses.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with the Texas Department of Licensing and Regulation. Accesses only publicly available bulk license data.
