# Contractor License Search USA - Contractor Leads (9 States) (`loomwise/us-contractor-licenses`) Actor

Contractor license search across official data: California CSLB, WA L\&I, Oregon CCB & BCD, Texas TDLR, NY registry, NYC DOB, NY elevator/mold, Montgomery Co. MD, Nashville, Cleveland, Boulder. Business phone, address, license type. $1.50 per 1,000.

- **URL**: https://apify.com/loomwise/us-contractor-licenses.md
- **Developed by:** [Loomwise](https://apify.com/loomwise) (community)
- **Categories:** Lead generation, Business, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 results

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

## Contractor License Search USA: contractor leads from 13 official license databases in 9 states

**Contractor license search** across **California (CSLB, 120,000+ licensed businesses), Washington, Oregon (two boards), Texas, New York State, New York City, Maryland (Montgomery County), Tennessee (Nashville), Ohio (Cleveland) and Colorado (Boulder)** in **one run and one clean schema**. Get licensed contractor businesses with **license number, license type, trade, status, issue and expiration dates, business address and business phone**, straight from the official state and city licensing agencies.

Use it as a **contractor lookup / contractor license API**, to build **contractor lead lists** (roofing, HVAC, electrical, plumbing, solar, general contractors), to verify subcontractors, or to catch **newly licensed contractors** the week they get their license.

**Free to try:** Apify's free plan ($5/month in credit, no card needed) covers about **3,300 records** a month.
**Price:** $1.50 per 1,000 results, below typical contractor-license tools in the Store.

No browser, no proxies, no login, no API key. The Actor reads each state's public open-data API, so most runs take seconds (California adds 1-3 minutes to download the CSLB master file).

### Sources

| `sources` code | Coverage | Issue date? | Official source |
|---|---|---|---|
| `CA_CSLB` | California licensed contractor businesses (corporations, LLCs), all CSLB classes: B, C-10, C-20, C-36, C-39, C-46... with phone and county | yes (issue date) | Contractors State License Board (CSLB data portal) |
| `WA` | Washington construction, electrical, plumbing and elevator contractors, with specialties | yes (effective date) | WA Dept. of Labor & Industries (data.wa.gov) |
| `OR_CCB` | Oregon residential and commercial general/specialty contractors | yes (registration date) | Oregon Construction Contractors Board (data.oregon.gov) |
| `OR_BCD` | Oregon electrical, plumbing, HVAC/R, limited energy and renewable (solar) contractors | no | Oregon Building Codes Division (data.oregon.gov) |
| `TX` | Texas A/C (HVAC), electrical, electrical sign, elevator and appliance contractors | no | Texas Dept. of Licensing & Regulation (data.texas.gov) |
| `NY` | New York State registered contractors (public-work and construction) | yes (issued date) | NYS Department of Labor (data.ny.gov) |
| `NYC_DOB` | New York City DOB-licensed general contractors, electrical firms, master plumbers, fire-suppression, oil-burner, rigger and sign-hanger businesses | no | NYC Department of Buildings (data.cityofnewyork.us) |
| `NY_DOL_TRADES` | New York State elevator and mold remediation/assessment contractors | yes (issued date) | NYS Department of Labor (data.ny.gov) |
| `MD_MONTGOMERY` | Montgomery County, MD licensed new home builders / building contractors | yes (issued date) | Montgomery County DPS (data.montgomerycountymd.gov) |
| `TN_NASHVILLE` | Nashville registered professional contractors (plumbing, mechanical, electrical, building, septic...) | no | Metro Nashville Codes (Nashville open data) |
| `OH_CLEVELAND` | Cleveland active contractor registrations (general, electrical, HVAC, plumbing, roofing...) | no (status date only) | City of Cleveland Building & Housing (Cleveland open data) |
| `CO_BOULDER` | City of Boulder licensed building, electrical, plumbing and mechanical contractors | no | City of Boulder (Boulder open data) |
| `WA_SEATTLE_TREE` | Seattle registered tree service providers | no | Seattle SDCI (data.seattle.gov) |

### What you get

| Field | Example |
|---|---|
| `source`, `licensingState` | `WA`, `WA` |
| `businessName` / `dbaName` | DENYS ROOFING LLC |
| `licenseNumber`, `licenseType`, `trade` | 10-102PB, Plumbing Contractor, Plumbing |
| `licenseStatus`, `licenseDate`, `licenseDateType`, `expirationDate` | Active, 2026-10-22, License effective date, 2028-10-22 |
| `businessAddress`, `businessPhone` | business address and phone as published by the agency |
| `city`, `state`, `zipCode`, `county` | Bend, OR 97701, Deschutes |
| `verifyUrl`, `sourceUrl`, `sourceAgency`, `retrievedAt` | official lookup and dataset links |

### Input

| Field | What it does | Default |
|---|---|---|
| `sources` | Pick sources, or a state code (`OR` = both Oregon boards, `NY` = all three New York sources) | all |
| `withinDays` | `0` = full active roster. Above 0 = only contractors newly licensed in the last N days (WA, OR CCB, NY, NY DOL trades, Montgomery County MD) | 0 |
| `dateFrom` / `dateTo` | Exact window for new licenses | none |
| `tradeKeywords` | License type / specialty contains, e.g. `electric`, `plumb`, `hvac`, `solar` | none |
| `keywords` | Business name contains, e.g. `roofing` | none |
| `zipCodes` / `cities` | Location filters | none |
| `activeOnly` | Active licenses only | true |
| `includeContactDetails` | Business address and phone | true |
| `maxResultsPerSource` / `maxResults` | Caps (you pay per result) | 200 / 1000 |

Example: roofing companies newly licensed in the last 14 days:

```json
{ "withinDays": 14, "keywords": ["roof"] }
```

Example: every New York City general contractor and electrical firm with an active DOB license:

```json
{ "sources": ["NYC_DOB"], "tradeKeywords": ["general", "electrical"], "maxResultsPerSource": 20000, "maxResults": 20000 }
```

Example: every active electrical contractor business in Oregon and Texas:

```json
{ "sources": ["OR", "TX"], "tradeKeywords": ["electric"], "maxResultsPerSource": 50000, "maxResults": 100000 }
```

### Who uses this

- **Building-material suppliers, distributors and equipment rental** sales teams.
- **Contractor insurance, bonding, lending, payroll and software** companies prospecting new and existing contractors.
- **General contractors and property managers** verifying subcontractor licenses.
- **Lead-gen agencies** building trade-specific lists by state and ZIP.

### Privacy by design

- **Businesses only.** Sole proprietors, individual licensees and trusts are dropped; only names with a legal-entity designator (LLC, Inc, Corp...) are kept.
- **No owner, officer or responsible-person names** are requested.
- Address and phone are the **business contact details the agencies publish**.

### Tips

- Schedule daily with `withinDays: 1` for a new-contractor alert feed, then push to Google Sheets, a CRM or n8n/Make/Zapier.
- `RUN_SUMMARY` in the key-value store shows how many records each source returned and which were skipped.

### Need one state only?

Single-state versions with extra fields (bond and insurance details, compliance flags, specialties):

- [Washington Contractor Licenses](https://apify.com/loomwise/wa-contractor-licenses)
- [Oregon Contractor Licenses (CCB)](https://apify.com/loomwise/oregon-contractor-licenses)
- [Oregon Electrical & Plumbing Contractors](https://apify.com/loomwise/oregon-electrical-plumbing-contractors)
- [Texas Contractor Licenses (TDLR)](https://apify.com/loomwise/texas-contractor-licenses)
- [New York Contractor Registry](https://apify.com/loomwise/new-york-contractor-registry)
- [Connecticut Business & Contractor Licenses](https://apify.com/loomwise/connecticut-business-licenses)

### More Loomwise lead tools

- [New Business Filings USA](https://apify.com/loomwise/us-new-business-filings): new LLCs and business licenses from 16 state and city sources
- [Building Permits Scraper](https://apify.com/loomwise/city-building-permits): new building permits from 47 US cities and counties
- [Federal Opportunities](https://apify.com/loomwise/federal-opportunities): SAM.gov contracts and Grants.gov grants

### More public-data lead tools from Loomwise

- [us-new-business-filings](https://apify.com/loomwise/us-new-business-filings): All states in one run: new business filings and new LLCs from 17 official sources in 13 states (FL, TX, OR, CO, NY, CT, DE, CA, IL, PA, WA, VA, LA), $1.50 per 1,000
- [florida-new-business-filings](https://apify.com/loomwise/florida-new-business-filings): New Florida LLCs and corporations every business day from official Sunbiz data
- [california-contractor-licenses](https://apify.com/loomwise/california-contractor-licenses): California CSLB contractor license list: 120,000+ licensed businesses with workers comp and bond
- [fmcsa-new-trucking-companies](https://apify.com/loomwise/fmcsa-new-trucking-companies): New trucking companies from FMCSA: new USDOT/MC carriers with fleet size and phone
- [federal-opportunities](https://apify.com/loomwise/federal-opportunities): SAM.gov federal contract opportunities and Grants.gov grants (no API key)
- [city-building-permits](https://apify.com/loomwise/city-building-permits): Building permits from 30+ US city open-data portals (contractor, solar, roofing, ADU leads)
- [new-york-contractor-registry](https://apify.com/loomwise/new-york-contractor-registry): Newly registered New York State contractors with compliance flags
- [wa-contractor-licenses](https://apify.com/loomwise/wa-contractor-licenses): Washington State L\&I contractor licenses, new registrations daily
- [oregon-contractor-licenses](https://apify.com/loomwise/oregon-contractor-licenses): Oregon CCB contractor licenses with bond and insurance details
- [connecticut-business-licenses](https://apify.com/loomwise/connecticut-business-licenses): Connecticut business and contractor credentials (new licenses, renewals)
- [texas-contractor-licenses](https://apify.com/loomwise/texas-contractor-licenses): Texas TDLR A/C (HVAC) and electrical contractor licenses
- [texas-new-business-leads](https://apify.com/loomwise/texas-new-business-leads): New Texas businesses from Comptroller sales tax permits
- [colorado-new-business-filings](https://apify.com/loomwise/colorado-new-business-filings): New Colorado LLCs and corporations from the Secretary of State, daily
- [new-york-new-business-filings](https://apify.com/loomwise/new-york-new-business-filings): New New York LLCs and corporations from the Department of State, daily
- [connecticut-new-business-registrations](https://apify.com/loomwise/connecticut-new-business-registrations): New Connecticut businesses with NAICS industry codes, daily
- [oregon-electrical-plumbing-contractors](https://apify.com/loomwise/oregon-electrical-plumbing-contractors): Oregon electrical, plumbing, HVAC/R and solar contractor businesses (BCD)
- [california-new-business-leads](https://apify.com/loomwise/california-new-business-leads): New California businesses in Los Angeles and San Francisco with NAICS codes
- [illinois-chicago-new-business-licenses](https://apify.com/loomwise/illinois-chicago-new-business-licenses): New Chicago, Illinois business licenses, daily
- [pennsylvania-philadelphia-business-licenses](https://apify.com/loomwise/pennsylvania-philadelphia-business-licenses): New Philadelphia, Pennsylvania business licenses, daily

# Actor input Schema

## `sources` (type: `array`):

Leave empty for all sources. You can also type a state code such as NY to get every New York source.

## `withinDays` (type: `integer`):

0 returns the full active roster. Above 0 returns only new licenses from sources that publish an issue date (WA, Oregon CCB, NY registry, NY DOL trades, Montgomery County MD); the others are skipped.

## `dateFrom` (type: `string`):

Optional exact start date for new licenses.

## `dateTo` (type: `string`):

Optional exact end date.

## `tradeKeywords` (type: `array`):

e.g. electric, plumb, hvac, solar, general. Matches license type and specialty.

## `keywords` (type: `array`):

e.g. roofing, solar, pool.

## `zipCodes` (type: `array`):

e.g. 981 (Seattle), 972 (Portland), 787 (Austin).

## `cities` (type: `array`):

Exact city names, e.g. Spokane, Bend, Houston.

## `activeOnly` (type: `boolean`):

Drop expired or inactive licenses.

## `includeContactDetails` (type: `boolean`):

Business address and phone as published by the licensing agency.

## `maxResultsPerSource` (type: `integer`):

Cap per state source.

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

Overall cap. You pay per result.

## Actor input object example

```json
{
  "withinDays": 0,
  "activeOnly": true,
  "includeContactDetails": true,
  "maxResultsPerSource": 200,
  "maxResults": 1000
}
```

# Actor output Schema

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

No description

## `runSummary` (type: `string`):

No description

# 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 = {
    "withinDays": 0,
    "maxResultsPerSource": 200,
    "maxResults": 1000
};

// Run the Actor and wait for it to finish
const run = await client.actor("loomwise/us-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 = {
    "withinDays": 0,
    "maxResultsPerSource": 200,
    "maxResults": 1000,
}

# Run the Actor and wait for it to finish
run = client.actor("loomwise/us-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 '{
  "withinDays": 0,
  "maxResultsPerSource": 200,
  "maxResults": 1000
}' |
apify call loomwise/us-contractor-licenses --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,loomwise/us-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/tvgZobVWksvxSoBAl/builds/6aRub10mwzaN4Od3l/openapi.json
