US Contractor License Scraper & Lookup - 20 States avatar

US Contractor License Scraper & Lookup - 20 States

Pricing

from $5.00 / 1,000 licence records

Go to Apify Store
US Contractor License Scraper & Lookup - 20 States

US Contractor License Scraper & Lookup - 20 States

Every licensed roofer, electrician, plumber or HVAC contractor in a state, from 20 official state boards. Phone on 13 states, email on 4, measured per state in the README. Export a whole trade or verify a list of names or licence numbers. Status, expiry, address.

Pricing

from $5.00 / 1,000 licence records

Rating

0.0

(0)

Developer

Carlos Escanez

Carlos Escanez

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

US Contractor License Scraper & Lookup — 20 states, one query

Paste a list of names or licence numbers. Get one row per match, per state, from the official boards.

See it run

Every state licenses contractors through its own board, on its own website, in its own format. Checking one contractor means visiting one site; checking a thousand across states means a week. This Actor reads the official registries directly and answers in one run:

TX | 17135 | ACTIVE | expires 2026-10-21 (40 days) | Bill Roten Electric Company | +1 817 822 1231
WA | JUANHH*839MG | ACTIVE | expires 2027-08-15 | # Juan Handyman | +1 509 847 9082
TX | 31405 | EXPIRED | expired 2025-09-18 | 'Barnes' Certified Electric | +1 409 ...

Real rows from a test run. Note the last one: the licence lapsed a year ago. That is the row a general contractor wants to see before hiring a sub.

Questions this answers

  • Is this roofing contractor's license active in Florida right now, and when does it expire?
  • Give me every licensed roofing contractor in Arkansas with a phone number and an email address.
  • Which electrical contractors in Texas have a license expiring in the next 60 days?
  • Check these 800 subcontractor names against the state boards before we put them on site.
  • We are onboarding "Sunrise Roofing" as a vendor and only have the name: which states license a company by that name, and are those licences current?
  • Export every licensed plumber, HVAC contractor and general contractor in Connecticut.
  • Which of our insured contractors in Louisiana let their workers' compensation lapse?
  • This California contractor gave us licence 400000. Is it real, is it current, who is his surety, and does he carry workers' comp?

Three modes

Lookup — the mode most buyers run daily. queries takes any mix of licence numbers and names. A number matches exactly; a name matches any licensee or business containing it. Each row carries matchedQuery so you can join results back to your list.

Export — every licence in a state and trade, for building a calling list or a market map. Texas Electrical Contractors alone is about 14,000 rows with phone.

Two windows work in both modes: expiringWithinDays keeps the licences that expire in the next N days (the renewal list for bond, insurance and continuing-education sellers), and issuedWithinDays keeps the ones first issued in the last N days (newly licensed contractors: a new business that needs suppliers, software, a truck and insurance). Both read the board's own dates; a board that publishes no issue date returns nothing for the second rather than a guess.

Full detail (California) — pass California licence numbers and get the complete CSLB record for each one: bond company, number, amount and effective date; workers' compensation carrier, policy number, effective and expiry dates, and the WC classification codes; every trade classification; entity type; and today's status.

Why it exists, measured on 19 September 2026: California's bulk file publishes active licences only (all 211 C-11 licences in it came back active). Ask the licence page instead and it answers for the rest. Licence 400000 is EXPIRED, 500123 is INACTIVE, 800000 is CANCELLED, and 99999999 comes back found: false because it is not in the register at all. If you are checking a subcontractor before they start work, those four answers are the whole job, and no bulk file can give them to you.

