---
type: "firecrawl-provider"
description: "California Contractors State License Board (www.cslb.ca.gov) public Check a License service: read a contractor license record by license number (business information, entity, dates, status, classifications, bonds, workers' compensation, miscellaneous actions), search business names with cursor pagination, find currently licensed contractors by ZIP code or city and classification, list the personnel associated with a license, and read the public complaint disclosure cases of a license. Anonymous, read-only; no HIS registrations, application status, bulk Data Portal downloads or complaint filing."
use_when: "California Contractors State License Board (www.cslb.ca.gov) public Check a License service: read a contractor license record by license number (business information, entity, dates, status, classifications, bonds, workers' compensation, miscellaneous actions), search business names with cursor pagination, find currently licensed contractors by ZIP code or city and classification, list the personnel associated with a license, and read the public complaint disclosure cases of a license. Anonymous, read-only; no HIS registrations, application status, bulk Data Portal downloads or complaint filing."
categories: "Public records"
capabilities: 5
credits_per_call: 5
---
# California CSLB contractor license lookup on Firecrawl Alexandria

California Contractors State License Board (www.cslb.ca.gov) public Check a License service: read a contractor license record by license number (business information, entity, dates, status, classifications, bonds, workers' compensation, miscellaneous actions), search business names with cursor pagination, find currently licensed contractors by ZIP code or city and classification, list the personnel associated with a license, and read the public complaint disclosure cases of a license. Anonymous, read-only; no HIS registrations, application status, bulk Data Portal downloads or complaint filing.

- Categories: Public records
- Category index: [Public records category](https://firecrawl.dev/alexandria/agents/categories/public-records)
- Provider key: `cslb-ca-gov`
- Access: Firecrawl credits
- Cost: 5 credits per call

## More

- [Human guide](https://firecrawl.dev/app/alexandria/cslb-ca-gov)
- [OpenAPI spec](https://firecrawl.dev/alexandria/agents/providers/cslb-ca-gov/openapi.json)

## Capabilities

- [Find contractors by location](https://firecrawl.dev/alexandria/agents/providers/cslb-ca-gov/licenses/find_contractors_by_location): The board's Find a Licensed Contractor search (ZipCodeSearch.aspx): currently licensed contractors holding one classification whose address of record is in a ZIP code or city. Two upstream requests (form GET for the WebForms state, then the search postback). Returns the board's count sentence value and every row of the result grid (license number, business name, address, city, ZIP, phone) in the board's randomly generated order; a search with no contractors is a successful empty result (count 0).
- [Get complaint disclosure](https://firecrawl.dev/alexandria/agents/providers/cslb-ca-gov/licenses/get_complaint_disclosure): The public complaint disclosure page of a CSLB license (ComplaintDisclosure.aspx?LicType=LIC&LicNum=): the cases the board discloses under B&P 7124.6 (case number, date, status such as LICENSE REVOKED or CURRENTLY UNDER DISCIPLINARY ORDER, number of complaints, CaseViolationDisclosure link). A license without disclosable cases is a successful result with an empty cases list. Fails with not_found when the board shows no license for the number.
- [Get license](https://firecrawl.dev/alexandria/agents/providers/cslb-ca-gov/licenses/get_license): The CSLB license detail page (LicenseDetail.aspx?LicNum=) for one contractor license number: business name and DBA, address lines, phone, entity type, issue/reissue/expire dates, the status sentence and whether the license is current and active, additional status lines and the complaint-disclosure link when the board shows one, classifications (code and name), every bond block (Contractor's Bond, Disciplinary Bond, Bond of Qualifying Individual: surety, bond number, amount, effective and cancellation dates, history link), the workers' compensation block (carrier, policy, dates, classification codes) and the Miscellaneous Information action lines. Dates are converted to YYYY-MM-DD; the board's 'Data current as of' stamp is kept verbatim. Fails with not_found when the board answers 'License Number does not exist.'
- [List license personnel](https://firecrawl.dev/alexandria/agents/providers/cslb-ca-gov/licenses/list_license_personnel): The personnel list of a CSLB license (PersonnelList.aspx?LicNum=): people currently associated with the license and people no longer associated, each with name, title, association date, classification, the board's person id (SeqNumber) and the PersonnelDetail.aspx link. Fails with not_found when the board shows no license for the number.
- [Search contractors by name](https://firecrawl.dev/alexandria/agents/providers/cslb-ca-gov/licenses/search_contractors_by_name): Business-name search of the CSLB license database (NameSearch.aspx): one page of up to 49 name rows whose business name starts with the given text, in the board's order, each with name type (Print = the name as printed on the license, Name = the business name of record, DBA, Previous), license number, city and status word. The board's result list is an alphabetical cursor over all names; rows outside the prefix are filtered out and an empty page is a successful empty result. A continuation is returned while every row on the page still matched the prefix.

## 1. Choose this provider when

California Contractors State License Board (www.cslb.ca.gov) public Check a License service: read a contractor license record by license number (business information, entity, dates, status, classifications, bonds, workers' compensation, miscellaneous actions), search business names with cursor pagination, find currently licensed contractors by ZIP code or city and classification, list the personnel associated with a license, and read the public complaint disclosure cases of a license. Anonymous, read-only; no HIS registrations, application status, bulk Data Portal downloads or complaint filing.

## 2. Minimal request

Call `POST https://api.firecrawl.dev/v2/scrape` with `{ alexandria: { provider, capability, options } }`. For a batch, send `{ alexandria: [...] }` with up to 10 calls.

```json
{
  "provider": "cslb-ca-gov",
  "capability": "licenses/find_contractors_by_location",
  "options": {
    "classification": "C-53",
    "zip_code": "93464"
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `city` (string): California city name (at least 4 characters, as the form requires). Exactly one of zip_code or city. Example: `<city>`
- `classification` (string, required): Classification option value of the form: A, B, B-2, C-10, C-53, C-61/D-35, ASB, HAZ ... (C53 and c-53 are normalised to C-53). Example: `<classification>`
- `zip_code` (string): Five-digit ZIP code. Exactly one of zip_code or city. Pattern: ^[0-9]{5}$. Example: `<zip_code>`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "cslb-ca-gov",
    capability: "licenses/find_contractors_by_location",
    options: {
      classification: "C-53",
      zip_code: "93464",
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "cslb-ca-gov",
  "capability": "licenses/find_contractors_by_location",
  "options": {
    "classification": "C-53",
    "zip_code": "93464"
  }
})
```

### cURL

```sh
curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "alexandria": {
    "provider": "cslb-ca-gov",
    "capability": "licenses/find_contractors_by_location",
    "options": {
      "classification": "C-53",
      "zip_code": "93464"
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'cslb-ca-gov/licenses/find_contractors_by_location' \
  --options '{"classification":"C-53","zip_code":"93464"}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "cslb-ca-gov",
  "capability": "licenses/find_contractors_by_location",
  "options": {
    "classification": "C-53",
    "zip_code": "93464"
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "cslb-ca-gov",
  "capability": "licenses/find_contractors_by_location",
  "options": {
    "classification": "C-53",
    "zip_code": "93464"
  }
}
```

## 6. Response data

The response includes `success`, `provider`, `capability`, `creditsCost` and `data`. This example shows the provider payload in `data`:

```json
{
  "classification": {
    "code": "C-53",
    "name": "Swimming Pool"
  },
  "contractors": [
    {
      "address": "PO BOX 423",
      "business_name": "TURNER POOLS SERVICES",
      "city": "SOLVANG",
      "detail_url": "https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/LicenseDetail.aspx?LicNum=1053788",
      "license_number": "1053788",
      "phone": "(805) 453-1205",
      "zip_code": "93464"
    }
  ],
  "count": 1,
  "data_current_as_of": "Data current as of 10/4/2026 2:14:06 PM",
  "observed_at_ms": 1791148446515,
  "query": {
    "city": null,
    "classification": "C-53",
    "zip_code": "93464"
  },
  "source_url": "https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/ZipCodeSearch.aspx"
}
```

## API reference-derived contract

The following capability contract is generated from the same normalized Alexandria API reference exposed in the API spec.

### Find contractors by location

- Capability: `licenses/find_contractors_by_location`
- Description: The board's Find a Licensed Contractor search (ZipCodeSearch.aspx): currently licensed contractors holding one classification whose address of record is in a ZIP code or city. Two upstream requests (form GET for the WebForms state, then the search postback). Returns the board's count sentence value and every row of the result grid (license number, business name, address, city, ZIP, phone) in the board's randomly generated order; a search with no contractors is a successful empty result (count 0).
- Instructions: You need licensed contractors of a given classification (B, C-10, C-53 ...) near a California ZIP code or in a city.
- Cost: 5 credits per call
- Capability file: [Find contractors by location](https://firecrawl.dev/alexandria/agents/providers/cslb-ca-gov/licenses/find_contractors_by_location)

Accepted options:
- `city` (string): California city name (at least 4 characters, as the form requires). Exactly one of zip_code or city. Example: `<city>`
- `classification` (string, required): Classification option value of the form: A, B, B-2, C-10, C-53, C-61/D-35, ASB, HAZ ... (C53 and c-53 are normalised to C-53). Example: `<classification>`
- `zip_code` (string): Five-digit ZIP code. Exactly one of zip_code or city. Pattern: ^[0-9]{5}$. Example: `<zip_code>`

Response schema example:
```json
{
  "classification": {
    "code": "C-53",
    "name": "Swimming Pool"
  },
  "contractors": [
    {
      "address": "PO BOX 423",
      "business_name": "TURNER POOLS SERVICES",
      "city": "SOLVANG",
      "detail_url": "https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/LicenseDetail.aspx?LicNum=1053788",
      "license_number": "1053788",
      "phone": "(805) 453-1205",
      "zip_code": "93464"
    }
  ],
  "count": 1,
  "data_current_as_of": "Data current as of 10/4/2026 2:14:06 PM",
  "observed_at_ms": 1791148446515,
  "query": {
    "city": null,
    "classification": "C-53",
    "zip_code": "93464"
  },
  "source_url": "https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/ZipCodeSearch.aspx"
}
```

### Get complaint disclosure

- Capability: `licenses/get_complaint_disclosure`
- Description: The public complaint disclosure page of a CSLB license (ComplaintDisclosure.aspx?LicType=LIC&LicNum=): the cases the board discloses under B&P 7124.6 (case number, date, status such as LICENSE REVOKED or CURRENTLY UNDER DISCIPLINARY ORDER, number of complaints, CaseViolationDisclosure link). A license without disclosable cases is a successful result with an empty cases list. Fails with not_found when the board shows no license for the number.
- Instructions: You have a license number (typically one whose get_license output carries complaint_disclosure_url) and need its disciplinary cases.
- Cost: 5 credits per call
- Capability file: [Get complaint disclosure](https://firecrawl.dev/alexandria/agents/providers/cslb-ca-gov/licenses/get_complaint_disclosure)

Accepted options:
- `license_number` (string, required): CSLB license number or a cslb.ca.gov URL carrying LicNum=. Example: `<license_number>`

Response schema example:
```json
{
  "business_name": "FIVE STAR GENERAL CONTRACTOR",
  "cases": [
    {
      "case_number": "N 2022 000158",
      "complaint_count": 1,
      "date": "2023-03-06",
      "detail_url": "https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/CaseViolationDisclosure.aspx?LicType=LIC&LicNum=721836&LmfPre=&Region=N&FiscalYear=2022&SeqNbr=158&ActionCde=DD13&Status=LICENSE+REVOKED++++++++++++++++++++++++++++++1&LicName=FIVE+STAR+GENERAL+CONTRACTOR&StatusDt=03/06/2023&Complaints=LICENSE%20REVOKED%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%201",
      "status": "LICENSE REVOKED"
    },
    {
      "case_number": "N 2017 000420",
      "complaint_count": 1,
      "date": "2019-09-20",
      "detail_url": "https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/CaseViolationDisclosure.aspx?LicType=LIC&LicNum=721836&LmfPre=&Region=N&FiscalYear=2017&SeqNbr=420&ActionCde=DD**&Status=CURRENTLY+UNDER+DISCIPLINARY+ORDER+++++++++++1&LicName=FIVE+STAR+GENERAL+CONTRACTOR&StatusDt=09/20/2019&Complaints=CURRENTLY%20UNDER%20DISCIPLINARY%20ORDER%20%20%20%20%20%20%20%20%20%20%201",
      "status": "CURRENTLY UNDER DISCIPLINARY ORDER"
    },
    {
      "case_number": "N 2005 000264",
      "complaint_count": 2,
      "date": "2011-09-04",
      "detail_url": "https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/CaseViolationDisclosure.aspx?LicType=LIC&LicNum=721836&LmfPre=&Region=N&FiscalYear=2005&SeqNbr=264&ActionCde=DPRV&Status=PREVIOUS+CASE++++++++++++++++++++++++++++++++2&LicName=FIVE+STAR+GENERAL+CONTRACTOR&StatusDt=09/04/2011&Complaints=PREVIOUS%20CASE%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%202",
      "status": "PREVIOUS CASE"
    }
  ],
  "license_number": "721836",
  "observed_at_ms": 1791148468125,
  "source_url": "https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/ComplaintDisclosure.aspx?LicType=LIC&LicNum=721836"
}
```

### Get license

- Capability: `licenses/get_license`
- Description: The CSLB license detail page (LicenseDetail.aspx?LicNum=) for one contractor license number: business name and DBA, address lines, phone, entity type, issue/reissue/expire dates, the status sentence and whether the license is current and active, additional status lines and the complaint-disclosure link when the board shows one, classifications (code and name), every bond block (Contractor's Bond, Disciplinary Bond, Bond of Qualifying Individual: surety, bond number, amount, effective and cancellation dates, history link), the workers' compensation block (carrier, policy, dates, classification codes) and the Miscellaneous Information action lines. Dates are converted to YYYY-MM-DD; the board's 'Data current as of' stamp is kept verbatim. Fails with not_found when the board answers 'License Number does not exist.'
- Instructions: You have a CSLB license number (from search_contractors_by_name, find_contractors_by_location, list_license_personnel or a pasted LicenseDetail.aspx URL) and need the full license status record.
- Cost: 5 credits per call
- Capability file: [Get license](https://firecrawl.dev/alexandria/agents/providers/cslb-ca-gov/licenses/get_license)

Accepted options:
- `license_number` (string, required): CSLB license number (1 to 9 digits, e.g. 1053788) or a cslb.ca.gov URL carrying LicNum=. Example: `<license_number>`

Response schema example:
```json
{
  "action_items": [
    {
      "date": "2022-01-14",
      "text": "LICENSE REISSUED TO ANOTHER ENTITY"
    }
  ],
  "additional_status": [],
  "address_lines": [
    "PO BOX 423",
    "SOLVANG, CA 93464"
  ],
  "bonds": [
    {
      "amount": "$25,000",
      "bond_number": "PB10163411795",
      "cancellation_date": null,
      "effective_date": "2026-06-05",
      "history_url": "https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/ContractorBondingHistory.aspx?LicNum=1053788&BondType=CB",
      "surety": "PHILADELPHIA INDEMNITY INSURANCE COMPANY",
      "surety_code": "H22",
      "text": "This license filed a Contractor's Bond with PHILADELPHIA INDEMNITY INSURANCE COMPANY.",
      "type": "Contractor's Bond"
    },
    {
      "amount": null,
      "bond_number": null,
      "cancellation_date": null,
      "effective_date": "2023-07-28",
      "history_url": "https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/BQIBondingHistory.aspx?Licnum=1053788&QualIndv=1",
      "surety": null,
      "surety_code": null,
      "text": "The qualifying individual SCOTT TURNER certified that he/she owns 10 percent or more of the voting stock/membership interest of this company; therefore, the Bond of Qualifying Individual is not required.",
      "type": "Bond of Qualifying Individual"
    }
  ],
  "business_name": "TURNER POOLS INC",
  "classifications": [
    {
      "code": "D35",
      "name": "C-61 / D35 - POOL AND SPA MAINTENANCE",
      "url": "https://www.cslb.ca.gov/About_Us/Library/Licensing_Classifications/Licensing_Classifications_Detail.aspx?Class=D35"
    },
    {
      "code": "C53",
      "name": "C53 - SWIMMING POOL",
      "url": "https://www.cslb.ca.gov/About_Us/Library/Licensing_Classifications/Licensing_Classifications_Detail.aspx?Class=C53"
    }
  ],
  "complaint_disclosure_url": null,
  "data_current_as_of": "Data current as of 10/4/2026 2:13:40 PM",
  "dba": "TURNER POOL SERVICES",
  "entity_type": "Corporation",
  "expire_date": "2028-01-31",
  "issue_date": "2019-05-20",
  "license_number": "1053788",
  "observed_at_ms": 1791148420567,
  "personnel_url": "https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/PersonnelList.aspx?LicNum=1053788",
  "phone": "(805) 453-1205",
  "reissue_date": "2022-01-14",
  "source_url": "https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/LicenseDetail.aspx?LicNum=1053788",
  "status_is_active": true,
  "status_text": "This license is current and active.",
  "workers_comp": {
    "carrier": "EVEREST NATIONAL INSURANCE COMPANY",
    "carrier_code": "282",
    "class_codes": [
      {
        "code": "9097",
        "description": "Swimming Pool Cleaning/Servicing"
      }
    ],
    "effective_date": "2026-06-15",
    "expire_date": "2027-06-15",
    "history_url": "https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/WCHistory.aspx?LicNum=1053788",
    "policy_number": "7600025649261",
    "text": "This license has workers compensation insurance with the EVEREST NATIONAL INSURANCE COMPANY"
  }
}
```

### List license personnel

- Capability: `licenses/list_license_personnel`
- Description: The personnel list of a CSLB license (PersonnelList.aspx?LicNum=): people currently associated with the license and people no longer associated, each with name, title, association date, classification, the board's person id (SeqNumber) and the PersonnelDetail.aspx link. Fails with not_found when the board shows no license for the number.
- Instructions: You have a license number and need its qualifying individuals, officers or owners.
- Cost: 5 credits per call
- Capability file: [List license personnel](https://firecrawl.dev/alexandria/agents/providers/cslb-ca-gov/licenses/list_license_personnel)

Accepted options:
- `license_number` (string, required): CSLB license number or a cslb.ca.gov URL carrying LicNum=. Example: `<license_number>`

Response schema example:
```json
{
  "business_name": null,
  "current": [
    {
      "association_date": "2019-05-20",
      "classification": "D35",
      "detail_url": "https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/PersonnelDetail.aspx?LicNum=1053788&SeqNumber=1024072&LicName=",
      "disassociation_date": null,
      "has_additional_classifications": true,
      "name": "SCOTT TURNER",
      "seq_number": "1024072",
      "title": "RMO / CEO / PRES"
    }
  ],
  "former": [],
  "license_number": "1053788",
  "observed_at_ms": 1791148457305,
  "source_url": "https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/PersonnelList.aspx?LicNum=1053788"
}
```

### Search contractors by name

- Capability: `licenses/search_contractors_by_name`
- Description: Business-name search of the CSLB license database (NameSearch.aspx): one page of up to 49 name rows whose business name starts with the given text, in the board's order, each with name type (Print = the name as printed on the license, Name = the business name of record, DBA, Previous), license number, city and status word. The board's result list is an alphabetical cursor over all names; rows outside the prefix are filtered out and an empty page is a successful empty result. A continuation is returned while every row on the page still matched the prefix.
- Instructions: You know (the start of) a California contractor's business name and need the license number(s) to look up.
- Cost: 5 credits per call
- Capability file: [Search contractors by name](https://firecrawl.dev/alexandria/agents/providers/cslb-ca-gov/licenses/search_contractors_by_name)

Accepted options:
- `continuation` (string): Opaque cursor returned by the previous page. Example: `<continuation>`
- `name` (string, required): Start of the business name (case-insensitive), or a NameSearch.aspx URL carrying NextName=. Example: `<name>`

Response schema example:
```json
{
  "count": 4,
  "observed_at_ms": 1791148431645,
  "query": "Turner Pools",
  "results": [
    {
      "business_name": "TURNER POOLS",
      "city": "ENCINITAS",
      "detail_url": "https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/LicenseDetail.aspx?LicNum=838212",
      "license_number": "838212",
      "name_type": "DBA",
      "status": "Inactive"
    },
    {
      "business_name": "TURNER POOLS INC DBA TURNER POOL SERVICES",
      "city": "SOLVANG",
      "detail_url": "https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/LicenseDetail.aspx?LicNum=1053788",
      "license_number": "1053788",
      "name_type": "Print",
      "status": "Active"
    },
    {
      "business_name": "TURNER POOLS INC",
      "city": "SOLVANG",
      "detail_url": "https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/LicenseDetail.aspx?LicNum=1053788",
      "license_number": "1053788",
      "name_type": "Name",
      "status": "Active"
    },
    {
      "business_name": "TURNER POOLS SERVICES",
      "city": "SOLVANG",
      "detail_url": "https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/LicenseDetail.aspx?LicNum=1053788",
      "license_number": "1053788",
      "name_type": "DBA",
      "status": "Active"
    }
  ],
  "source_url": "https://www.cslb.ca.gov/OnlineServices/CheckLicenseII/NameSearch.aspx?NextName=Turner+Pools&NextLicNum="
}
```
