# New Contractor Licenses California: CSLB Weekly New Issues (`hamsmoothie/ca-new-contractor-licenses`) Actor

New contractor licenses California: every contractor the CSLB newly licensed in the last 7, 30 or 90 days, with license number, trade, county, phone, bond surety and workers' comp status. New contractor leads for surety, insurance and supply sales. $30 per 1,000 rows.

- **URL**: https://apify.com/hamsmoothie/ca-new-contractor-licenses.md
- **Developed by:** [Maybe Quark](https://apify.com/hamsmoothie) (community)
- **Categories:** Other, Developer tools
- **Security:** Limited permissions
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$30.00 / 1,000 newly licensed contractors

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## New contractor licenses California: the CSLB new licenses list, with phone, bond and workers' comp

Every contractor the Contractors State License Board (CSLB) just licensed in California, straight from the CSLB's public License Master file: license number, business name, trade, city, county, phone, the surety holding the license bond and whether the contractor carries workers' comp. These are new contractor leads in California for the businesses that sell to a contractor in its first weeks: surety bond agents, workers' comp and contractor insurance agents, building-supply credit desks and lead resellers. Pick how many days back, optionally a county and a trade, and export the list to CSV or Excel.

A CSLB license lookup checks one license you already know. This Actor hands you **the list of contractors who just got licensed**, before anyone else has called them.

### Who buys new contractor leads in California

- **Surety bond agents**: every new license carries a $25,000 contractor license bond. Each row names the surety on file, so you can see who wrote it and when the contractor will shop it again.
- **Workers' comp and contractor insurance agents**: about three in four new licensees report no employees yet (`workersComp: Exempt`). They need general liability now and a workers' comp policy the day they hire.
- **Building-supply credit desks**: open trade accounts with new electrical (C10), plumbing (C36), HVAC (C20) and general building (B) contractors in your delivery area before they settle on a supplier.
- **Lead resellers and contractor-marketing agencies**: a dated, typed feed of new licenses you can filter by county and trade and resell or work yourself.

### Searches this Actor answers

- **"New contractor licenses California"**: set `days` to 7, 30 or 90 for this week's, this month's or this quarter's new licensees.
- **"CSLB new licenses list"** / **"CSLB newly licensed contractors"**: schedule a weekly run and send the new rows to your CRM.
- **"New contractor leads California"** by county or trade: filter with `counties` and `classifications`, for example `C10` electrical, `C36` plumbing, `B` general building.

### What each row has

| Column | What it is |
|---|---|
| licenseNo | The new CSLB license number |
| businessName, fullBusinessName | Name on the license, and the longer registered name when CSLB lists one |
| businessType | Sole Owner, Corporation, Limited Liability, Partnership or JointVenture |
| classifications | CSLB trade codes on the license, for example `B`, `C10`, `C36` (several are separated by a vertical bar) |
| issueDate, expirationDate | Date the license was issued and the date it must be renewed (YYYY-MM-DD) |
| status | CSLB status; `CLEAR` means active and in good standing |
| city, county, zip | Address of record |
| mailingAddress | Street or PO box the contractor gave CSLB |
| phone | Business phone as listed with CSLB, when the licensee listed one |
| workersComp | `Workers' Compensation Insurance` (insured) or `Exempt` (no employees reported) |
| bondSurety, bondAmount | The surety company holding the contractor license bond, and the bond amount |
| lastUpdate | Date CSLB last changed the record |
| url | The contractor's official CSLB license detail page |

In October 2026 the CSLB issued about 1,600 new licenses a month statewide, and nearly all of them (1,586 of 1,591) listed a phone.

### Real sample: 5 contractors licensed 2026-10-19

| licenseNo | businessName | classifications | city | county | phone | workersComp | bondSurety | bondAmount |
|---|---|---|---|---|---|---|---|---|
| 1163242 | AAA CRANE SERVICE LLC | A | WEST SACRAMENTO | Yolo | (510) 329 \*\*\*\* | Workers' Compensation Insurance | PLATTE RIVER INSURANCE COMPANY | 25000 |
| 1163216 | CARVED EARTH CONSTRUCTION INC | C12 | THREE RIVERS | Tulare | (559) 561 \*\*\*\* | Workers' Compensation Insurance | NATIONWIDE MUTUAL INSURANCE COMPANY | 25000 |
| 1163205 | FIT RIGHT PLUMBING INC | C36 | RIVERSIDE | Riverside | (714) 864 \*\*\*\* | Exempt | PHILADELPHIA INDEMNITY INSURANCE COMPANY | 25000 |
| 1163244 | PHASOR ELECTRIC SYSTEMS INC | C10 | WOODLAND HILLS | Los Angeles | (949) 295 \*\*\*\* | Exempt | ATLANTIC SPECIALTY INSURANCE COMPANY | 25000 |
| 1163177 | TOP COASTAL ROOFING | C39 | ANAHEIM | Orange | (714) 487 \*\*\*\* | Workers' Compensation Insurance | AMERICAN CONTRACTORS INDEMNITY COMPANY | 25000 |

All five were issued 2026-10-19, expire 2028-10-31 and show status `CLEAR`. Phones are shortened in this listing only; the Actor returns the full number.

Want the whole month as a CSV? $29/month at https://rasengan.win/products/ca-new-contractor-licenses-30d/

### How to use

1. Set **Issued within (days)** (default 30). Optionally add **Counties** (for example `Los Angeles`, `San Diego`) and **Classifications** (for example `C10`, `C36`, `B`).
2. Tick **Only rows with a phone number** if you plan to call.
3. Set **Max results** (default 100, newest first) and export the dataset as CSV, Excel or JSON, or pull it from the API.
4. For a weekly lead feed, schedule the Actor with `days: 7` and de-duplicate on `licenseNo`.

Example input: this month's new electrical and plumbing licensees in two counties that listed a phone.

```json
{
  "days": 30,
  "classifications": ["C10", "C36"],
  "counties": ["Los Angeles", "San Diego"],
  "withPhoneOnly": true,
  "maxResults": 1000
}
```

### Pricing

$30 per 1,000 rows ($0.03 per license). You pay only for rows returned, with no monthly fee. The default run returns at most 100 rows ($3). One county and trade for a month is usually 10 to 100 rows; a full month statewide is about 1,600 rows (about $48). Set `maxResults` or a maximum charge on the run for a hard ceiling.

### API and agent usage

Call the Apify API endpoint `run-sync-get-dataset-items` for this Actor with a JSON body such as `{"days": 7, "classifications": ["C10"], "counties": ["Los Angeles"], "maxResults": 200}` and add `format=csv` for a spreadsheet. MCP clients (Claude, Cursor and others) can call the Actor through the Apify MCP server and ask, for example, "List new C36 plumbing licenses issued in San Diego County in the last 14 days."

### FAQ

**Where does the data come from?** The CSLB public License Master file, a California public record. The Actor reads a copy cut to licenses issued in the last 365 days, refreshed about twice a week, and falls back to the CSLB file itself. This Actor is independent and not affiliated with the CSLB.

**How fresh is it?** The CSLB updates its file weekly and the copy is refreshed about twice a week, so the newest rows can be a few days old.

**Does every row have a phone?** Nearly all do. Set `withPhoneOnly` to drop the few that don't. Phones are as listed with CSLB and not verified by CSLB.

**What does Exempt mean in workersComp?** The contractor told CSLB it has no employees. When it hires, it needs a workers' comp policy on file, which makes these rows a natural insurance lead.

**Can I contact these contractors?** Yes, but you are responsible for the TCPA, CAN-SPAM, the National Do Not Call Registry and California telemarketing rules. Many new contractors are one person with a cell phone.

**Can I try it cheaply?** Set `maxResults` to 10, which costs about $0.30.

### Related tools by Rasengan Data

- **CSLB Bond Lapse & Contractor License Suspended Alerts (CA)**: contractors whose bond or workers' comp was just cancelled, or whose license was suspended.
- **California Contractor Licenses Expiring in 30/60/90 Days**: licenses and workers' comp policies coming up for renewal.
- Contractor License Verifier, Secretary of State Business Entity Search, Exclusion and Debarment Screener.

# Actor input Schema

## `days` (type: `integer`):

Only licenses issued in the last N days. The CSLB file refreshes weekly.

## `classifications` (type: `array`):

e.g. B, C10, C36. Empty = all.

## `counties` (type: `array`):

e.g. Los Angeles, San Diego. Empty = all.

## `withPhoneOnly` (type: `boolean`):

Skip licensees who listed no phone.

## `maxResults` (type: `integer`):

Stop after this many rows (newest first). Each row is one billable result.

## Actor input object example

```json
{
  "days": 30,
  "classifications": [],
  "counties": [],
  "withPhoneOnly": false,
  "maxResults": 100
}
```

# Actor output Schema

## `results` (type: `string`):

Newly licensed contractors, newest first.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("hamsmoothie/ca-new-contractor-licenses").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("hamsmoothie/ca-new-contractor-licenses").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call hamsmoothie/ca-new-contractor-licenses --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hamsmoothie/ca-new-contractor-licenses"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/OqbbfIMkFu45jtd2T/builds/NZuht2KgJ5wbHEZS5/openapi.json