Every number you pass comes back as a row, and the row says which of the three things happened, so a verification list never comes back quietly short:

  • checked: true, found: true — the full record. Charged.
  • checked: true, found: false — checked, and the CSLB does not have that number. Not charged.
  • checked: false, found: null — could not be checked (the board did not answer, or the number was over the run's limit), with the reason in statusText. Not charged, counted in notChecked in the run summary, and the run reports itself as incomplete rather than clean.

Four licences took 5 seconds.

Add withDetail: true to a lookup or an export to get the same full record on every California row it finds, capped by maxDetails (100 by default, 500 per run maximum, because each one is a request to the CSLB). Rows that get the full record are charged as a full detail; the rest as a normal licence record. Never both for the same row.


New contractors: the lead before the licence exists

mode: newBusinesses reads the state business registry for construction companies registered in the last N days (registeredWithinDays, default 30) and crosses each one with the licensing board by exact business name. Every row says isLicensed true or false, with the licence number, status, expiry and phone when the board already knows the company, and with the registry's own data when it does not: registration date, daysSinceRegistered, address, and in Connecticut the email and NAICS code, in Oregon the owner or registered agent by name. onlyUnlicensed: true keeps the companies the board does not know yet, which is the lead for whoever sells insurance, bonds, software or training to a contractor in their first month.

Two states, because they are the two that publish the business registry as open data and license contractors:

  • Connecticut, updated daily: 587 construction registrations in 30 days, every one with an email address, 485 tagged construction by NAICS code and the rest by name, 65 already licensed (measured 22 September 2026).
  • Oregon, published as one batch of the previous month, so the window counts back from the newest registration published, not from today: 179 construction companies in the August 2026 batch, 170 with the owner or registered agent by name, 2 already licensed.

The other 18 states are skipped in this mode and the log says so. Matching is exact on the normalised business name, so a company licensed under a different name shows as unlicensed rather than being guessed. Rows are charged as record.

Know Your Business: one company name, twenty boards

Onboarding a contractor, a supplier or a subcontractor and you only have a business name? Put the name in queries, leave states empty, and the Actor asks all twenty boards at once. Every board that holds a licence under that name comes back as a row with the state, the licence number, the real status and the expiry date; a name no board knows comes back as nothing to pay for. That is the check a KYB (Know Your Business) or vendor-onboarding tool runs a hundred times a day, and it is why the lookup is priced per row found, not per query.

Measured on 21 September 2026: "handyman" in Washington returned 200 licences, "SUNRISE ROOFING" in Florida 6, "COY ELECTRIC" in Oregon 2, and a licence number matches exactly, one row. Name matching is "contains", case-insensitive, on the licensee and the business name, so "Sunrise" also finds "Sunrise Roofing LLC" and "Sunrise Electric Inc"; pass the licence number when you have it and the match is exact.

What every row carries, normalised across states

State, trade, licence number, status, isActive. Expiry date, effective date, daysToExpiry, isExpiringSoon (within 60 days), isExpired. Licensee name, business name, phone (E.164) and raw phone, address, city, ZIP, county. Specialty and state business id where the board publishes them. Source board and source URL.

Texas TDLR does not publish a status field; it is derived from the expiry date, and the README says so because a buyer should know which fields are read and which are computed. Texas plumbers come from the TSBPE list, which does publish one (Current or Expired).

On a California full detail row, additionally: businessType (Corporation, Sole Ownership, Limited Liability Company), classifications (every code with its description), bonds (one entry per bond with type, company, number, amountUsd, effectiveDate, cancellationDate), bondCompany and bondAmountUsd for the contractor's bond, qualifyingIndividual where the board names them, workersComp (carrier, policyNumber, effectiveDate, expirationDate, isExempt, classificationCodes, and the board's own sentence in statusText), otherSections, statusText, and dataCurrentAs — the timestamp the CSLB itself puts on its data, which is not the same as when this Actor read it.


Built for verification, and checked before you pay

Most contractor licence tools sell a list. This one is built for the other job: you have a licence number or a name, and you need to know today whether it is real, current and who stands behind it, hundreds of times a day, from a script or a CRM. Everything below is measured on real rows, not promised.

  • Every query comes back as a row, matched or not. matchedQuery joins it to your list; on California full detail, checked and found say whether the board answered and whether the number exists.
  • A licence that is no longer active still answers. California's bulk file only carries active licences; the full detail mode reads the board's own licence page and returns EXPIRED, INACTIVE, CANCELLED, SUSPENDED or REVOKED as the board states it, with the board's sentence in statusText. Measured 19 September 2026: 400000 expired, 500123 inactive, 800000 cancelled.
  • No match, no charge. A name the board does not have, or a California number that is not in the register, costs nothing.
  • Status is normalised so isActive means the same thing on every board, and the README says which boards publish a status and which one (Texas) derives it from the expiry date.
  • Source URL on every row, pointing at the board's own page for that licence, so your compliance file has the primary source, not this Actor's word.
  • Coverage is printed by the run, not by the README. RUN_SUMMARY reports phone, email, street and expiry coverage of the rows you actually received, per state.
  • Incomplete runs say so. A board that did not answer, a California class that did not download, or a licence page that could not be read are listed by name in the summary and the run is flagged, never passed off as clean.
  • Stable ids (CA-972831) for deduplication and change tracking between scheduled runs.

