Minnesota DLI Professional License Scraper avatar

Minnesota DLI Professional License Scraper

Pricing

from $1.20 / 1,000 results

Go to Apify Store
Minnesota DLI Professional License Scraper

Minnesota DLI Professional License Scraper

Scrape contractor and tradesman license records from Minnesota DLI (Department of Labor and Industry). Downloads bulk CSV regulant lists — residential contractors, electricians, plumbers, roofers, mechanical bond holders and more. No browser needed, direct file download.

Pricing

from $1.20 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Share

Minnesota DLI Contractor & Tradesman License Scraper

What does Minnesota DLI License Scraper do?

Minnesota DLI License Scraper extracts contractor and tradesman license records from the Minnesota Department of Labor and Industry (DLI). It downloads bulk CSV exports and returns structured data including license numbers, business names, license types/subtypes, status, phone numbers, enforcement actions, and renewal flags.

The scraper covers 10 license categories: electricians, plumbers, residential contractors, contractor registrations, mechanical contractor bond holders, boiler engineers, high pressure piping installers, residential roofers, manufactured home installers, and elevator mechanics — totaling 200,000+ records across all categories.

No browser required. No API keys. No login. Just direct CSV download and parsing.

Why scrape Minnesota DLI license data?

Minnesota has one of the strictest contractor licensing regimes in the United States. The state operates a Contractor Recovery Fund that requires all residential contractors to be licensed, and HVAC contractors must post a $25,000 surety bond — making bond verification a unique data point unavailable from most other state regulators.

Here's why this data is valuable:

  • 🏗️ Subcontractor due diligence — Verify contractor license status and registration before awarding contracts in the Minneapolis/St. Paul metro area
  • 🛡️ Insurance underwriting — Validate license status and mechanical contractor bond coverage for HVAC contractors
  • 📞 Marketing & lead generation — Build targeted lead lists of active electricians, plumbers, roofers, and contractors filtered by category, location, and phone number
  • 📊 Workforce analytics — Analyze license distribution, enforcement actions, and renewal patterns across Minnesota counties
  • 🔄 Compliance monitoring — Schedule monthly runs to track expirations, revocations, new issuances, and enforcement action changes
  • Enforcement tracking — The enforcementAction flag uniquely identifies contractors with active disciplinary actions

The Apify platform adds scheduling, API access, webhook integrations, and proxy rotation — turning a one-time scrape into an automated compliance monitoring pipeline.

How to scrape Minnesota DLI license data

  1. Go to the Minnesota DLI License Scraper on Apify Store
  2. Click Try for free to open the Actor in Apify Console
  3. Select which categories to scrape (or leave empty for all 10)
  4. Optionally enable Download ZIP mode for faster full scrapes
  5. Choose a status filter — Issued (Active) Only to get current licenses, or All Statuses to include expired/revoked
  6. Set Max Records (0 = unlimited) and click Start
  7. Download your dataset in JSON, CSV, Excel, or XML format — or connect it via API to your own systems

Each category downloads in 1–3 seconds. No proxies needed.

What data can you extract from Minnesota DLI?

FieldDescriptionExample
License NumberDLI license number (2-letter prefix + digits)RT660070
License TypeLicense categoryElectrical
License SubtypeSpecific license classificationRegistered Unlicensed Power Limited Technician
Entity TypeBusiness or PersonalPersonal, Business
Business NameFirm name (when entity = Business)MIDWEST TV & APPLIANCE LLC
Individual NamePerson name (when entity = Personal)MATT LOKKEN
DBADoing Business As trade nameBROADWAY HEATING & AIR CONDITIONING
StatusLicense statusIssued, EXPIRED, Voluntary Termination
Issue DateOriginal issue date (YYYY-MM-DD)2012-12-07
Expiration DateExpiration date (YYYY-MM-DD)2026-05-31
AddressFull street address6688 Talmadge RD
CityCityEau Claire
StateState abbreviationWI
ZIP CodeZIP code54701
PhonePhone number7158351540
Enforcement ActionActive disciplinary action flag0 (none), 1 (active)
Renewal in ProgressCurrently renewingYes or null

Minnesota DLI license categories explained

