US License Verification (Contractors & Professionals) avatar

US License Verification (Contractors & Professionals)

Pricing

from $30.00 / 1,000 license verifieds

Go to Apify Store
US License Verification (Contractors & Professionals)

US License Verification (Contractors & Professionals)

Verify & normalize US professional and contractor licenses across 11 states (CO, TX, WA, OR, IL, NY, CT, DE, AR, VA, VT) into one clean schema: number, status, classification, bond, expiration, disciplinary flag.

Pricing

from $30.00 / 1,000 license verifieds

Rating

0.0

(0)

Developer

Mario Barrios

Mario Barrios

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

1

Monthly active users

9 days ago

Last modified

Share

US License Verification API — Contractors & Professionals (11 States)

Verify and normalize US professional & contractor licenses across 11 states into one clean, consistent schema. Send a license number (or a name) for any supported state and get back a normalized record — status, classification, expiration, bond, and a disciplinary flag — straight from the official state licensing-board public records, with a source link and verification timestamp on every result.

A single contractor license verification API and license lookup API for bulk checks, KYB / vendor onboarding, and compliance monitoring. Stop writing and maintaining a different scraper for every state board. One input shape, one output shape, eleven states — built for lenders, sureties, insurers, vendor-onboarding and compliance teams, contractor lead-gen, and AI agents that need a fast, auditable license check.

Why this Actor

  • One normalized schema across every state. licenseNumber, licenseeName, status (active / inactive / expired / suspended / revoked / unknown), classification, bondStatus, disciplinaryFlag, issueDate, expirationDate, sourceUrl, verifiedAt.
  • You only pay when we find a match. No charge for a clean "not found", an unsupported state, or a source error — ever.
  • Auditable by design. Every record carries the exact sourceUrl it was derived from and a verifiedAt timestamp.
  • Two ways to query: by license number, or by licensee / business name.
  • Two pricing tiers: a full record, or a cheaper status-only check for recurring renewal/compliance monitoring.

Coverage (11 states)

StateSource (official)
COColorado DORA — professional & occupational licenses
TXTexas TDLR — regulated licensees
WAWashington L&I — registered contractors
OROregon CCB — construction contractors (incl. bond)
ILIllinois IDFPR — professional licenses (incl. disciplinary flag)
NYNew York — contractor registry
CTConnecticut eLicense — all credentials
DEDelaware — professional regulation
ARArkansas Contractors Licensing Board
VAVirginia DPOR — contractors (Class A/B/C)
VTVermont Division of Fire Safety — electrical, plumbing & trade licenses

Coming soon: Florida (DBPR construction), North Carolina, West Virginia. More states are added continuously — need one that isn't here yet? Request it.

Why not just build it yourself?

Verifying licenses across states is death by a thousand scrapers. Every board ships its data in a different shape — some as open-data APIs, some as 40 MB CSVs, some only behind a JavaScript form — and they break silently when a column gets renamed or a portal moves. You'd write one scraper per board, then maintain all of them forever.

This Actor collapses that into one call. We absorb the per-state format drift, normalize everything into a single schema, and run a daily health canary against every source so breakage is caught before it reaches your results — never returned to you as a misleading "no match." You pay only when we deliver a verified record.

Input

{
"queries": [
{ "route": "CO", "params": { "licenseNumber": "711991" } },
{ "route": "WA", "params": { "licenseNumber": "ECOSTSC758NN" } },
{ "route": "TX", "params": { "name": "ABC Plumbing" } }
],
"mode": "full"
}
  • queries — one or more lookups. Each is { "route": <2-letter state>, "params": { "licenseNumber": "…" } }, or use "name" to search by licensee/business name.
  • modefull (default, complete record) or status (status-only, cheaper).
  • maxResultsPerQuery (optional) — a license number can match more than one license type; default 50.
  • socrataAppToken (optional) — a free Socrata token raises rate limits for high-volume runs.

Output

One flat row per result.

{
"result": "found",
"state": "OR",
"licenseNumber": "100215",
"licenseeName": "BRUCE HUIE",
"status": "active",
"classification": "RGC (Residential General Contractor)",
"bondStatus": "$25,000 bond with WESTERN SURETY COMPANY (expires 2028-02-06)",
"bondAmount": 25000,
"bondCompany": "WESTERN SURETY COMPANY",
"bondExpirationDate": "2028-02-06",
"disciplinaryFlag": null,
"issueDate": "1994-06-20",
"expirationDate": "2028-02-06",
"asOf": null,
"sourceUrl": "https://data.oregon.gov/resource/g77e-6bhs.json?$where=…",
"verifiedAt": "2026-05-31T12:00:00.000Z"
}

result is found, not_found, or source_error. Only found rows are billed.

Pricing

Pay-per-event — you pay per successful verification:

EventWhat you getPrice
license-verifiedFull normalized record$0.03
status-checkStatus-only result (use mode: "status")$0.01

No subscription, no charge on misses. For comparison, dedicated verification APIs typically charge $0.20–$0.50+ per lookup.

How it works

For each query the Actor routes to that state's official open-data source, fetches the matching record(s), and normalizes them into the shared schema. Where a board doesn't publish an explicit status, status is derived from the expiration date against the current public roster (i.e. "present and unexpired", not a positively-asserted flag) — this is noted per record's source.

FAQ

Is the data official? It comes from official state licensing-board public records, but this Actor is unofficial and not affiliated with any board. Always confirm directly with the board before relying on a result.

How fresh is it? Each record shows verifiedAt (when we fetched it) and, where the source exposes it, asOf (the source's own refresh date). Some states publish daily; bulk-file states refresh on the board's own schedule.

Can I bulk-verify? Yes — pass many items in queries. A license number that maps to multiple license types returns multiple rows.

Can I use this for employment, tenant, credit, or insurance screening? No. See the disclaimer below.


NOT A CONSUMER REPORT / NOT FCRA-COMPLIANT. This Actor and its output are not a consumer report and the operator is not a consumer reporting agency under the Fair Credit Reporting Act (15 U.S.C. § 1681 et seq.). Do not use this data, in whole or in part, to establish eligibility for employment, credit, insurance, housing/tenancy, or any other FCRA-covered purpose. For those purposes, obtain a consumer report from a properly licensed consumer reporting agency.

Source & accuracy. Data is sourced from official state licensing-board public records and reflects the source as of each record's verifiedAt timestamp. It may be incomplete, delayed, or out of date, and is an unofficial reflection — always confirm license status directly with the relevant state board before relying on it. Provided as-is, with no warranty of accuracy, completeness, or fitness for a particular purpose; not legal or compliance advice.

Unofficial / no affiliation. This Actor is not affiliated with, sponsored by, endorsed by, or certified by any state licensing board, government agency, or data provider.

Your responsibility. You are solely responsible for ensuring your use complies with the terms of use, open-data license, and applicable open-records / anti-solicitation laws of each source jurisdiction. Prohibited uses include FCRA-covered screening, unsolicited marketing/solicitation to licensees, building competing databases where source terms forbid it, and any unlawful, harassing, or stalking purpose.


Categories: Business, Developer tools. Tags: license-verification, contractor-license, compliance, kyb, due-diligence.