For a monitoring loop: schedule the same list daily, diff on status and expirationDate, and you have licence-lapse alerts on your subcontractors for the price of the rows.


Who runs this on a loop

  • Insurance and surety bond sellers — isExpiringSoon is their entire prospect list, refreshed monthly.
  • General contractors and property managers — verify every sub before the job, not after the claim.
  • Home-services marketplaces — onboarding checks, at volume.
  • Background-check and KYB providers — one call instead of fifty state sites.
  • Suppliers and continuing-education providers — the export mode, by trade.

Coverage, said plainly

StateBoardTradesSource type
TexasTDLR and TSBPEElectrical, electrical sign, HVAC (air conditioning and refrigeration), plumbing (responsible master plumbers, from the TSBPE), appliance installation, elevator, water well, mold remediation and assessmentOfficial bulk CSV files
WashingtonL&IConstruction, electrical, plumbing, elevatorOfficial open-data API
OregonCCBGeneral and specialty construction, lead-paint renovation, home inspectionOfficial open-data API
New YorkState DOLMold remediation, elevatorOfficial open-data API
FloridaDBPRGeneral, building and residential construction, roofing, plumbing, HVAC, pool and spa, specialty, electrical, alarm systems, mold, home inspection, elevator, asbestosOfficial licence search
LouisianaLSLBCBuilding and residential construction, roofing, electrical, HVAC, plumbing, pools, asbestos, mold, home improvementOfficial licence search, one page per contractor
AlabamaLicensing Board for General ContractorsBuilding construction, electrical, HVAC, plumbing, roofing, abatementOfficial bulk CSV
CaliforniaCSLBGeneral building, electrical, plumbing, HVAC, roofing, pools, asbestos, elevator, limited specialtyOfficial Excel download per classification
MinnesotaDLIResidential building and remodeling, roofing, electrical, plumbing, elevatorOfficial bulk zip/CSV
NevadaNSCBGeneral building, electrical, plumbing and heating, HVAC, roofing, elevator, specialtiesOfficial active directory per classification
OhioOCILBElectrical, HVAC, plumbing, hydronics, refrigerationOfficial roster download
TennesseeBoard for Licensing ContractorsGeneral construction, electrical, plumbing, roofing, HVAC, home improvement, alarmOfficial open-data API
North CarolinaNC Licensing Board for General ContractorsGeneral building, roofing, pools, asbestos, electrical, plumbing, HVAC, fire sprinkler and moreOfficial licence search
MichiganLARAResidential building, maintenance and alteration, electrical, plumbing, HVAC, roofingOfficial licence search
ArizonaRegistrar of Contractors (ROC)General building and engineering, electrical, plumbing, HVAC, roofing, pools, elevators, painting, concrete, landscaping, excavation, carpentryOfficial daily CSV
ArkansasContractors Licensing Board (CLB)Commercial and residential building, heavy civil, roofing, siding and gutters, electrical, HVAC, plumbing, home improvement, carpentry, painting, concrete, excavation, landscaping, pools, elevators, alarms, fire sprinklers, asbestos, lead paint, solar, water wellsOfficial statewide roster file
OklahomaConstruction Industries Board (CIB)RoofingOfficial verification API
ConnecticutDepartment of Consumer ProtectionHome improvement, new home construction, electrical, plumbing, HVAC, elevator, roofing, specialtyOfficial open-data API
DelawareDivision of Revenue and Division of Professional RegulationGeneral construction, roofing, construction transport, alarms, construction management, engineering, architecture, landscape architecture, electrical, plumbing, HVAC, elevator, septic systems, water wells, asbestosOfficial open-data API plus three state registers
VirginiaDPOR Board for ContractorsBuilding, electrical, plumbing, HVAC, roofing, home improvement, gas fitting, elevator, accessibility, fire sprinkler, water wells, alarms, asbestos, lead paint, pools, backflow prevention, energy analysis, specialtyOfficial bulk licence files

