Contractor License Lookup
Pricing
from $3.40 / 1,000 license rows
Contractor License Lookup
Look up contractor licenses from state boards, or list licensed contractors by trade and city. Covers California, Texas, Washington, Oregon, and Louisiana. Get license number, status, expiration, classifications, owners, address, and phone, read from each board's own register. No API key.
Pricing
from $3.40 / 1,000 license rows
Rating
0.0
(0)
Developer
Mamba Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
Share
Look up a contractor's state license, or list the licensed contractors for a trade in a state, city, or county. This actor reads each state licensing board's own public register for California, Texas, Washington, Oregon, and Louisiana and returns one row per license with the license number, status, expiration date, classifications, owners or qualifying parties, address, and phone. Rows are flat, so they export to CSV or drop into a Clay table.
Features
- Two modes. List: states and trades in (plumbing, roofing, hvac, electrical, general, and more), optionally a city or county, and you get every matching licensed contractor. Lookup: a license number or business name per line, and you get the license with its status.
- Five state boards, read at the source. Washington Labor and Industries, the Oregon Construction Contractors Board, and the Texas Department of Licensing and Regulation through their open data portals; the California Contractors State License Board through its Data Portal downloads; and the Louisiana State Licensing Board for Contractors through its public search.
- Trade words in plain English. Type plumbing or hvac and the actor maps the word to each board's own classification names, such as C-36 in California or PLUMBING CONTRACTOR in Washington.
- Owners and qualifiers. Washington principals, Oregon responsible managing individuals, Texas license holders, and Louisiana qualifying parties come back in
owner_names. - Active only by default. Expired, suspended, and inactive licenses are left out unless you turn that off.
- One summary per search. Each search ends with one free row that says how many licenses the board returned and why a search was skipped.
How it reads the boards
| State | Board | Source | Lookup by number or name | List by trade |
|---|---|---|---|---|
| CA | Contractors State License Board | CSLB Data Portal list downloads (by classification, statewide or by county) | Only inside a trade list (the CSLB license check page uses a reCAPTCHA, which this actor does not use) | Yes |
| TX | Department of Licensing and Regulation | data.texas.gov TDLR All Licenses | Yes | Yes, for the trades TDLR licenses (air conditioning, electrical, elevator, appliance, water well, sign) |
| WA | Department of Labor and Industries | data.wa.gov contractor license and principal data | Yes | Yes |
| OR | Construction Contractors Board | data.oregon.gov CCB Active Licenses | Yes | By endorsement (general or specialty) |
| LA | State Licensing Board for Contractors | LSLBC public search | Yes | Yes, with city |
Requests go through the Apify proxy, and a refused request moves to Apify residential addresses on its own. No account, no API key, and no other developer's actor. Texas has no state general contractor license, and Texas plumbers are licensed by a separate board that this actor does not read.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
mode | string | list | list or lookup |
states | array | State codes: CA, TX, WA, OR, LA | |
trades | array | List mode. Trade words, for example plumbing, roofing, hvac, electrical, general | |
cities | array | List mode. Keep contractors in these cities | |
county | string | List mode. Keep contractors in this county (CA, TX, OR) | |
business_name | string | List mode: a name filter. Lookup mode: one more name to look up | |
lookups | array | Lookup mode. One per line, for example WA | 04CONCL862CR or LA | Acadian Builders | |
license_number | string | Lookup mode. One more license number, searched in states | |
active_only | string | true | Keep only active, unexpired licenses |
include_owners | string | true | Washington: read current principals |
max_results | string | 100 list, 10 lookup | License rows per search, up to 5000 |
max_charge_usd | string | Stop before a row would pass this amount | |
proxy_mode | string | auto | auto or residential. A reliability choice |
Every field is text, so a Clay column can fill any of them: numbers as "50", yes or no as "true" or "false". Lists accept one item per line, items split by a semicolon, or a JSON array.
Output
| Field | Example |
|---|---|
row_type | license or query_summary |
state, board, match_type | CA, California Contractors State License Board, list |
license_number, business_name, business_type | 1068713, HILMEN INC, Corporation |
owner_names | ["Ochoa, Eric James"] |
license_type, classifications | Contractor License, ["C-36 - Plumbing Contractor"] |
status, is_active, issue_date, expiration_date | CLEAR, true, 2020-09-10, 2027-09-30 |
address, city, county, zip, phone, email | 121 DEL SURENO, FALLBROOK, San Diego, 92028, (760) 908-5770, null |
bond_company, bond_amount, insurance_company, workers_comp | where the board publishes them |
source_url | the board page for the license, or the board search page |
results_found, results_returned | query summary rows only |
row_status, error_reason, billable_events_json | ok, null, {"license-row":1} |
The run summary (key-value store record RUN_SUMMARY) lists searches, licenses per state, row statuses, requests, and the proxy route used.
Pricing
Pay per event. You pay only these events; the Apify platform and proxy costs of your run are paid by Mamba Labs.
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
License row (license-row), one license | $0.004 | $0.0038 | $0.0036 | $0.0034 |
Actor start (apify-actor-start), once per run | $0.0005 | $0.0005 | $0.0005 | $0.0005 |
Free rows: the search summary rows, and skipped, blocked, error, and no results rows. On the Apify free plan the actor stops at 1.50 USD of evaluation a month (about 375 license rows); any paid Apify plan removes that cap.
Example: plumbing contractors in Spokane, Washington, capped at 50, return 50 license rows for 0.20 USD plus the 0.0005 USD start.
Usage examples
Apify Console or API
{ "mode": "list", "states": ["CA"], "trades": ["roofing"], "county": "San Diego", "max_results": "200" }
{ "mode": "lookup", "lookups": ["WA | 04CONCL862CR", "OR | 100215", "LA | Acadian Builders"] }
Clay
For verification, send a state and a license number from your table in lookups (for example WA | 04CONCL862CR) and read status, is_active, and expiration_date. For a lead list, run list mode with a trade and a city and import the rows.
MCP
The MCP server @mambalabsdev/mcp-contractor-license-lookup exposes this actor as a tool for Claude and other MCP clients.
Error handling
| Situation | What you get |
|---|---|
| A board refuses every route | One free summary row with row_status blocked and the reason |
| A board cannot answer that kind of search (a California name lookup, a Texas roofing list, an Oregon trade list) | One free summary row with row_status skipped and what to send instead |
| No license matches | One free summary row with row_status no_results |
| Max charge reached | The run stops before the next billable row and says why in the status message |
Limitations
- Five states today: California, Texas, Washington, Oregon, and Louisiana. Florida and Arizona board sites answer automated requests with a browser challenge, so they are not covered.
- California name and number lookups work only inside a trade list, because the CSLB license check page requires a reCAPTCHA. California list files carry no owner names.
- Each California trade can match several CSLB classifications; the first 6 are read per search. Louisiana works the same way.
- California general engineering and general building lists (classifications A, B, and B-2) are read only by county, because their statewide files are too large for one run.
- Texas open data carries no address or phone on A/C licenses, so filter Texas air conditioning lists by county, not city.
- Oregon's open data lists active licenses only, and Oregon endorsements say residential or commercial, general or specialty, not the trade.
- Washington registers most trade businesses under the GENERAL specialty; plumbing, electrical, and elevator contractors hold their own license types, which the trade words match.
- A lookup value with digits and no spaces is read as a license number. Write a business name such as 3M as
3M Company. - Board data is as current as each board's own publication. On 2026-10-21 the Washington, Oregon, and Texas open data sets had been updated within the previous 3 days, the CSLB files were dated 2026-10-20, and the LSLBC search reads live. Verify a license on the board's site before you rely on it for a hiring or legal decision.
- Louisiana publishes contractor email addresses; this actor returns them as the board shows them. You are responsible for how you use contact data under the laws that apply to you.
More from Mamba Labs
Built by Mamba Labs.