US contractor licence data: what the state files actually say

Four state boards publish their whole contractor register as a downloadable file. Nobody adds them up. This page does, on the same extracts this API answers from — 1,012,967 licences, counted on 5 August 2026.

Try a free lookup — no signup, right here on this page. For programmatic access, take a free API key — 250 requests a month, no card. Also on RapidAPI and, if you would rather not write code at all, the Apify Store.

The headline numbers

Put together: on any given day roughly one in every 7 licences in these files is inside its final quarter. That is the number that makes a vendor list go stale — not fraud, just renewal dates.

Florida renews a fifth of its register on one day

55,856 Florida licences — 20.7% of the file — expire on the same date, 31 August 2026, 26 days from this count. Nothing about Florida's trades is seasonal; the date is an artefact of how DBPR sets renewal cycles, and it recurs. It means a vendor list checked in July and trusted in September is wrong about tens of thousands of firms, and that a compliance review scheduled quarterly will sooner or later straddle the cliff.

Nearly a third of the Texas file is already expired

136,898 of 442,316 Texas records (31.0%) have an expiry date in the past. TDLR's extract is a register of every licence ever issued rather than a list of current ones, and it publishes no status column, so an expired electrician looks exactly like a current one until you read the date. Anyone matching names against this file without checking expiry is counting lapsed licences as good.

One California licence in twenty is suspended, mostly over paperwork

California is the only one of the four boards that publishes a status column, and it shows 11,743 licences (4.8%) in something other than good standing. The reasons are not misconduct: the largest categories are contr bond susp (6,288), work comp susp (3,326), liab ins susp (684). A lapsed bond suspends the licence just as effectively as a disciplinary order, and a contractor working under one is uninsured for the hiring party's purposes.

What the boards leave blank

The gaps are as informative as the counts, and they are the reason this API reports a per-record data_completeness map rather than a single confidence score:

Texas is the sharp case: TDLR has an address column and fills it on 4.2% of contractor rows. An API that reported that field as "supported" would be telling callers the source publishes an address and this particular licensee happens not to have one — the opposite of what is true.

State by state

StateRecordsExpiredExpiring in 90 days Has street address
California CSLB244,6373,13827,170100.0%
Florida DBPR270,0832,49156,11599.0%
Oregon CCB55,931535,895100.0%
Texas TDLR442,316136,89859,3484.2%

Counted 5 August 2026. Illinois, New York City and Washington are queried live against their boards rather than from a bulk file, so they are not counted here — that is an absence of a local corpus, not an absence of licences.

How these were counted

Each figure is a row count from the board's own current extract: CSLB's master file for California, DBPR's licence file for Florida, CCB's for Oregon, TDLR's for Texas. The files are re-downloaded daily and the counts are rebuilt with them.

Use the numbers

The counts behind this page are at /report.json, rebuilt daily. Quote them, chart them, put them in a story — the only ask is a link back to this page so a reader can see how they were derived. If you want a cut this page does not have (by county, by trade, by expiry month), say so and it can be added; the files are already on disk.

Underlying data is public record published by the California CSLB, Florida DBPR, Oregon CCB and Texas TDLR. The counts and this write-up are free to reuse with attribution.

This report is a by-product of an API that verifies a single contractor licence in about a second, across eight jurisdictions. Try a lookup or take a free API key — 250 requests a month, no card.