Oregon and Louisiana are the only ones of the twenty that publish the bond and insurance expiry dates alongside the licence, which is what a surety broker actually works from.

What each state actually publishes

Measured, not claimed: these percentages come from real rows pulled from each board, not from what the board's documentation says. A board that does not publish a field leaves that column empty — the Actor never guesses one.

StatePhoneEmailStreetCityZIPCountyExpiryInsurance/bond
Texasyes (plumbers 51%, HVAC none)—yesyesyesyesyes—
Washingtonyes—yesyesyes—yes—
Oregonyes—yesyesyesyesyesyes
New Yorkyes—yesyesyes—yes—
Florida——yesyesyesyesyes—
Louisianayesyesyesyesyes—yes34%
Alabamayes—yesyesyes—yes—
Californiayes—yesyesyesyesyes—
Minnesota84%—yesyesyes—yes—
Nevadayes—yesyesyes—yes—
Ohio70%5%yesyesyesyesyes—
Tennessee———yesyes73%yes—
North Carolina92%—yesyesyes—43%—
Michigan———yesyes—yes—
Arizona——yesyesyes—yes—
Arkansas99%97%yesyesyes81%yes—
Oklahomayes—yesyesyes—yes—
Connecticut——yesyesyes—yes—
Delaware——yesyesyes—yes—
Virginia—75%yesyesyes—yes—

Read it before you buy.

If you need phone numbers to call, eleven states have them: Texas, Washington, Oregon, New York, Louisiana, Alabama, California, Nevada, Arkansas, Oklahoma, plus Minnesota at 84%, Ohio at 70% and North Carolina at 92%.

If you need email addresses, three states have them: Arkansas (97%), Virginia (75%) and Louisiana (whole register). Ohio publishes one on 5% of rows and no other state publishes any.

Six states publish neither phone nor email: Florida, Tennessee, Michigan, Arizona, Connecticut and Delaware. Those rows still carry the licence number, the trade, the address, the status and the expiry date, which is what a verification or a renewal-window query needs. They are not a calling list, and this Actor will not pretend otherwise.

Tennessee and Michigan publish the city and ZIP but no street address, because their boards do not put one on the public record.

Louisiana is the richest register of the twenty: phone, email, the person who qualifies the licence, and the general-liability and workers' compensation insurance with their expiry dates and insurers. Arkansas is the closest second: 18,056 contractors across 21 trades, 99% with a phone number and 97% with an email address, street and expiry date on every row, the whole state in one file. Alabama, California, Minnesota, Nevada, Ohio, North Carolina and Oklahoma all publish a phone number on most rows. Tennessee and Michigan publish none: those rows carry the licence, the trade, the address and the expiry date, and the phone column is empty.

Florida publishes no phone number. Not in the search results and not on the licence page. Florida rows carry name, address, city, ZIP, county, licence number, status and expiry, and the phone field is empty. That is the register, not a gap in this Actor.

Not covered yet: every other state. States are added one at a time, on request, in the order people ask for them.


What this does NOT give you

