Minnesota Contractor License Lookup & Export (DLI) avatar

Minnesota Contractor License Lookup & Export (DLI)

Pricing

$0.004 / verified license records

Go to Apify Store
Minnesota Contractor License Lookup & Export (DLI)

Minnesota Contractor License Lookup & Export (DLI)

Verify a Minnesota residential contractor by license or name, or export the whole DLI roster filtered by subtype, status, city or ZIP — with phone, address & enforcement flag.

Pricing

$0.004 / verified license records

Rating

0.0

(0)

Developer

ScrapeBench

ScrapeBench

Maintained by Community

Actor stats

0

Bookmarked

57

Total users

6

Monthly active users

14 days ago

Last modified

Categories

Share

Pain points

  • DLI publishes its residential-contractor roster as one raw 12 MB CSV of 59,302 rows (2026-10-07) - active, expired, revoked and terminated licences mixed together, with statuses spelled two ways ('EXPIRED' and 'Expired').
  • The DLI portal won't tell you at a glance whether a licensee is under an enforcement action.
  • Screening many contractors, building a list of every active builder in a city, or monitoring for disciplinary flags doesn't scale by hand.

What we solve

  • Verify any Minnesota DLI residential contractor, remodeler, roofer, or installer by license number or business/person name — one search.
  • Leave the search empty to export the statewide roster instead: filter by licence subtype, status (active by default), city or ZIP, up to every matching row in one run.
  • Surfaces the DLI enforcement-action flag on every record, plus an 'enforcement monitor' mode that returns only licensees with an action on record.
  • Returns license subtype, status, original & expiration dates, city, address, ZIP and phone from the official registry; pay per record, empty results free.

Summary

Look up any Minnesota residential contractor from a single search, or pull the whole Minnesota DLI residential roster as a filtered export. Type a DLI license number or a business/person name and get back the license subtype (Residential Building Contractor, Qualifying Builder, Remodeler, Roofer, Installer), status, original and expiration dates, city, address, phone, and an enforcement-action flag showing whether the licensee has an action on record. Leave the search empty and the same run returns the statewide roster — 25,359 active licences on 2026-10-07, 95% of them with a phone number — narrowed by subtype, status, city or ZIP. Built for subcontractor vetting, compliance screening, disciplinary monitoring, and building lists of active Minnesota builders, remodelers and roofers.

Who it's for

  • GCs and hiring managers vetting Minnesota subcontractors
  • Compliance teams monitoring contractors for enforcement/disciplinary flags
  • Insurance underwriters and lenders running KYC on contractors
  • RevOps and BD teams enriching contractor records

How to use

Set the input, run the actor, and collect results from the run's dataset (export to JSON/CSV/Excel, or pull via the Apify API). Example input:

{
"licenseSubtype": "Residential Building Contractor",
"cities": [
"Minneapolis",
"St. Paul"
],
"maxResults": 1000
}

See Inputs below for every available field.

What you get

One row per record:

FieldDescription
stateLicensee's registered state (usually 'MN')
license_numberDLI license number (e.g. BC807688)
business_nameLicensed business name (DBA appended when present)
person_nameIndividual's name when the licensee is a person, else null
license_typeLicense type + subtype (e.g. 'Residential Contractors - Qualifying Builder')
statusLicense status (e.g. Issued, EXPIRED, REVOKED, SUSPENDED)
issue_dateOriginal license date
expiration_dateLicense expiration date
cityBusiness city
addressBusiness street address
zip_codeZIP code
phoneBusiness phone (when published)
enforcement_actionFlag set when the licensee has a DLI enforcement action; null otherwise
renewal_in_progress'Yes' when a renewal is pending, else null
matched_byHow this row was selected: 'license_number' or 'business_name' (a search), or 'statewide' (an export)
source_urlThe official DLI roster source

Sample:

{
"state": "MN",
"license_number": "RR531208",
"business_name": "RASSMUSSEN METAL ROOFING AND CONSTRUCTION INC (dba RMR CONSTRUCTION INC)",
"person_name": null,
"license_type": "Residential Contractors - Residential Roofer Contractor",
"status": "REVOKED",
"issue_date": "06/20/2005",
"expiration_date": "03/31/2008",
"city": "MINNEAPOLIS",
"address": "5536 27TH AVE S",
"zip_code": "55417",
"phone": null,
"enforcement_action": "1",
"renewal_in_progress": null,
"matched_by": "business_name",
"source_url": "https://secure.doli.state.mn.us/ccld/data/MNDLILicRegCertExport_Residential_Contractors.csv"
}

Inputs

