Why Texas Contractor Licensing Is More Complicated Than Most States

In California, the Contractors State License Board (CSLB) handles virtually every trade under one roof. Texas took a different approach - licensing authority is distributed across multiple agencies based on trade category. That means a property management company, home services marketplace, or GC prequalification team needs to know which agency governs which trade before they can even begin a lookup.

The agencies most commonly involved in contractor licensing in Texas are:

Key Point: If a Texas general contractor hands you a "state contractor license number," it is almost certainly a business registration number, a local permit number, or a license from another state. Texas GCs are not licensed at the state level. Always clarify the trade classification before running a license check.

Step-by-Step: Manual License Lookup on TDLR

TDLR's license lookup portal is available at license.tdlr.texas.gov. Here is the process for verifying an HVAC, electrical, or other TDLR-governed license:

  1. Navigate to the TDLR License Search page. The direct URL is https://www.tdlr.texas.gov/LicenseSearch/. You do not need an account.
  2. Select the license type. The dropdown contains every TDLR-regulated occupation. For HVAC, select "Air Conditioning and Refrigeration Contractor" for a business entity or "Air Conditioning and Refrigeration Technician" for an individual technician. The distinction matters - contractors can pull permits; technicians cannot.
  3. Enter search criteria. You can search by license number (most reliable), business name, or individual name. License numbers are formatted as a letter prefix followed by digits - for example, TACL (Texas Air Conditioning License) followed by a six-digit number like TACL123456C. The trailing letter indicates license class: B for basic, C for contractor, E for engineer.
  4. Review the result record. A valid TDLR record will show the following fields: license number, license type, status, effective date, expiration date, name (individual or business), and associated city/county.
  5. Verify status is "Active." TDLR uses the following status values: Active, Expired, Suspended, Revoked, Cancelled, Pending, and Inactive. Only "Active" status permits the contractor to legally work in Texas.
  6. Check the expiration date explicitly. An "Active" record with a past expiration date is a data lag issue common in TDLR's system around renewal periods. If the expiration date is within 30 days - past or future - request an updated license document directly from the contractor.

TSBPE Plumbing License Lookup

For plumbing credentials, use the TSBPE verification portal at www.tsbpe.texas.gov/licensee-verification/. The search interface accepts license number or name. TSBPE license numbers follow a different format than TDLR: Master Plumbers hold an "M" prefix number (e.g., M-12345), Journeyman Plumbers hold a "J" prefix (e.g., J-67890).

A valid TSBPE record shows: license number, license type (Master Plumber, Journeyman Plumber, etc.), licensee name, issue date, expiration date, and current status. For business entities (plumbing companies rather than individual plumbers), you should also verify the company holds a valid "Responsible Master Plumber" designation - this means a licensed Master Plumber is legally responsible for the company's work.

What Each License Field Means

Whether you are reading a TDLR result or a TSBPE record, the fields you see follow a consistent pattern across Texas licensing boards. Here is what each one means in practice:

Field What It Means What to Watch For
license_number The state-assigned unique identifier for this license. Format varies by license type and agency. Confirm the number matches what the contractor provided. A single transposed digit is a common fraud tactic.
license_type The specific credential class (e.g., "Air Conditioning and Refrigeration Contractor - Class A"). Verify the type matches the work being performed. An HVAC technician license does not authorize pulling permits or running a contracting business.
status Current standing of the license: Active, Expired, Suspended, Revoked, etc. Only "Active" is acceptable for work authorization. "Expired" is a hard stop. "Suspended" means a disciplinary action is in progress.
expiration_date The date through which the license is valid. TDLR licenses typically renew on two-year cycles. Flag licenses expiring within 60 days for proactive renewal reminders.
effective_date The date the current license term began. Useful for calculating license tenure. A contractor with 15 years of continuous licensure presents lower risk than one who just obtained their first license.
bond_required Whether the license class requires a surety bond filed with the state agency. TDLR HVAC contractor licenses require a bond. Verify bond status is current, not just that a bond was filed at initial application.

Texas License Classifications by Trade

The following trade categories represent the most common license types checked on Texas contractor verification platforms:

HVAC (Air Conditioning and Refrigeration)

TDLR issues HVAC licenses in three main classes: Class A (commercial and residential systems over 25 tons), Class B (residential and commercial up to 25 tons), and Class C (window units and packaged terminal equipment only). The contractor entity holds an "Air Conditioning and Refrigeration Contractor" license while individual technicians hold "Air Conditioning and Refrigeration Technician" licenses. For platforms connecting homeowners with HVAC contractors, you typically want to verify the contractor-level license, not just the individual technician credential.

Electrical

TDLR handles electrician licensing. A Master Electrician (ME) license authorizes an individual to design and supervise electrical work. A Journeyman Electrician (JE) license authorizes supervised installation work. For the business entity, an Electrical Contractor (EC) license is required to legally operate an electrical contracting company and pull permits. When verifying an electrical contractor, check both the EC license (company) and confirm the ME on file is still affiliated with that company.

Plumbing

Governed by TSBPE. The business entity holding contracts must have a licensed Master Plumber as its "Responsible Master Plumber." The individual doing the work must hold at minimum a Journeyman Plumber license. Apprentice Plumbers cannot work unsupervised. If your platform verifies plumbing contractors, the critical check is: does the company's Responsible Master Plumber still hold an active M-series license with TSBPE?

General Contractor

No state license exists. Verification for Texas GCs should focus on: local municipal registration (varies by city - Austin, Dallas, Houston, and San Antonio all have their own requirements), proof of general liability insurance ($1M per occurrence minimum is industry standard), workers' compensation coverage or a valid opt-out certificate from the Texas Department of Insurance, and business entity registration with the Texas Secretary of State.

> Automate Your License Verification_

Stop manually checking TDLR, TSBPE, and four other Texas agencies. ContractorVerify normalizes data from every Texas licensing board into a single API response - one call returns license status, trade classification, expiration, and bond status regardless of which agency holds the record.

Join the Waitlist

Verifying a Texas License via the ContractorVerify API

For platforms processing more than a handful of verifications per week, manual portal lookups are not sustainable. The ContractorVerify API normalizes data from TDLR, TSBPE, and other Texas licensing authorities into a single consistent response schema. Here is a complete example:

POST https://api.contractorverify.io/v1/verify
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "license_number": "TACL123456C",
  "state": "TX",
  "trade": "hvac"
}

The API response for an active HVAC contractor license in Texas looks like this:

{
  "request_id": "cvr_8f2a1b9e4d3c",
  "status": "verified",
  "license": {
    "number": "TACL123456C",
    "type": "Air Conditioning and Refrigeration Contractor",
    "classification": "Class A",
    "state": "TX",
    "issuing_authority": "TDLR",
    "issuing_authority_full": "Texas Department of Licensing and Regulation",
    "status": "active",
    "effective_date": "2024-09-01",
    "expiration_date": "2026-08-31",
    "days_until_expiration": 159,
    "bond_required": true,
    "bond_status": "current",
    "bond_amount": 10000,
    "insurance_required": true
  },
  "entity": {
    "name": "Lone Star HVAC Services LLC",
    "type": "business",
    "city": "Austin",
    "state": "TX"
  },
  "verification_timestamp": "2026-03-25T14:32:00Z",
  "data_source": "tdlr_live",
  "data_freshness_hours": 0.5
}

For a plumbing contractor whose license lives with TSBPE rather than TDLR, the API automatically routes to the correct data source. You do not need to specify which agency to query - the API identifies the correct source based on the license number format and trade classification:

POST https://api.contractorverify.io/v1/verify
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "license_number": "M-45678",
  "state": "TX",
  "trade": "plumbing"
}

// Response (abbreviated):
{
  "license": {
    "number": "M-45678",
    "type": "Master Plumber",
    "issuing_authority": "TSBPE",
    "status": "active",
    "expiration_date": "2027-01-15",
    "bond_required": false,
    "insurance_required": false
  },
  "entity": {
    "name": "Rodriguez, Carlos A.",
    "type": "individual"
  }
}