CategoryDescriptionRecords
ElectricalElectricians — journeyman, master, contractor, power limited technician~107,000
PlumbingPlumbers — journeyman, master, contractor~40,000+
Residential_ContractorsResidential building contractors & remodelers~30,000+
Contractor_RegistrationsRegistered contractors (lower barrier than full license)~20,000+
Mechanical_Contractor_BondHVAC contractor bond records ($25K bond requirement)~5,200
BoilerBoiler engineers & operatorsvaries
High_Pressure_PipingHigh pressure piping installersvaries
Residential_RooferResidential roofing contractorsvaries
Manufactured_Home_InstallerManufactured/mobile home installersvaries
ElevatorElevator contractors & mechanicsvaries

Minnesota license number prefixes

All Minnesota DLI license numbers follow the pattern 2-letter prefix + digits. The prefix identifies the license type:

BC (Building Contractor), PM (Master Plumber), PJ (Journeyman Plumber), EL (Electrical Contractor), EM (Master Electrician), EJ (Journeyman Electrician), CR (Contractor Registration), RR (Residential Roofer), RT (Registered Technician), MB (Mechanical Bond)

Understanding Minnesota license status

In Minnesota's system, "Issued" is the equivalent of "Active" in other states. Other status values include: Expired, EXPIRED, Voluntary Termination, Revoked, Suspended, Pending, Cancelled. Note that the casing is inconsistent in DLI's source data — the Actor preserves the original values.

Output example

{
"licenseNumber": "MB005562",
"licenseType": "Mechanical Contractor Bond",
"licenseSubtype": "Mechanical Contractor Bond",
"sourceCategory": "Mechanical_Contractor_Bond",
"entityType": "Business",
"businessName": "MIDWEST TV & APPLIANCE LLC",
"individualName": null,
"name": "MIDWEST TV & APPLIANCE LLC",
"dba": null,
"responsibleIndividual": null,
"status": "Issued",
"issueDate": "2010-11-19",
"expirationDate": "2028-03-23",
"address": "PO BOX 429",
"city": "LA CROSSE",
"state": "WI",
"zipCode": "54602",
"county": null,
"phone": null,
"email": null,
"bondAmount": null,
"bondCompany": null,
"enforcementAction": "0",
"renewalInProgress": null,
"scrapedAt": "2026-04-21T20:11:16.326Z"
}

How much does it cost to scrape Minnesota DLI?

Minnesota DLI License Scraper uses a pay-per-result pricing model. You only pay for the records you extract:

PlanPrice per 1,000 recordsFull scrape (~200K records)Example: Mech. Bond only (~5.2K)
Free (No discount)$2.00~$400~$10.40
Bronze$1.80~$360~$9.36
Silver$1.50~$300~$7.80
Gold$1.20~$240~$6.24

The Actor itself runs on ~0.001 CU per run — the file download and parsing cost is negligible. You can try it for free with a limited number of records on the Apify Free plan.

Input configuration

Click on the Input tab for full details. Key parameters:

ParameterDefaultDescription
Categories["Mechanical_Contractor_Bond", "Residential_Roofer"]DLI categories to scrape. Leave empty for all 10
Download ZIPfalseDownload combined ZIP instead of individual CSVs
Status Filterallissued = active licenses only
Max Records200Record cap. Set 0 for unlimited
Request Delay200 msDelay between file downloads

Integrations and API access

You can connect Minnesota DLI License Scraper with almost any cloud service or web app via the Apify platform's built-in integrations. Connect with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and more. You can also access datasets programmatically via the Apify API.

FAQ

Minnesota DLI publishes license data as public records in downloadable CSV format at a fixed URL. No login, no terms of service agreement, and no CAPTCHA. This Actor downloads the same files any browser would access. The data contains business names, addresses, and professional license information — all public record under Minnesota's Data Practices Act.

How often is DLI data updated?

DLI updates CSV export files regularly. For compliance monitoring, we recommend scheduling monthly runs using Apify's scheduling feature.

Why are bondAmount and bondCompany always null?

DLI's current CSV exports do not include bond detail columns. Bond amount and surety company information is only available through the iMS portal for individual lookups. These fields are retained in the schema for forward compatibility.

What does enforcementAction mean?

The enforcementAction field is a flag from DLI: "0" means no active enforcement action, "1" means the license has an active disciplinary action. This is a unique data point — most state license databases don't expose enforcement flags in bulk exports.

Can I download all categories at once?

Yes! Either leave the categories input empty (downloads all 10 individually) or enable Download ZIP mode, which fetches a single combined ZIP file and extracts all CSVs. ZIP mode is faster for full scrapes.

Where can I get support?

For issues or feature requests, use the Issues tab on the Actor page. I actively monitor feedback and respond promptly. For custom solutions, feel free to reach out.

Other license scrapers

Looking for license data from other states? Check out: