California CSLB Scraper — Contractor Licenses avatar

California CSLB Scraper — Contractor Licenses

Pricing

from $20.00 / 1,000 license records

Go to Apify Store
California CSLB Scraper — Contractor Licenses

California CSLB Scraper — Contractor Licenses

Scrape California CSLB contractor licenses, classifications, status, business details, personnel, bonds, and public compliance data.

Pricing

from $20.00 / 1,000 license records

Rating

0.0

(0)

Developer

Muhammad Afzal

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

Share

California CSLB Contractor License Scraper

Free-plan limit: Apify free-plan users receive at most 5 delivered license records per run. Paid and agentic-payment runs may use the configured maxResults limit.

Scrape the California Contractors State License Board (CSLB) public database for full contractor license records. Search by license number, business name, personnel name, or ZIP code — get status, all classifications, bonds, workers' comp, disciplinary actions, personnel, and full contact details in structured JSON.

Use cases

  • Contractor verification — confirm a contractor is licensed and in good standing before hiring
  • Compliance monitoring — detect newly expired, suspended, or revoked licenses for vendor lists on recurring schedules
  • Lead generation — build targeted lists of licensed contractors by ZIP code, city, classification, or active status
  • Subcontractor sourcing — find qualified subcontractors by specialty classification and region
  • Insurance underwriting — score contractors using disciplinary actions, bond cancellation history, and workers' comp status
  • Due diligence — check complaint and legal action history before signing contracts
  • Market research — analyze contractor density by county/classification, track new-license issuance trends

Input

The actor supports four search modes. Use any one or combine multiple:

FieldTypeRequiredDefaultDescription
licenseNumbersarrayno[]Direct license-number lookup (fastest). Example: ["1000001", "812345"]
businessNamestringno""Full or partial business name. Example: "Smith Construction"
personnelLastNamestringno""Last name of license-holding individual
personnelFirstNamestringno""Optional first name to narrow personnel search
zipCodesarrayno[]California ZIP codes for region-based search. Example: ["92101", "90012"]
citystringno""Client-side filter on business address city
classificationstringno""Filter by CSLB classification code (e.g. "C-10", "B")
statusselectno"any"Filter by license status: any, active, expired, suspended, revoked, canceled, inactive
maxResultsintegerno100Hard cap on records returned
customProxyUrlstringno""Premium residential proxy URL for maximum reliability
proxyConfigurationobjectnoresidentialApify proxy settings

At least one search mode is required.

Example inputs

License number lookup:

{
"licenseNumbers": ["842951", "1000001"],
"maxResults": 2
}

Business name search:

{
"businessName": "Pacific Construction",
"status": "active",
"maxResults": 50
}

ZIP code lead generation:

{
"zipCodes": ["92101", "92102"],
"classification": "C-20",
"status": "active",
"maxResults": 200
}

Personnel name search:

{
"personnelLastName": "Smith",
"personnelFirstName": "John",
"maxResults": 25
}

Output

Each record contains the full public record for one contractor license:

FieldTypeDescription
license_numberstringCSLB license number
business_namestringLegal business name
license_statusstringActive, Expired, Suspended, Revoked, Canceled, or Inactive
entity_typestring|nullCORPORATION, LLC, SOLE OWNER, etc.
issue_datestring|nullOriginal license issue date (ISO 8601)
expiration_datestring|nullLicense expiration date (ISO 8601)
business_addressstring|nullFull street address
citystring|nullBusiness address city
countystring|nullCalifornia county (derived from ZIP)
zip_codestring|nullBusiness address ZIP
business_phonestring|nullBusiness phone number
classificationsarrayAll license classifications [{code, description}]
bondsarrayAll bonds: contractor's bond, qualifier bond [{type, company, amount_usd, bond_number, effective_date, cancellation_date}]
workers_compobject|nullWorkers' comp carrier, policy, dates, or exempt status
qualifiersarrayQualifying individuals [{name, association}]
personnelarrayAll listed personnel [{name, classification, license_number, status}]
disciplinary_actionsarrayDisciplinary actions [{date, type, summary}]
administrative_actionsarrayAdministrative actions [{date, type, summary}]
detail_urlstringDirect CSLB detail page link
scraped_atstringISO 8601 timestamp
source_urlstringSource page URL

Pricing

This Actor uses pay-per-event pricing. These are the current Apify Store event prices:

EventPrice (USD)When it is charged
license-record$0.025License Record — Charged once per contractor license record scraped from the CSLB database.
apify-actor-start$0.00005Actor Start — Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). — Charged once per run.

Apify platform usage for this Actor run is included alongside the event prices above; no separate per-run platform-usage fee is passed to users.

This covers Apify platform usage for this Actor run. Other Apify products or usage outside this Actor run may still follow your account plan.

Technical notes

  • Residential proxy required: CSLB's F5 BIG-IP WAF blocklists datacenter IPs. The actor uses Apify residential proxy by default. For production bulk runs, provide a premium residential proxy via customProxyUrl (Decodo/Bright Data/IPRoyal) for maximum reliability.
  • Scheduled downtime: The CSLB database is unavailable Sundays 8 PM through Monday 6 AM Pacific Time. Avoid scheduling runs during this window.
  • Search limits: Business name searches return up to 50 names per page (pagination handled automatically). Personnel name searches return up to 100 names per page.
  • Classification codes: See the CSLB classification list for all 40+ specialty codes.

Integration

Export scraped data, run the scraper via API, schedule and monitor runs, or integrate with other tools. The output dataset is compatible with:

  • CSV/JSON/Excel export from Apify Console
  • Zapier and Make webhooks
  • Direct API access via Apify REST API
  • CRM import (HubSpot, Salesforce) with field mapping
  • AI agent tool calls via Apify MCP server