Batch Verification for Platforms with 100+ Texas Contractors

Home services marketplaces, property management software vendors, and GC prequalification platforms typically need to verify large contractor rosters - not just single lookups. The ContractorVerify API supports batch requests that process up to 100 licenses in a single call, which is essential when onboarding new contractors or running periodic compliance sweeps.

POST https://api.contractorverify.io/v1/batch
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "requests": [
    { "license_number": "TACL123456C", "state": "TX", "trade": "hvac" },
    { "license_number": "M-45678",     "state": "TX", "trade": "plumbing" },
    { "license_number": "ME-98765",    "state": "TX", "trade": "electrical" }
  ],
  "options": {
    "include_disciplinary_history": true,
    "expiration_warning_days": 60
  }
}

The batch response returns individual results for each request, along with a summary object that flags any licenses in non-active status or approaching expiration. For compliance dashboards, the expiration_warning_days parameter is particularly useful - it surfaces contractors whose licenses are current today but will need renewal action within your specified window.

When building an automated onboarding workflow, the recommended pattern is:

  1. Contractor submits their license number and trade during signup
  2. Your backend calls POST /v1/verify with their credentials
  3. If status == "active" and days_until_expiration > 30, mark the contractor as verified and allow platform access
  4. Store the expiration_date in your database and schedule a re-verification call 45 days before expiration
  5. If the re-verification returns status == "expired" or days_until_expiration < 0, trigger a contractor notification and suspend platform access until renewal is confirmed

Common Failure Cases and What They Mean

Not every Texas license lookup returns a clean "active" result. Here are the most frequent failure patterns and how to handle them in your platform logic:

Expired License

The most common failure. TDLR shows status "Expired" when a contractor has not renewed within the required window. An expired license means the contractor is legally prohibited from performing licensed work in Texas. The ContractorVerify API returns "status": "expired" along with the last valid expiration date. Platform action: block the contractor from accepting new jobs until they confirm renewal, then re-verify.

Suspended License

A suspension indicates an active disciplinary proceeding or enforcement action by TDLR or TSBPE. Suspended contractors may not work under their suspended license. The API returns "status": "suspended" and, where available, a reference to the enforcement case number. Platform action: immediately restrict the contractor's account and do not reinstate until a new verification returns "active."

Wrong Trade Classification

A contractor might present a valid TDLR license for HVAC maintenance but your platform job category requires a full HVAC contractor (Class A or B) who can pull permits. The license number is real and the status is active, but the classification does not authorize the scope of work. The API's classification field and trade match validation flag this automatically when you include the expected trade in your request payload.

Individual License vs. Business License

In Texas electrical and HVAC licensing, there are two distinct license types: one for the business entity (Electrical Contractor, HVAC Contractor) and one for the individual (Master Electrician, HVAC Technician). A contractor might have a valid personal technician license but no valid business-level contractor license. Only the contractor-level license authorizes pulling permits and running a contracting business. If your platform issues contracts to business entities, verify the business-level license - not just the individual's credential.

License Not Found

When the API returns "status": "not_found" for a Texas license number, it means the number does not exist in any Texas licensing database. This can happen due to a typo, a deliberately fabricated number, or because the license was issued in another state. The API response includes a "search_scope" field indicating which databases were queried, so you can confirm the lookup was comprehensive before making a platform decision.

> Automate Your License Verification_

ContractorVerify handles TDLR, TSBPE, and every other Texas licensing authority automatically. One API call. One normalized response. No manual portal logins, no agency-by-agency lookups.

Join the Waitlist

Building a Texas-Specific Compliance Policy

If your platform operates nationally but has significant Texas contractor volume, consider building Texas-specific verification rules into your compliance engine. The key differences from most other states are:

Texas is an outlier in contractor licensing complexity, but that complexity is exactly why platforms that get it right have a competitive advantage. Homeowners and property managers who have been burned by unlicensed work in Texas are increasingly asking platforms directly: "How do you verify your contractors?" Having a verifiable, automated answer backed by real-time API data is a stronger trust signal than any marketing copy.