Contractor Licence Check (OR & WA)
Pricing
from $4.00 / 1,000 license record returneds
Contractor Licence Check (OR & WA)
Verifies Oregon CCB and Washington L&I contractor licences from official daily open data: active status, bond and insurance with expiry dates, and whether each is valid today.
Pricing
from $4.00 / 1,000 license record returneds
Rating
0.0
(0)
Developer
Nico Poland
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Verifies Oregon CCB and Washington L&I contractor licences from official daily open data: active status, bond and insurance with expiry dates, and whether each is valid today.
What it does
Give it licence numbers or business names and it answers the question you actually have: is this contractor licensed, active, bonded and insured right now?
Both states publish their licensing registers as open data, refreshed daily. This Actor reads those registers directly (Oregon's CCB file, and Washington's L&I licence, bond and insurance files joined on the licence number) and computes three plain booleans:
| Field | Means |
|---|---|
is_active | The licence is usable today, by the state's own status. |
is_bonded | A surety bond is in force today. |
is_insured | Liability cover is in force today. |
Both states publish expiry dates and leave the arithmetic to you. A licence can look perfectly healthy while the bond behind it lapsed three weeks ago.
Two things this surfaces that the state portals do not:
- Bond impairment (Washington). Claims have been paid out against the contractor's bond. It stays true after they file a replacement bond, because it is a fact about the contractor rather than the paperwork, so it is computed from the whole bond history, not the current record.
- Continuous bonds. Washington records an open-ended bond by writing text where a date would go. Read as a date that is simply missing, and 45,078 of the 177,029 bond records look like "cover unknown" when they are in fact the strongest cover there is.
What it does not do. It is a verification tool, not a directory. You look up contractors you already have, by licence number or business name. There is no way to ask "which licences does this person hold", and no bulk export by city or trade.
Input
Give licenseNumbers, businessNames, or both.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
licenseNumbers | array of strings | one of | n/a | Up to 100. OR numbers are digits (260124); WA are alphanumeric (247PRPM916QW). |
businessNames | array of strings | one of | n/a | Up to 50. Partial names match. |
states | array | no | ["OR","WA"] | Which registers to search. |
maxResults | integer | no | 500 | Stop after this many records. |
failOnEmpty | boolean | no | false | Operator health check; leave off. |
{"licenseNumbers": ["247PRPM916QW", "260124"],"businessNames": ["ACME CONSTRUCTION"],"states": ["OR", "WA"]}
Output
One row per licence record. A real Washington row from a real run:
{"state": "WA","license_number": "247PRPM916QW","business_name": "24-7 PROPERTY MAINTENANCE LLC","status": "ACTIVE","is_active": true,"is_bonded": true,"is_insured": true,"license_type_description": "CONSTRUCTION CONTRACTOR","license_expires_on": "2027-12-29","bond_company": "Travelers Casualty & Surety Co of America","bond_amount": 30000.0,"bond_is_continuous": true,"bond_impaired": true,"bond_impaired_on": "2026-03-10","insurance_company": "FEDERATED RESERVE INSURANCE CO","insurance_amount": 1000000.0,"insurance_expires_on": "2027-06-17","principal_name": "THOMPSON, FRANK EDWARD","phone": "(509) 826-6895","record_url": "https://secure.lni.wa.gov/verify/Detail.aspx?UBI=602874170"}
Read that row: currently licensed, bonded and insured, but a previous bond was impaired in March. That is the contractor you want to ask a question or two before signing.
is_bonded and is_insured are absent, not false, when the state
records no cover at all. "Expired" and "never recorded" are different
facts and you should be able to act on the difference.
Full field documentation is on the Output tab (37 fields, three views).
Pricing
Pay per event. You are charged $0.004 per licence record returned, plus Apify's standard $0.00005 Actor start event.
Example: verifying 25 subcontractors = 25 × $0.004 + $0.00005 = $0.10.
You are never charged for a "not found" explanation, for failed runs, or
for anything beyond your maxResults.
Limits and refresh cadence
- Coverage: Oregon and Washington only. California is deliberately not included: CSLB is well served by existing tools and publishes no comparable bulk feed.
- Freshness: both registers are refreshed daily by the states. Responses are cached for 6 hours.
- Oregon publishes only current licences. A contractor whose licence has lapsed simply is not in the file, so "not found" in Oregon can mean "not licensed today". The Actor says so rather than returning silence. Washington publishes expired and suspended licences with their status.
bond_impairedis Washington-only. Oregon publishes no equivalent, so its absence in an Oregon row means "not published", not "clean".- This is a record check, not an endorsement. It reports what the states publish. It cannot tell you whether the work will be any good.
- Verification only: no reverse lookup from a person to their licences, and no bulk export by city or trade.
Attribution and privacy
- Oregon: CCB Active Licenses, Oregon Construction Contractors Board, public domain.
- Washington: L&I Contractor License Data, Washington State Department of Labor & Industries, Open Data Commons PDDL.
Source, licence and retrieval time are stamped on every row.
These registers exist so the public can check a contractor, and both
states publish the responsible individual's name for that purpose, so
principal_name is included. What this Actor deliberately does not
do is let you search from a person to their businesses, or export contact
lists by area or trade. It answers questions about a named contractor;
it is not a lead list.
Changelog
See the Changelog tab.
Issues
Report problems on the Issues tab. Please include the licence number and state. Breakage is normally fixed within one working day.