CSLB
California Contractor Directory by Trade & County (CSLB)
Every licensed California contractor in a county by trade — license #, business, contact, classifications, bond & workers' comp — from the official CSLB registry.
Verification
Output fields
Authoritative field set from the dataset schema.
| Field | Type |
|---|---|
license_number | string|null |
business_name | string|null |
business_type | string|null |
address | string|null |
city | string|null |
state | string|null |
zip_code | string|null |
county | string|null |
phone | string|null |
issue_date | string|null |
expiration_date | string|null |
classifications | array|null |
status | string|null |
surety_company | string|null |
bond_number | string|null |
workers_comp_type | string|null |
workers_comp_company | string|null |
source_url | string|null |
scraped_at | string|null |
Sample row
{
"license_number": "22726",
"business_name": "RANSOME COMPANY",
"business_type": "Corporation",
"address": "1933 WILLIAMS STREET",
"city": "SAN LEANDRO",
"county": "Alameda",
"zip_code": "94577",
"phone": "(510) 686 9900",
"classifications": [
"A",
"C10"
],
"status": "CLEAR",
"issue_date": "07/01/1932",
"expiration_date": "10/31/2027",
"surety_company": "HARCO NATIONAL INSURANCE COMPANY",
"bond_number": "354811",
"workers_comp_type": "Workers' Compensation Insurance",
"workers_comp_company": "TRAVELERS PROPERTY CASUALTY COMPANY OF AMERICA",
"source_url": "https://www.cslb.ca.gov/onlineservices/checklicenseII/LicenseDetail.aspx?LicNum=22726"
} Inputs
| Field | Type | Req | Default | Description |
|---|---|---|---|---|
listCountiesOnly | boolean | no | false | If true, skip the scrape and just return every valid California county name (from the live CSLB form) as the dataset. Free — not charged. Use this to look up the exact county spelling before running a real scrape. |
licenseClass | string | no | "C-10" | CSLB classification code, e.g. 'B' (General Building), 'C-10' (Electrical), 'C-36' (Plumbing). Returns every active contractor holding this classification in the chosen county. Leave it out and the run returns the free county list instead of failing. |
licenseClasses | array | no | ["C-10","C-20"] | Pull several trades in ONE run, e.g. C-10 and C-20 and C-36. Combined with 'License classification' if you fill both. Every selected trade is fetched for every selected county, and a contractor holding two of them is returned (and billed) once, not twice. |
county | string | no | "Sacramento" | California county name, e.g. 'Los Angeles', 'Sacramento County', 'orange'. Case, spacing and a trailing 'County' do not matter. If it is missing or is not a California county, the run returns the free county list instead of failing. |
counties | array | no | ["Sacramento","Placer"] | Pull several counties in ONE run, e.g. Los Angeles and Orange and San Diego. Combined with 'County' if you fill both. Use Discovery Mode to list every valid county name first. |
maxResults | integer | no | — | Cap on the number of license records returned PER trade+county download, not per run — so adding counties can never silently truncate the ones later in the list. Leave empty to return all matches. |
proxyConfiguration | object | no | {"useApifyProxy":false} | Optional. CSLB is usually reachable directly; enable a proxy (e.g. residential) only if runs return no data because the IP is blocked. |
Pricing
Pay per result (dataset-item) — no charge for empty runs.
Example: 500 C-10 electricians in Los Angeles County at $0.002/result ≈ $1.00.
FAQ
What does one run return?
Every active licensed contractor in the chosen California county for the chosen license class/trade — business, contact, classifications, bond, and workers' comp.
Where's the data from?
The official California CSLB registry — public license records.
How do I target a trade?
Use the `licenseClass` input (e.g. C-10 electrical, B general building, C-36 plumbing) plus the `county`.
How am I charged?
Pay-per-result — you only pay for the contractor rows returned, and empty runs are free.
Is this lead data compliant?
It's public, non-personal business-license data from CSLB — not consumer or PII data.
How fresh is it?
It reflects the live CSLB registry at run time.
Guides & use cases
Related actors