StateLicense blog
California Contractor License Lookup API: A Practical Guide
Look up California contractor licenses at scale: query the CSLB database by license number via lookup API and status, classifications, bond, and insurance.
A California contractor license lookup API lets your systems query the Contractors State License Board (CSLB) database programmatically — license number in, status, classifications, bond, and insurance data out. If you onboard contractors, run a marketplace, or lend against construction projects in California, this is how you replace one-by-one manual lookups with automated verification.
How do you look up a contractor license in California?
The CSLB runs a free "Check a License" tool on its website where anyone can enter a license number and see the contractor's record. California license numbers are numeric only (no letters, up to 8 digits), and the tool also accepts Home Improvement Salesperson (HIS) registrations.
The lookup is free but manual: one search at a time, through a web form. It also goes down for scheduled maintenance every Sunday at 8 p.m. through Monday at 6 a.m. That works fine for a homeowner vetting one contractor. It does not work for a compliance team onboarding fifty a week.
What does a CSLB license record actually show?
A CSLB license record is one of the richest contractor records in the country. The CSLB licenses roughly 290,000 contractors across 44 classifications, and each record can include:
- License status. Active, inactive, expired, suspended, or revoked. Note the trap: "inactive" does not mean expired — it means the contractor is still licensed but is not permitted to perform work. Expired means the license was not renewed. A suspended or revoked license reflects disciplinary action.
- Classifications. Class A (General Engineering), Class B (General Building), Class B-2 (Residential Remodeling), plus 42 specialty Class C classifications — C-10 Electrical, C-20 HVAC, C-36 Plumbing, C-39 Roofing, C-46 Solar, C-33 Painting and Decorating, and limited-specialty C-61/D classes. The classification tells you what work the contractor is legally allowed to perform.
- Bond and insurance. California requires a $15,000 contractor license bond, plus workers' compensation insurance or a valid exemption filing. Both appear on the license detail page.
- Complaint disclosure. Disclosable complaints are flagged under Business and Professions Code 7124.6, though the board warns the database can lag: "due to workload, there may be relevant information that has not yet been entered."
For verification at scale, status plus classification plus bond/insurance currency is the trio that matters. A contractor can be active yet carry the wrong classification for the job, or be active with a lapsed bond — both are compliance exposures.
Why is manual CSLB lookup painful at scale?
Three reasons teams automate California contractor license lookups:
- Volume. Marketplaces and compliance teams onboard dozens or hundreds of contractors. Typing license numbers into a web form — and re-checking them on a cadence — does not scale.
- No official public API. The CSLB does not publish a real-time public API for license verification. Programmatic access means either screen-scraping the lookup tool (fragile, and it breaks during maintenance windows) or licensing a third-party verification API that maintains its own normalized feed of CSLB data.
- Status changes over time. A license that was active at onboarding can expire, get suspended, or change classifications. Rechecks need to happen on a schedule — see our guide on how often to recheck contractor licenses — and manual rechecks get skipped.
What should a California license lookup API return?
Whatever provider you evaluate, the response should carry the full CSLB record, normalized:
license_numberandbusiness_name(including DBA)status— mapped to a stable enum: active, inactive, expired, suspended, revokedclassifications— the full list of A/B/C codes the license holdsexpiration_datebond— active status and amount ($15,000 baseline in CA)workers_comp— insured, exempt, or missingpersonnel/ entity type (sole owner, partnership, corporation, LLC)complaint_disclosure— whether disclosable actions existlast_checked— timestamp of the board query, because the underlying data is a snapshot
That shape covers the decision a compliance officer actually makes: is this contractor currently authorized to do this specific work, with current bond and insurance? A contractor license verification API that covers California alongside the other states you operate in saves you from stitching together one integration per state.
Should you build the integration yourself or buy it?
Scraping the CSLB lookup tool in-house is tempting — the data is public and free. In practice, teams that try it hit the same walls: the site's maintenance windows, anti-bot measures, layout changes that break parsers, and the mapping work of turning board-specific status strings into clean data your system can act on.
Buying a normalized API makes sense when you verify across multiple states, need ongoing monitoring rather than one-off checks, or want your onboarding flow to auto-flag status changes. Building in-house makes sense when California is your only state, volumes are tiny, and you have engineering time to maintain a scraper indefinitely. Most teams that start with a scraper switch to an API within a year — the maintenance cost is the part everyone underestimates.
FAQ
Does the CSLB offer an official API? No. The CSLB publishes license data through its website lookup and downloadable data files, but there is no public real-time REST API. Third-party verification APIs exist to fill that gap.
How often should I recheck California contractor licenses? License status can change between renewals. Most compliance programs recheck quarterly, with event-driven checks on bond and workers' comp expirations, which move on their own schedules. Our recheck-cadence guide walks through the tradeoffs.
Is an "inactive" California license the same as expired? No. Inactive means the contractor is still licensed but is not permitted to perform work. Expired means the license was not renewed. Do not hire or dispatch a contractor on an inactive license.
What license classifications exist in California? Class A (General Engineering), Class B (General Building), Class B-2 (Residential Remodeling), 42 specialty Class C classifications, and limited-specialty C-61/D classes. The CSLB's classification descriptions list all of them.
Can I check complaint history through the lookup? The lookup flags whether disclosable complaints exist, but full complaint disclosure is restricted by law and not all relevant information may be in the database yet. Treat the lookup as a screen, not an investigation.
Before you onboard a California contractor: the checklist
- License status is Active — not inactive, expired, suspended, or revoked
- Classification covers the work contracted (e.g., C-36 for plumbing, B for general building)
- Contractor license bond ($15,000) is current
- Workers' compensation insurance is current or a valid exemption is on file
- Business name and DBA match the contract
- No disclosable complaints flag — or review the disclosure before proceeding
- Recheck scheduled for next quarter (see coverage and pricing to automate this across states)