Contractor License Leads (Texas)
Pricing
Pay per usage
Contractor License Leads (Texas)
Texas contractor licenses (TDLR public data) with a new-licenses-only mode. Business-focused; phone and street address off by default.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
LeadForge Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Share
Returns Texas contractor license records (license number, license type, business/owner name, city, ZIP, county, derived status and expiration date) from the Texas Department of Licensing and Regulation (TDLR) public open data on data.texas.gov, with an optional mode that returns only licenses new since your previous run.
Florida is temporarily unavailable. The Florida DBPR source currently refuses requests from the Apify cloud.
FLis accepted instatesbut is skipped with a warning and returns no records.
When to use
- You need a list of licensed Texas contractors of specific TDLR license types (default: A/C, Electrical, Appliance Installation, Electrical Sign contractors).
- You want only active (non-expired) Texas licenses — the default.
- You run on a schedule and want only Texas licenses that appeared since the last run (
newOnly: true).
When not to use
- You need Florida or any state other than Texas (Florida currently returns nothing; other states are not supported).
- You need the license issue date for Texas — the source does not publish it.
- You need to verify one specific license authoritatively — check the agency's own lookup site; this actor scans a whole dataset.
- You need email addresses (not output) or phone/street address without opting in.
- You need a consumer report or eligibility decision (see FCRA notice below).
Example input
{ "states": ["TX"], "txLicenseTypes": ["Electrical Contractor"], "activeOnly": true, "maxItems": 50 }
Example output (one record per license)
{"state": "TX","licenseNumber": "100","licenseType": "Appliance Installation Contractor","licenseTypeCode": "RAIC","name": "OBY'S APPLIANCE INSTALLATION, INC","businessName": "OBY'S APPLIANCE INSTALLATION, INC","address": null,"city": "AUSTIN","addrState": "TX","zip": "78757","county": "TRAVIS","phone": null,"isSoleProprietor": false,"nameRole": "license owner","status": "Active","firstSeenDate": "2026-10-26","expirationDate": "2027-02-28","isNewSinceLastRun": null,"source": "https://data.texas.gov/d/7358-krk7"}
Input parameters
| Parameter | Type | Default | Allowed values / units | Meaning |
|---|---|---|---|---|
states | array of strings | ["TX"] | "TX"; "FL" accepted but skipped (unavailable) | States to collect |
txLicenseTypes | array of strings | 4 contractor types (see above) | Exact TDLR license_type names, case-sensitive | Texas license types to include |
activeOnly | boolean | true | true / false | true drops expired licenses. TX status is derived from expirationDate (before today = Expired, dropped; missing = Unknown, kept) |
newOnly | boolean | false | true / false | TX only: return only licenses not in the previous run's snapshot. First run per txLicenseTypes set returns 0 TX records (baseline) |
maxItems | integer | 200 | 1–100000 records | Total output cap across states |
includePhone | boolean | false | true / false | Opt-in TX business phone; otherwise phone is null |
includePersonalNames | boolean | false | true / false | Opt-in. When false, name is null for records with isSoleProprietor=true; businessName is unchanged |
includeStreetAddress | boolean | false | true / false | Opt-in street address; otherwise address is null. City/ZIP/county always included |
txAppToken | string (secret) | none | data.texas.gov app token | Optional; only reduces throttling |
sinceDate | string | none | YYYY-MM-DD | FL only (original license date); ignored for TX. No effect while FL is unavailable |
excludeQualifiedBusiness | boolean | true | true / false | FL only (unavailable): skip Qualified Business records without license numbers |
Output fields
| Field | Type | Meaning |
|---|---|---|
state | string | "TX" |
licenseNumber | string | TDLR license number |
licenseType / licenseTypeCode | string | TDLR license type name / subtype code |
name | string or null | License owner name. Null for inferred sole proprietors unless includePersonalNames; non-null names may still be individuals |
businessName | string or null | Business name as published |
address | string or null | Street address; null unless includeStreetAddress |
city, addrState, zip, county | string | Business location |
phone | string or null | Null unless includePhone |
isSoleProprietor | boolean | Rule-based guess, not official (see note below) |
nameRole | string | "license owner" |
status | string | Active, Expired or Unknown, derived from expirationDate on the run date (not an official status) |
firstSeenDate | string YYYY-MM-DD | Date this actor's snapshot first saw the license — NOT the issue date |
expirationDate | string YYYY-MM-DD or null | License expiration date |
isNewSinceLastRun | boolean or null | true in newOnly mode, otherwise null |
source | string | Source dataset URL |
issueDate | string | FL only; absent for TX |
Limitations — please read
- Texas only; Florida is temporarily unavailable.
- No completeness or accuracy guarantee. Data comes from public records exactly as the agency publishes them, and may be delayed, incomplete or contain errors. Verify important records with the agency.
firstSeenDateis not the license issue date. Texas' public data does not publish an issue date;firstSeenDateis when this actor's snapshot first saw the license (baseline-run records get the baseline date). "New" means new compared with your previous run, not newly issued.- TX
statusis derived from the expiration date; the dataset has no status column, so suspended/revoked licenses that are not yet expired may show as Active. newOnlykeeps its snapshot in the named key-value storecontractor-license-leads-statein your own Apify account; delete it to reset.- The whole selected TX dataset (~36,000 rows for the default types) is downloaded each run, paced at ≥1 s per page, even when
maxItemsis small. - If the source is unavailable or its format changes, the run fails with an error instead of returning empty results; the TX snapshot is never overwritten by a failed or >10%-smaller fetch.
- If the agency changes its dataset, the actor may need updating.
Pricing
Currently free to use (Apify platform usage applies per Apify's terms). Any future pricing change will be announced in advance per Apify Store rules.
Sources
- Texas: Source: Texas Department of Licensing and Regulation, via data.texas.gov dataset 7358-krk7. This actor only reads this publicly published API and does not log in to anything.
Data & compliance notice
Data & compliance notice. All data is compiled from public government records (Texas TDLR) and is provided "as is" without warranty of accuracy or completeness. Some records may identify individual sole proprietors. You are solely responsible for how you use this data, including compliance with CAN-SPAM, the TCPA and the National Do Not Call Registry, state telemarketing laws, and privacy laws such as the CCPA/CPRA. Do not use this data for unsolicited robocalls/texts, harassment, or any purpose prohibited by law or by the source agency. This actor is not affiliated with or endorsed by any government agency.
Not for use as a consumer report or for credit, employment, insurance, or housing eligibility decisions under the FCRA.
Note on isSoleProprietor: this flag is a rule-based inference (TX: owner name equals business name and contains no entity suffix such as INC/LLC/CORP; FL: no DBA name), not an official classification. It may have false positives and false negatives. Because includePersonalNames=false hides name only for records flagged as sole proprietors, detection may miss some individuals, and their names can still appear in name.