US Contractor Licenses - 9 State Boards
Pricing
from $0.03 / 1,000 us contractor licence records
US Contractor Licenses - 9 State Boards
Contractor and trade licences from nine state boards: California CSLB, Washington L&I, New Jersey DCA, Florida DBPR, Minnesota DLI, Ohio OCILB, Oregon CCB, Virginia DPOR and Texas TDLR. One schema; filter by name, licence number, licence type, classification, status, city, county or ZIP.
Pricing
from $0.03 / 1,000 us contractor licence records
Rating
0.0
(0)
Developer
Wenhao Yang
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
US Contractor Licenses - 9 State Boards, One Schema
Contractor and trade licences from nine state boards. Check a contractor, look up a licence number, screen a city or county, or roll a state's licences up by type and classification.
Low cost
From $0.00005 per record, down to $0.00003 at Gold.
What you get
Each record carries:
state,source- the board the row came fromlicenseNumber,licenseType,classificationholderName,businessNamestatus(normalisedactive/inactive/unknown),statusRaw(the board's own word)issueDate,expiryDateaddress,city,county,zip,phonesourceUrl,sourceUpdatedAt
States
state | Board | Rows | What it covers |
|---|---|---|---|
CA (default) | CSLB | 245,545 | Every licensed contractor, with the board class (A / B / C-xx) |
WA | L&I | 161,794 | Construction contractors, active and historical |
NJ | DCA | 96,776 | Electrical, home improvement, plumbing, HVACR and home-inspection licences |
FL | DBPR | 135,213 | Construction and trade licences |
MN | DLI | 259,753 | Construction, electrical, plumbing, boiler and related trades |
OH | OCILB | 12,498 | Contractor licences |
OR | CCB | 56,580 | Every CCB endorsement |
VA | DPOR | 84,610 | Class A/B/C contractors and tradesmen only |
TX | TDLR | 38,102 | Contractor licence types only |
Total corpus: 1,090,871 rows, measured 2026-10-23.
Classification
California puts the trade class in classification: A (general engineering), B (general building) and C-xx specialty classes such as C-10 electrical, C-20 warm-air/HVAC, C-36 plumbing, C-39 roofing. The filter matches a whole class token and ignores hyphens, so C10 and C-10 are the same and C10 does not match C100. A row can carry several classes ("B, C10"), and any of them matches.
Other states use descriptive classifications; the same filter then matches a substring of the classification/specialty text.
In mode=aggregate, maxResults caps the number of group rows (default 50 - raise it for the long tail).
Examples
{ "state": "CA", "classification": "C10", "maxResults": 100 }
{ "state": "CA", "name": "SMITH", "city": "LOS ANGELES", "maxResults": 100 }
{ "state": "WA", "licenseType": "CONSTRUCTION CONTRACTOR", "maxResults": 100 }
{ "state": "NJ", "licenseType": "Electrical Contractors", "status": "active", "maxResults": 100 }
{ "state": "FL", "licenseNumber": "CBC006231" }
{ "state": "TX", "licenseType": "A/C Contractor", "maxResults": 100 }
{ "state": "CA", "mode": "aggregate", "groupBy": "classification" }
Which fields each state fills
Percent of rows with a non-empty value, measured on this corpus:
| state | holderName | businessName | classification | status | issueDate | expiryDate | address | city | county | zip | phone |
|---|---|---|---|---|---|---|---|---|---|---|---|
| CA | - | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 97 | 100 | 100 |
| WA | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | - | 100 | 100 |
| NJ | 54 | 46 | 100 | 100 | 100 | 96 | 100 | 100 | 100 | 100 | - |
| FL | 100 | 85 | 15 | 100 | 99 | 86 | 98 | 98 | 96 | 98 | - |
| MN | 100 | 4 | 100 | 100 | 100 | 100 | 100 | 100 | - | 100 | 88 |
| OH | 100 | 98 | - | 100 | 100 | 100 | 98 | 98 | 97 | 98 | 65 |
| OR | - | 100 | 100 | - | 100 | 100 | 100 | 100 | 99 | 100 | 100 |
| VA | 36 | 64 | 100 | - | 100 | 100 | 100 | 100 | - | 100 | - |
| TX | 100 | 99 | 99 | - | - | 100 | - | - | 96 | - | - |
A dash means the board publishes nothing for that field. Silence is not a negative fact: OR, VA and TX publish no status column, so status is blank there - an empty status does not mean the licence is expired.
Honest limits
- One row is one licence held by one person or business. A holder with several licences appears several times.
licenseTypeis the board's own label. The boards cover more than construction: MN includes electricians and boiler engineers, OH includes HVAC and plumbing, OR includes every CCB endorsement, NJ includes master plumbers and HVACR contractors.- NJ covers five contractor boards only (electrical, home improvement, master plumbers, HVACR, home inspection). The rest of New Jersey's 1.99M professional licences - nursing, cosmetology, medicine and so on - is not in this corpus.
- VA is filtered to Class A/B/C contractors and tradesmen (84,610 of DPOR's 257,138 rows). Cosmetologists, real-estate agents, architects and the other DPOR boards are not in this corpus.
- MN includes "Registered Unlicensed" rows (about 39% of the state) - Minnesota registers unlicensed contractors as well as licensed ones;
licenseTypesays which. - FL includes Financial Responsible Officers - the qualified individual behind a licensed business, not a licence held in that person's own name.
statusmapsExpired,Inactive,Revoked,Suspended/Susp,Terminated/Termination,Cancelled,Out of Business,Deceased,Closed,Retired,Passed Away,Denied,SurrenderandSupersededto inactive;Active,Current,Issued,Licensed,Valid,Clear(California's word) andRestoredto active; any other word isunknown.status=activeis therefore the normalised active set, not "every row that is not inactive".- The corpus is refreshed by the operator, not live-queried per run;
sourceUpdatedAtis carried where the board publishes it. statusis normalised from the board's word (active/inactive/unknown);statusRawkeeps the original. A board with no status column stays blank.- Filters a state cannot serve are rejected with a clear error - none are silently dropped.
- The default run (
state=CA, no filters,maxResults50) returns 50 California rows from a pinned snapshot of the corpus (measured 2026-10-21) and never touches the full store. Add any filter or raisemaxResultsto read the live corpus. - Memory: a non-default query loads one state's shard into memory before filtering (the largest is Minnesota, ~260k rows). Run the actor with at least 1 GB of memory.
phoneis the board-published contact number for the licence holder; for a sole proprietor it is also the business number.
Related
Also available in this account: state-level licence and business-registry actors for Texas, California, Washington, New York and others.