DLI
Minnesota Contractor License Lookup & Verify (DLI)
Verify any Minnesota residential contractor by license number or name — subtype, status, expiration, city & enforcement-action flag — from the official DLI registry.
Verification
Output fields
Authoritative field set from the dataset schema.
| Field | Type |
|---|---|
state | string|null |
license_number | string|null |
business_name | string|null |
person_name | string|null |
license_type | string|null |
status | string|null |
issue_date | string|null |
expiration_date | string|null |
city | string|null |
county | string|null |
address | string|null |
zip_code | string|null |
phone | string|null |
enforcement_action | string|null |
renewal_in_progress | string|null |
bond_amount | string|null |
bond_company | string|null |
insurance_company | string|null |
matched_by | string|null |
source_url | string|null |
scraped_at | string|null |
Sample row
{
"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
| Field | Type | Req | Default | Description |
|---|---|---|---|---|
query | string | no | "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. |
queries | array | no | ["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. |
maxResults | integer | no | 50 | Cap on matches returned PER QUERY (bounds cost) — not a per-run cap, so a batch cannot silently return only the first 50 rows overall and read as 'no match'. |
enforcementOnly | boolean | no | false | When on, return only licensees with an active DLI enforcement action (revocation, suspension, etc.). Use this to monitor a name/keyword for disciplinary flags. |
proxyConfiguration | object | no | {"useApifyProxy":false} | Optional. The Minnesota DLI roster CSV is reachable directly; a proxy is not needed. |
Pricing
Pay per result (dataset-item) — no charge for empty runs.
Example: 100 verified license records at $0.004/result ≈ $0.40.
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.
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.
Guides & use cases
Related actors