One endpoint, one response shape, ten jurisdictions. Each page below says which agency the data comes from and — just as importantly — what that agency does not publish.
Try a free lookup — no signup, right here on this page. For programmatic access, take a free API key — 250 requests a month, no card. Also on RapidAPI and, if you would rather not write code at all, the Apify Store.
Coverage is uneven because the states are uneven. Illinois publishes roofing
contractors and nothing else. Texas licenses trades but not general contracting.
Colorado licenses no general contractors at all — that is a city matter there — so
CO answers for electricians and plumbers.
New York has no statewide license at all, so NY answers from New York
City's two registers. Oregon takes two as well: the CCB licenses contractors and the
Building Codes Division licenses the electrical, plumbing, boiler and elevator trades,
and OR answers from both. Florida, Texas and Oregon publish no status column, so status
for those three is derived from the expiration date and a suspended license that has
not yet run out reads ACTIVE. Those limits are on the pages rather than
buried in a footnote, because finding out after you have integrated is worse than
knowing now.
Seven of these read from an official API or bulk extract the board publishes
itself — Colorado, Connecticut, Illinois, New York City, Oregon, Texas, Washington.
The two marked
best-effort above are different: California has no
official feed at all, so this reads the same public search page a browser would, and
Florida's board has been blocking its own extract's daily download since 2026-08-05.
Both still return real data — every record carries a data_as_of
timestamp so you can see exactly how current it is — but the channel underneath them
is more fragile than the other seven, and that is worth knowing before you build on
either one.
You do not have to take any of that on trust. /healthz is
public and returns the current data_as_of for every state served from
an extract, right now, with no key. If one of them is older than it should be, you
will see it there before you see it in a response — which is the opposite of how
this usually goes.
The API is on RapidAPI with a free tier: Contractor License Verification. It is also on the Apify Store, if you would rather not write code at all: Contractor License Lookup & Verification. Full schema at /docs.