GovData Labs — Multi-State Contractor License Verifier
Pricing
Pay per event
GovData Labs — Multi-State Contractor License Verifier
GovData Labs verifies contractor license status, insurance, and bonds from official Washington, Oregon, New York, and Texas open data.
Pricing
Pay per event
Rating
0.0
(0)
Developer
GovData Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 hours ago
Last modified
Categories
Share
Look up contractor licenses in bulk from the official open-data APIs of Washington, Oregon, New York, and Texas. Each result is one flat record: status, dates, insurance, bond, address, and principals when the state publishes them, plus expiry flags.
Built for general contractors, suppliers, and compliance teams who need to check a bid list without opening four state portals.
What you get
For every matched license:
state,license_number,business_name,normalized_namestatusandlicense_type/license_classificationissued_onandexpires_on(YYYY-MM-DD)- insurance carrier, amount, and expiry when the state publishes them
- bond company, amount, and expiry when the state publishes them
address,city,postal_code,phone,principals- flags:
expired,expiring_within_30_days,expiring_within_60_days,expiring_within_90_days,insurance_lapsed,bond_lapsed source_urlandfetched_at
The 60-day and 90-day flags include shorter windows. A license due in 10 days has all three set. An already expired license has expired set and the "within N days" flags clear.
insurance_lapsed and bond_lapsed are true only when the source shows missing coverage or a past expiry. If the state does not publish that field, the flag stays false. A Washington bond that says "Until Canceled" is not treated as lapsed; the original text is kept in bond_expiration_raw.
Who it is for
- Pre-qualifying subcontractors before a bid
- Watching a vendor list for expirations, lapsed insurance, or lapsed bonds
- Appending a normalized license record to a CRM
How a run works
- Pass license numbers, business names, or both. Prefix a value with a state (
WA:ECOSTSC758NNorTX:Bee Cave Electric) to search one state. Without a prefix, every selected state is searched. - License numbers are exact. Names are probed with a SoQL
LIKEon the most distinctive word, then ranked with a fuzzy score that ignores punctuation and suffixes such as LLC, Inc, and Co. The default threshold is 0.84. Exact number hits have confidence 1. - Washington joins the license to the insurance and bond datasets on
contractorlicensenumber. Principals come fromprimaryprincipalnameon the license file. There is no fourth principals dataset. - Oregon has no status column. Status is Active or Expired from
lic_exp_date. The responsible managing individual is stored asprincipals. - New York does not publish a carrier or a bond.
insurance_lapsedis true when the registry says workers' compensation is missing and the business is not exempt. - Texas TDLR's file is every profession, not just contractors. Name search defaults to construction trades (electrical, air conditioning, elevator, appliance installation, water well, and related). A lookup by license number returns every profession that uses that number, because TDLR numbers are not unique across professions. Set
includeAllTexasLicenseTypesto search the full file by name. - Rows are deduped on state, license number, and license type. Optional change tracking stores a snapshot in a named key-value store.
Pricing
Pay per event. You pay only for what a run returns:
| Event | Price | When |
|---|---|---|
actor-start | $0.010 | Once per run, after the input validates |
license-result | $0.010 | Each output row |
change-detected | $0.005 | Each new or changed row after a baseline snapshot |
One hundred licenses cost about $1.01. The first "only changes" run is the baseline and does not charge change-detected.
Platform compute is billed separately by Apify and is small: 512 MB memory is enough for typical runs (the Actor refuses more than 2048 MB).
Example input
{"licenseNumbers": ["WA:ECOSTSC758NN", "OR:213645", "NY:26-639SQ-CR", "TX:36159"],"businessNames": ["Reliable Construction"],"states": ["WA", "OR", "NY", "TX"],"maxResults": 50,"onlyChangesSinceLastRun": false}
Example output
Example data (fictional business and address) showing the shape of a Washington row. Real rows come from the live state datasets.
{"state": "WA","license_number": "EXAMPCL000AA","business_name": "EXAMPLE CONSTRUCTION LLC","normalized_name": "EXAMPLE CONSTRUCTION","status": "Active","license_type": "CONSTRUCTION CONTRACTOR","issued_on": "2025-08-15","expires_on": "2027-08-15","insurance_carrier": "State National Ins Co Inc","insurance_amount": 1000000,"insurance_expires_on": "2027-06-12","bond_company": "Merchants Bonding Co (Mutual)","bond_amount": 30000,"bond_expires_on": null,"bond_expiration_raw": "Until Canceled","address": "123 Main St, Anytown, WA, 98000","principals": "J. SMITH","expired": false,"expiring_within_90_days": false,"insurance_lapsed": false,"bond_lapsed": false,"match_confidence": 1,"source_url": "https://data.wa.gov/d/m8qx-ubtq","fetched_at": "2026-10-31T00:00:00.000Z"}
Limits
- 5,000 output rows per run, 5,000 queries per run.
- Name search ranks at most 40 candidates per state (configurable up to 100).
- Requests to one host are spaced 200 ms apart by default, with retries and backoff on HTTP 429 and 5xx.
- The snapshot keeps the newest 12,000 hashes so it stays under the key-value record size limit.
- An optional Socrata app token (
socrataAppTokenorSOCRATA_APP_TOKEN) raises the portal rate limit. Anonymous access is enough for short runs.
Data sources
Verified against the live SODA APIs on 31 October 2026. All four requested states responded. None were dropped.
| State | Portal | Dataset | What it contributes |
|---|---|---|---|
| Washington | data.wa.gov | m8qx-ubtq licenses, ciwg-agsx insurance, bzff-4fmt bonds | Status, dates, address, primary principal, carrier, bond. Join key contractorlicensenumber. |
| Oregon | data.oregon.gov | g77e-6bhs | CCB license, bond, and insurance on one row. No status column. |
| New York | data.ny.gov | i4jv-zkey | Contractor registry. Workers-compensation flag, no carrier or bond. |
| Texas | data.texas.gov | 7358-krk7 | TDLR all-licenses file. Expiration and owner. No street address, insurance, or bond. |
Washington principals are the primaryprincipalname column on the license dataset, not a separate file. The three published ids are licenses, insurance, and bonds.
Published by the Washington State Department of Labor & Industries, the Oregon Construction Contractors Board (via Oregon open data), New York State, and the Texas Department of Licensing and Regulation. These are public open-data portals. Confirm each portal's terms before you redistribute an extract.
Disclaimer
Data comes from official public sources and may lag the licensing board. It is not a legal determination of license status, insurance, or bond sufficiency. Confirm a result with the state before you rely on it for a bid, a claim, or an enforcement decision.