FieldRequiredTypeDefaultDescription
querynostring"CONSTRUCTION"A Minnesota DLI residential-contractor license number, business name, or person name to verify or search. Searches by exact license number and by business/DBA name substring. Leave this and 'Search query (batch)' empty to export the statewide roster instead, narrowed by the filters below.
queriesnoarray["CONSTRUCTION"]Look up many in ONE run instead of starting a run per lookup. Takes the same values as 'Search query'. Combined with 'Search query' if you fill both, and duplicates are removed. Billing is unchanged: you are charged per record returned, not per entry submitted.
licenseSubtypenostring—One DLI licence subtype: Qualifying Builder, Residential Building Contractor, Qualifying Remodeler, Residential Remodeler Contractor, Qualifying Roofer, Residential Roofer Contractor, Qualifying Installer, Manufactured Home Installer or Certificate of Exemption. Short words work too: 'builder', 'remodeler', 'roofer', 'installer' (each covers both its business licence and its qualifying-person licence), 'exemption'. Empty = every subtype. An unrecognised value is ignored with a log line; if nothing you gave is recognised, the run returns a free row saying so instead of the whole state.
licenseSubtypesnoarray[]Several subtypes in ONE run. Combined with 'Licence subtype' if you fill both.
statusnostring—active (DLI 'Issued'), expired, voluntary_termination, revoked, suspended, withdrawn, or all. Empty = active when exporting statewide, and every status when you give a search query (so existing lookups behave exactly as before).
statusesnoarray[]Several statuses in ONE run, e.g. revoked and suspended. Combined with 'Licence status' if you fill both.
citynostring—Business city, exact match ignoring case and punctuation; 'St Paul', 'St. Paul' and 'Saint Paul' are the same city (DLI spells it both ways).
citiesnoarray[]Several cities in ONE run. Combined with 'City' if you fill both. The roster has no county column, so filter by city or ZIP.
zipnostring—Business ZIP, 5 digits (a ZIP+4 is matched on its first 5).
zipsnoarray[]Several ZIPs in ONE run. Combined with 'ZIP code' if you fill both.
maxResultsnointeger—With a search query: cap on matches PER QUERY (default 50), so a batch cannot silently return only the first rows overall and read as 'no match'. Statewide export: cap for the whole run (default 500, a spend control). The full roster is 59,302 licences (25,359 active, measured 2026-10-07), so 100000 returns everything that matches; the run log states how many matched when the cap cuts it short.
enforcementOnlynobooleanfalseWhen on, return only licensees with a DLI enforcement action on record (revocation, suspension, etc.). Works with a search query or statewide. Note: a statewide export defaults to active licences; set status to 'all' to include the revoked and expired licences most enforcement actions sit on.
proxyConfigurationnoobject{"useApifyProxy": false}Optional. The Minnesota DLI roster CSV is reachable directly; a proxy is not needed.

Pricing (Pay Per Event)

You pay per result (dataset-item) — no charge for empty runs. Example: 100 verified license records at $0.004/result ≈ $0.40.

Illustrative — the final per-result price is set at publish time. Apify platform usage (compute) is billed separately per your plan.

Use cases

  • Statewide lead list — every active Residential Building Contractor in Minneapolis and St. Paul was 875 licences on 2026-10-07, 833 of them (95%) with a phone number; the whole state is 10,923 active business licences of that subtype.
  • License verification — confirm a Minnesota contractor's subtype, status, and expiration before hiring or onboarding.
  • Enforcement monitoring — flip on enforcement-only mode to surface any licensee under a DLI enforcement action for a name or keyword.
  • Compliance screening — pull the enforcement-action flag on demand for audits, due diligence, and marketplace vetting.
  • Record enrichment — turn a license number or name into a full structured record for a CRM or vetting workflow.

Why this actor

  • Straight from the official Minnesota DLI licensee registry — authoritative, refreshed nightly, not a stale third-party copy.
  • Flags enforcement actions on every record — and an enforcement-monitor mode to isolate them.
  • Search by license number or business/person name, or export statewide with filters; results deduped by license # (unique across all 59,302 rows). Pay per record; empty results are free.

Limitations & updates

Covers Minnesota's DLI residential-contractor licensee roster only (residential building contractors, remodelers, roofers, installers, and related certificates) — not electrical, plumbing, or other trade boards. Results reflect the nightly roster snapshot and change as it updates. A name search matches the business/DBA-name index and is capped per query (default 50); a statewide export is capped per run (default 500, up to 100,000). No county filter: DLI's file has no county column. Phone is published for 95% of active licences, email never (we skip that column). The enforcement-action field is DLI's published flag (presence of an action), not the case detail. Bond and insurance details are not part of this roster and are returned null.

FAQ

Where does the data come from?

The official Minnesota Department of Labor & Industry (DLI) residential-contractor licensee roster — a public dataset the state refreshes nightly.

What can I search by?

A DLI license number (exact) or a business/person name (substring, matches the DBA name too). Both return the matching licenses, deduped by license number. Leave the search empty to export the statewide roster instead, filtered by licence subtype, status, city or ZIP.

How big is a full export?

Measured 2026-10-07: 59,302 licences in the roster, 25,359 of them active (DLI status 'Issued'). An export defaults to active licences and 500 rows; set status to 'all' and maxResults to 100000 for everything. There is no county column in DLI's file, so narrow by city or ZIP.

