L&I
Washington Contractor Directory & Leads Scraper (L&I)
Browse all Washington State L&I contractor registrations filtered by county — business name, license type, status, contact info, and principal — from the official open-data registry.
Verification
Output fields
Authoritative field set from the dataset schema.
| Field | Type |
|---|---|
county | string|null |
business_name | string|null |
license_number | string|null |
license_type | string|null |
status | string|null |
address | string|null |
address2 | string|null |
city | string|null |
state_code | string|null |
zip_code | string|null |
phone | string|null |
license_effective_date | string|null |
license_expiration_date | string|null |
business_type | string|null |
specialty | string|null |
specialty_2 | string|null |
ubi | string|null |
primary_principal | string|null |
source_url | string|null |
scraped_at | string|null |
Sample row
{
"county": "King",
"business_name": "SEATTLE ROOFING LLC",
"license_number": "SEATTRL123AA",
"license_type": "CONSTRUCTION CONTRACTOR",
"status": "ACTIVE",
"address": "1234 Pike St",
"address2": null,
"city": "SEATTLE",
"state_code": "WA",
"zip_code": "98101",
"phone": "2065551234",
"license_effective_date": "2020-01-15T00:00:00.000",
"license_expiration_date": "2026-01-15T00:00:00.000",
"business_type": "Limited Liability Company",
"specialty": "GENERAL",
"specialty_2": null,
"ubi": "601234567",
"primary_principal": "SMITH, JOHN A.",
"source_url": "https://data.wa.gov/Business/Washington-Contractors/m8qx-ubtq"
} Inputs
| Field | Type | Req | Default | Description |
|---|---|---|---|---|
county | string | no | — | Return only contractors in this WA county (e.g. 'King', 'Pierce', 'Spokane'). Leave blank to return all counties. Case-insensitive. |
counties | array | no | [] | Look up many in ONE run instead of starting a run per lookup. Takes the same values as 'County filter'. Combined with 'County filter' if you fill both, and duplicates are removed. Billing is unchanged: you are charged per record returned, not per entry submitted. |
statusFilter | string | no | "ACTIVE" | Filter by license status. Use 'ACTIVE' (default) for current licenses only, or 'ALL' to include expired and suspended records. |
maxResults | integer | no | 500 | Hard cap on the number of contractor records returned. A statewide pull can be 75,000+ rows and will time out the default run — set higher deliberately. Default 500. |
Pricing
Pay per result (dataset-item) — no charge for empty runs.
Example: 5000 contractor records (typical mid-sized county) at $0.002/result ≈ $10.00.
FAQ
Where does the data come from?
The official Washington State Department of Labor & Industries (L&I) contractor-registration open-data dataset, published on data.wa.gov (Socrata). Public, authoritative, refreshed on business days.
How does the county filter work?
The L&I dataset has no county field. This actor derives county from each contractor's ZIP code using a static WA ZIP→county mapping covering all 39 counties. Contractors with out-of-state or unrecognised ZIP codes will have county=null and won't match a county filter.
How many records does a typical county run return?
It varies by county size. King County alone has tens of thousands of active registrations; rural counties may have a few hundred. Run without a county filter to get the full dataset (~160,000 rows).
Can I get all counties at once?
Yes — leave the county field blank. The actor pulls the full registry and returns all records (or up to your maxResults cap).
What does statusFilter do?
Set to 'ACTIVE' (default) to return only currently licensed contractors. Set to 'ALL' to include expired, suspended, and re-licensed records for a full historical roster.
How am I charged?
Pay per record returned. No charge for runs that return zero records.
Is this personal data?
It's public professional-license data (business and registration records as L&I publishes them); no personal/PII enrichment is added.
How current is the data?
It reflects the L&I open-data registry, which the state refreshes on business days. Expect up to 1–2 business days of lag for recent changes.
Guides & use cases
Related actors