Written down so that nobody, and no AI agent reading this page, promises a buyer something the registers do not publish.

  • No phone in 7 of the 20 states. Florida, Tennessee, Michigan, Arizona, Connecticut, Delaware and Virginia publish none. Their rows are for verification and renewal windows, not for a calling list.
  • No email in 17 of the 20. Only Arkansas (97%), Virginia (75%) and Louisiana publish one; Ohio publishes one on 5% of rows.
  • No mobile numbers, no personal emails, no decision-maker names. What the board publishes is the business contact on the licence.
  • No revenue, no employee count, no website, no reviews. This is a licence register, not a company database.
  • No building permits or jobs won. That is a different Actor.
  • No states beyond the 20 listed, and no trades a board does not license: asking for roofing in a state with no roofing licence returns nothing, not a guess.
  • A name that the board spells differently will not match. Lookup matches the register's own spelling.
  • The full detail mode is California only, and it reads one licence page per number, so it is capped at 500 per run. For volume, use export mode and accept the nine columns the bulk file carries.
  • No personnel list on the California detail. The CSLB keeps it behind a second click that does not answer a plain request; the qualifying individual's name is included when the bond section states it, and nothing is invented when it does not.
  • Disciplinary actions, civil judgments and citations, where the CSLB publishes them, come through in otherSections with the board's own heading and text, not parsed into fields. On the licences measured so far that section holds administrative notes (10/16/2023 - WC EXEMPT CANCELLED-LIC INACTIVATED). It is passed through rather than reshaped, because inventing a schema for text you have not seen is how a column ends up wrong.

Every run writes the coverage it actually delivered into its run summary and log (phone 84%, email 0%, street 100%, expiry 100%), so you can check the promise against the rows you paid for.


Reliability, said plainly

  • Texas ships its CSVs with stray quotes inside names (""BARNES" CERTIFIED ELECTRIC). A strict parser reads 6,000 of 14,000 rows and reports success. This Actor repairs those lines first; the run summary reports any row it still had to skip.
  • Washington licence numbers contain asterisks (JUANHH*839MG). They are matched exactly, as written.
  • Texas has no search endpoint. Lookups download the trade files once per run and match in memory, so a thousand queries cost the same as one.
  • Florida has no bulk file and its licence-type search demands a county, so a full Florida trade is swept county by county, fifty rows at a time. It is the slow one, and maxResults is honoured while it runs rather than after, so a small export stays small.
  • Alabama's board rejects connections from outside the United States. From Europe the site looks down; from the Apify platform it answers normally. If you run this Actor locally from abroad, expect Alabama in failedStates.
  • California and Nevada have no name search worth using, so lookups download the requested trades and match in memory, like Texas. Pass trades for those states: an empty list means every classification, and California's general-building list alone is large. The full detail mode does not download anything: it asks the CSLB by licence number, so it is the fast way in when you already have the number.
  • North Carolina and Michigan read one licence page per contractor, because neither board publishes a bulk file, so those two are the slow ones. Both honour the row limit, so a small export stays small.
  • Arizona publishes a fresh CSV every single day, behind a bot check that sometimes refuses the download. The Actor keeps a copy of the latest file it managed to read, refreshed once a day. Runs read that copy while it is less than a day old; when it is older, they fetch the board's file and, if the board refuses, deliver the copy and write its date in the log. You never get an empty Arizona run just because the board's site said no that morning.
  • A board that does not respond is reported in RUN_SUMMARY.failedStates and the other states still run.
  • The Actor emails its owner when a run looks broken: zero rows on an export, rows delivered but none charged, or a board down. A silent failure is the one kind this Actor refuses to have.

Pricing

Pay per delivered row. Filtered-out rows cost nothing. A lookup that finds nothing charges nothing beyond the start fee.

A California full detail row is a separate, higher-priced event, because it is one live request to the CSLB and carries the bond and workers' compensation record. A licence number that the register does not have is delivered and not charged.


Data source

Official state licensing boards: Texas Department of Licensing and Regulation, Washington State Department of Labor & Industries, Oregon Construction Contractors Board, New York State Department of Labor, Florida Department of Business and Professional Regulation, Louisiana State Licensing Board for Contractors, Alabama Licensing Board for General Contractors, California Contractors State License Board, Minnesota Department of Labor and Industry, Nevada State Contractors Board, Ohio Construction Industry Licensing Board, Tennessee Board for Licensing Contractors, North Carolina Licensing Board for General Contractors, Michigan Department of Licensing and Regulatory Affairs, Arizona Registrar of Contractors. These are public regulatory registers published so that anyone can verify a licence. Contact details are the business contacts the boards publish for that purpose.