What's the enforcement-action flag?

DLI publishes whether a licensee has an enforcement action on record. We surface that flag on every result, and 'Enforcement monitor mode' returns only licensees currently under one.

What fields do I get?

License number, business/person name, license subtype, status, original and expiration dates, city, address, ZIP, phone (when published), the enforcement-action flag, and a renewal-in-progress flag.

How am I charged?

Pay-per-result — per license match returned. No charge for searches with no results.

Is this personal data?

It's public professional-license data as DLI publishes it. We deliberately skip the roster's email column and add no personal/PII enrichment.

Which actor to choose

Part of the contractor-license verification suite — pick the one that fits your goal:

  • California Contractor License Lookup & Verify (CSLB) — You need a California contractor verified — by license number, business, or owner/personnel name (CSLB).
  • Florida Contractor License Lookup & Verify (DBPR) — You're verifying a Florida contractor or tradesperson — type, status, expiration, county (DBPR).
  • Louisiana Contractor License Lookup — You want the full Louisiana roster — 50,000+ commercial, residential & specialty licenses as data (LSLBC).
  • Multi-State Contractor & Trade License Lookup — You don't know the state, or want the same contractor checked across WA, OR, TX & CT in one run.
  • Nevada Contractor License Lookup & Verify (NSCB) — You need a Nevada contractor's status, trade classifications, bond & principals (NSCB).
  • New Mexico Contractor License Lookup & Verify (NM CID) — You're verifying a New Mexico contractor — license #, status, city/ZIP, expiry (NM CID).
  • North Carolina Contractor License Lookup & Verify (NCLBGC) — You're verifying a North Carolina general contractor — classification, status, expiration (NCLBGC).
  • Oregon Contractor License Lookup & Verify (CCB) — You're verifying an Oregon contractor — status, bond, insurance & RMI (CCB).
  • South Carolina Contractor License Lookup & Verify (SC LLR) — You're searching or verifying South Carolina contractors — by name, license, city, or classification (SC LLR).
  • Tennessee Contractor License Lookup & Verify (TN DOCI) — You're verifying a Tennessee contractor or tradesperson — type, status, city & county (TN DOCI).
  • Texas Contractor & Trade License Lookup & Export (TDLR) — You're verifying a Texas electrician, HVAC or trade license — type, expiration, county & owner (TDLR).
  • Virginia Contractor License Lookup (DPOR Bulk) — You want the full Virginia roster — 50,000+ Class A/B/C and trade licenses as bulk data (DPOR).
  • Washington Contractor License Lookup & Verify (L&I) — You're verifying a Washington contractor — type, status, expiration, principal (L&I).
  • Alabama Contractor License Lookup & Verify (LBGC) — You're verifying an Alabama general contractor — classification, city, phone, expiration (LBGC).
  • Arkansas Contractor License Lookup & Verify (ACLB) — You're verifying an Arkansas contractor — validity, type, expiration, city & county (ACLB).
  • Michigan Contractor License Lookup & Verify (LARA) — You're verifying a Michigan builder or trade contractor — type, status, expiration (LARA).
  • Massachusetts Construction License Lookup & Verify (CSL) — You're verifying a Massachusetts Construction Supervisor License — type, status, expiration (CSL).
  • Iowa Contractor License Lookup & Export (DIAL) — You need Iowa contractors — every active DIAL registration statewide, with phone and email, filtered by trade, county, city or ZIP.
  • Mississippi Contractor License Lookup & Export (MSBOC) — You need Mississippi contractors — the active MSBOC roster with phone, street address and classifications, by county or class.
  • Ohio Contractor License Lookup & Export (OCILB) — You need Ohio electrical, HVAC, plumbing, hydronics or refrigeration contractors — the full OCILB roster, by trade and county.
  • Nebraska Contractor Registration Lookup & Export (NDOL) — You need Nebraska contractors — every current NDOL registration, by service and county, with phone on request.
  • Delaware Contractor License Lookup & Export (DOR + DPR) — You need Delaware contractors — DOR business licences plus DPR electrical, plumbing and HVACR licences, by city or ZIP.

Guides & use cases

Written up on scrapebench.dev — the bench that runs and verifies this actor against the live source every night:

More actors, coverage and nightly verification results: scrapebench.dev

Works with n8n

Ready-made n8n templates that call this actor:

Works with AI assistants (MCP)

Callable as an MCP tool, so Claude, Cursor, VS Code Copilot and other MCP clients can run it directly. Grab the config from the MCP tab on this page — Apify hosts the server and keeps that snippet current, and OAuth signs you in on first connect, so no API token goes in your config file.

Then just ask:

"Look up Minnesota contractors matching 'CONSTRUCTION' — licence status and expiry."

Turn on enforcementOnly to return just the licensees with an active DLI enforcement action, which turns the same search into a disciplinary check. Runs started this way bill exactly like any other run.