Data

Minnesota trade contractor licences

Last updated November 4, 2026

Next update December 2026

Minnesota’s Department of Labor and Industry licenses plumbing and electrical contractors, and residential roofers. Heating and cooling contractors need no state licence, but they must file a bond with the department. We, TrustPast, downloaded the department’s licence files on 17 October 2026 and kept 11,693 business licence and bond records. They created 9,257 new companies in our database and matched 444 that were already there.

This page counts those companies. By trade, by how many licences each holds, by how long ago the licence was first issued, by when it runs out and by where the businesses are. Then it shows what our pipeline did with them in the first two and a half weeks. Unlike some state files, Minnesota’s gives an original issue date. For plumbers that date has a catch, and the section on licence age explains it.

What the licences are

The department, DLI for short, runs a Construction Codes and Licensing Division. Four of its credentials are the trades on this page.

Electrical contractors. DLI’s licensing page says: “Businesses and individuals that contract to perform electrical work in Minnesota must have an electrical contractor license.” The company names a “responsible licensed individual”, who must “Hold an active master electrician license”. Employees don’t need a contractor licence of their own. A general contractor that hires a licensed subcontractor doesn’t need one either. The files split the licence into Class A and Class B; nearly every company here holds Class A.

Plumbing contractors. The plumbing page reads the same way: businesses that contract plumbing work “must have a plumbing contractor license or a restricted plumbing contractor license.” The difference is town size. “A plumbing contractor license is required for plumbing work in Minnesota communities with a population over 5,000.” A restricted contractor “cannot contract to perform work in communities with a population over 5,000.” The responsible person must hold an active master plumber licence.

Mechanical contractors. This one is a bond, not a licence. DLI’s page says: “While there is no state license required for mechanical contractors, businesses must file a $25,000 mechanical contractor bond with DLI in order to contract to perform gas, heating, ventilation, cooling, air conditioning, fuel burning or refrigeration work.” The filing “is valid for two years.” Mechanical contractors “must comply with local licensing requirements” too. Our pipeline files these companies under HVAC.

Residential roofers. A company that contracts with a homeowner “to provide just roofing work must have a residential building contractor, residential remodeler, or residential roofer license.” The roofer licence is narrow. It “does not allow the licensee to perform any work besides roofing”, and gutters, downspouts, soffit and fascia need a builder or remodeler licence. DLI’s roofer page says “Only companies are required to obtain a license,” each naming a “qualifying person” who sits the exam.

Residential building contractors and remodelers are general contractors, so our collector leaves them out. A roofing firm that holds a builder licence instead of a roofer licence isn’t on this page.

The file we read

DLI publishes the files itself. Its lookup page offers to “Download a spreadsheet of all licensed businesses and individuals,” and says “The file is updated nightly and can be sorted and filtered as needed.” It also offers one spreadsheet per area. Our collector reads four of them: plumbing, electrical, mechanical contractor bond and residential contractors.

Each file holds businesses and people. Master plumbers, journeyworker electricians and qualifying builders are individual rows, and our collector drops them. It keeps business rows of six kinds and nothing else.

The download ran on 17 October 2026. The 11,693 records went into the database between 14:54:33 and 14:54:36 UTC that day.

Licence or bondLicence records
Mechanical Contractor Bond5,369
Class A Electrical Contractor3,737
Plumbing Contractor2,121
Restricted Plumbing Contractor238
Residential Roofer Contractor224
Class B Electrical Contractor4
All six11,693

Those records sit on 9,701 companies. 9,257 of them were new, created by these files, and they hold 11,168 of the records. The other 444 companies were already in our database from another state’s file, most of them from Iowa (203), Texas’s licensing department (87) and Florida (79). They hold the other 525 records. From here on, the tables count the 9,257 companies the Minnesota files created. Each one is counted under the licence that created it.

Licence that created the companyTrade we gave itCompaniesShare
Mechanical Contractor BondHVAC3,53138.1%
Class A Electrical ContractorElectrical3,26135.2%
Plumbing ContractorPlumbing2,02921.9%
Restricted Plumbing ContractorPlumbing2252.4%
Residential Roofer ContractorRoofing2072.2%
Class B Electrical ContractorElectrical40.0%
All9,257100%

HVAC leads, with 3,531 companies, then electrical with 3,265. Plumbing comes to 2,254 once the restricted licences are added. Roofing is small, 207 companies. A roofing firm can hold a builder or remodeler licence instead, and those we don’t collect.

How many licences a company holds

The files have one row per licence or bond. A company that renewed under a new number, or holds more than one trade, carries several rows.

Licence records per companyCompaniesLicence records
17,5547,554
21,5343,068
3140420
4 or 526108
6318
All9,25711,168

Most companies, 7,554, hold one record. 1,703, or 18.4%, hold two or more. The largest holds six.

The mix of trades says more. Here are the same companies by the trades their records cover.

Trades heldCompaniesLicence records
HVAC only3,5293,668
Electrical only3,1793,257
Plumbing and HVAC1,3072,719
Plumbing only864876
Roofing only207208
Electrical and HVAC85181
Plumbing, electrical and HVAC66216
Plumbing and electrical1530
Roofing with another trade513
All9,25711,168

1,478 companies, 16.0%, hold more than one trade. Plumbing and HVAC go together here more than anywhere else in the file. Of the 2,254 companies with a plumbing licence, 1,375 also hold a mechanical bond, 61.0%. That’s the shop that fits the water heater, the furnace and the gas line under one name. Electrical firms mostly stay electrical: 3,179 of the 3,346 companies with an electrical licence hold nothing else.

How long the licences have been held

The files carry an Orig_Date column, the original issue date. Our database stores each company’s age as the years since its oldest licence was issued. Every one of these 9,257 companies has one.

Years since issueElectricalHVACPlumbingRoofingAll
Under 231728822749881
2 to 4446382288541,170
5 to 9534628317351,514
10 to 198392,2311,404404,514
20 to 295902923624
30 or more539096554
All3,2653,5312,2542079,257

5,692 companies, 61.5%, hold a licence first issued ten or more years ago. 1,178, 12.7%, reach twenty or more. The oldest is 42.65 years; the average is 13.07.

Look at the columns, though. Electrical spreads across every band, with 1,129 companies at twenty years or more. HVAC and plumbing stop short: 2,231 HVAC companies sit in the 10 to 19 band, and two go past it. Plumbing has 18 companies past twenty years out of 2,254.

That is the catch. Our collector notes that for plumbing contractors the original date is often 1 January 2012, when their licensing moved to DLI. The numbers agree: 303 plumbing companies share one value to two decimals, 14.82 years. A plumbing date in 2012 says the firm was licensed by then, not that it started then. So for plumbers, read the age as a floor. The mechanical bonds bunch the same way, around 17 years, and only two reach 20, so read those as a floor too. The firm may be much older.

Electrical has a cluster too. 259 companies share 40.65 years. That is one date in the file, not 259 firms opening the same week, and the file doesn’t say what it marks. Either way, a firm in that row has held its licence at least that long.

This file feeds the Minnesota row in our table of how long trade licences have been held, where the same bulge in the 10 to 19 column shows up.

When the licences run out

Each company carries the expiry date of the licence that created it. The files keep expired and ended licences, not only current ones, so the dates go back to 2008.

ExpiresElectricalHVACPlumbingRoofingAll
2008 to 20255511,914493352,993
2026343346029718
202704721,761762,309
20282,3717980673,236
202901001
All3,2653,5312,2542079,257

The trades renew on their own clocks. DLI’s electrical page says: “Electrical contractor licenses expire on the last day of February in even-numbered years.” Every one of the 2,371 electrical companies in 2028 expires in February. The plumbing companies run on odd years: all 1,761 in 2027 expire in December. The mechanical bonds spread across the months, which fits a two-year filing that starts whenever the bond is filed.

3,563 companies carry an expiry date that had passed by the download. Those are firms whose licence lapsed, ended or was never renewed. The table keeps them, because a firm with an expired licence may still hold years of job files.

What DLI’s status says

DLI’s lookup page notes: “Current, active licenses or registrations will have a status of ‘Issued.’” Each company carries the status of the licence that created it.

DLI statusCompaniesShare
Issued5,49959.4%
Expired2,14223.1%
Voluntary Termination1,49916.2%
Revoked911.0%
Suspended190.2%
Denied70.1%
All9,257100%

Our database turns that into its own field. 5,641 companies are marked active, 3,501 inactive and 115 other. The two don’t line up exactly: 152 companies whose DLI status isn’t Issued are marked active, and 10 marked Issued are inactive. The database field is our own and is updated as more licences are matched, so it can move away from the status on the first record. 448 companies carry a note that the file flags an enforcement action on the record. An active licence says the state hadn’t lapsed it. It doesn’t prove the firm is still working.

Where the businesses are

The files publish a business address for each licence. 8,304 companies, 89.7%, give one in Minnesota.

State of the addressCompanies
Minnesota8,304
North Dakota332
Wisconsin280
South Dakota83
Iowa48
37 other states210
All9,257

The four neighbours come first, with 743 companies between them. Roofers come from furthest afield: 36 of the 207, 17.4%, give an address outside Minnesota. Electrical firms follow at 392 of 3,265, 12.0%, then HVAC at 367 of 3,531, 10.4%. Plumbers are the most local, 158 of 2,254, 7.0%.

Inside Minnesota, the business addresses name 753 cities and towns as written.

CityCompanies
Minneapolis251
St Paul240
Duluth189
Rochester103
Andover99
Brooklyn Park97
Blaine96
Elk River91
Anoka83
Bloomington80
743 other names6,975
All in Minnesota8,304

The ten largest hold 1,329 companies, 16.0% of the Minnesota addresses. Saint Paul is written three ways: “St Paul” (240), “Saint Paul” (11) and “St. Paul” (6), 257 together. This is the town on the business address, not where the work is done.

What our pipeline did with them

Our pipeline puts every company in one lane, by headcount. Lane C is every company under 30 people or with no headcount on record, and Polyshares is its buyer. The licence files carry no headcount, so the companies started in lane C.

Lane and statusCompanies
Lane C, qualified9,231
Lane C, held for a name check10
Lane C, added to a campaign3
Lane B, 30 or more people5
Excluded8
All9,257

9,231 companies, 99.7%, sit in lane C as qualified. Ten are held because their names carry a word our risk check stops on. A person clears them, or they stay out of outreach. Eight are excluded under our qualification rules. Five sit in lane B, which isn’t Polyshares’ lane: another file puts their headcount at 30 or more.

The files publish an email column, but our collector found it empty in every row. They gave a phone for 7,386 of these companies, 79.8%. At the read our pipeline had a website for one of them and an email address for three. All three addresses were checked and usable. All three were added to an email campaign on 20 October, all electrical. By the read, none had replied and none had opted out. So this page makes no promise about when, or whether, a Minnesota firm hears from us.

What a licence says about the record

A Minnesota contractor licence says a licensed person stands behind the firm’s work: a master electrician, a master plumber, or, for a roofer, its qualifying person. A mechanical bond says a surety backs the firm for $25,000. Neither says anything about the files behind the work. A licence first issued in 1990 could sit on thirty years of job folders, or on a shoebox.

What Polyshares looks at is the record itself. Its home page says: “The length and texture of the record matter more than headcount or revenue.” Under “Who qualifies” it puts “Any company with real operating history, in any sector.” Construction is among the sectors it names. On price, it says: “Depth of operating history and how much visible reasoning the record contains move the number far more than raw volume does.”

Polyshares publishes a few of its deals. Polyshares lists a roofing company, filed under home services, at $450,000 (indicative, not an offer). Polyshares lists a general contractor, filed under construction, at $300,000 (indicative, not an offer). Each is a “Perpetual exclusive license to the operational record,” “Anonymized before delivery.” A published deal is one company’s price. It doesn’t predict anyone else’s.

What this means for a Minnesota trade contractor

The records that count are the ones that show how a job was worked out, what Polyshares calls the “visible reasoning” in a record. A firm that has held a licence for fifteen or forty years has a long trail of them.

For an electrical contractor, that’s the bids, the load calculations, the panel schedules, the permits, the inspection reports and the change orders. Our page on job files and work orders covers them, and our page on estimates and quotes covers the bids that became jobs and the ones that didn’t.

For a mechanical contractor, it’s the service history. A no-heat call in a Duluth January, what the technician found on the furnace, what was replaced, and what the second visit fixed. The maintenance agreements and the start-up sheets sit beside it. Our page for HVAC companies walks through those records.

For a plumbing firm, it’s the tickets, the quotes, the permits and the job photos. Our page for plumbing companies goes file by file. The 1,375 firms that hold both a plumbing licence and a mechanical bond keep both trails.

For a residential roofer, it’s the inspections, the storm-claim paperwork, the measurements and the warranty files. Our page for roofing companies covers them.

Polyshares counts “spreadsheets, CRM history, support tickets” and “accounting and ERP exports” as operational data.

Before any of it moves, Polyshares says identifying fields are stripped. Customer names and payments are never what is wanted. What is wanted is how the work was done: how a bid became a job, how a change order was settled, how a fault was found. Our explainer on what data buyers actually want from a trade business puts those records in order.

How many years of yours can you still open? Our estimate takes two minutes and asks exactly that.

What the tables do not prove

The issue date is a floor for plumbers, and the mechanical bonds look the same. A plumbing firm shown at 14 years may have been working for forty.

The files cover four credentials. Builders and remodelers, whose licences also allow roofing work, aren’t counted. Neither are mechanical workers, whose licences or “comp cards” DLI says “are not issued by DLI” but by cities.

The files keep licences that have lapsed or ended. A company on this page may have closed years ago. The status table shows how many look that way.

Our matching keeps one company per business name and town. Where a firm trades under another name, the file’s DBA name is the company, so two licences under two names stay two companies. Two firms with the same name in the same town would become one.

Our lane is the pipeline’s reading of the records we hold, not a buyer’s decision. Polyshares decides on its own review; it says “We read a sample of the record.”

What is never included

This page holds counts only. It names no company and shows no licence number, address, phone number, email address or person.

In a licence of records, the customer’s own information stays out. Polyshares says its licence “does not cover what you hold on behalf of your own clients.” It also says identifying fields, customer names, emails and account numbers are “stripped by a specialist PII partner before Polyshares or any lab sees the record.” Our advice: payment card numbers, bank statements and payroll should never be in an export at all. Nor should a home’s door codes or the alarm details written on a service ticket. How it’s safe walks through what leaves your systems, and when.

For the same kind of count in other states, see Ohio trade contractor licences, New Jersey contractor licences by age, Oregon trade contractor licences and licensed trade contractors by state board.

Methodology

The files. Four of the nightly exports linked from DLI’s License and registration lookup page, under “Download a specific spreadsheet of licensed businesses and individuals”: plumbing, electrical, mechanical contractor bond and residential contractors. Each file has one row per licence, bond or registration and the same columns: business or person, licence type and subtype, name, the name the business trades under, address, city, state, ZIP code, phone, email, licence number, status, original date, expiry date, an enforcement-action flag and a renewal-in-progress flag.

What was collected. Our collector (mn-dli) keeps business rows only, and only six subtypes: Plumbing Contractor and Restricted Plumbing Contractor (plumbing), Class A and Class B Electrical Contractor (electrical), Mechanical Contractor Bond (HVAC) and Residential Roofer Contractor (roofing). Individual licences, builder and remodeler licences, pipe-laying bonds, employer registrations and the other credentials in the files are left out. The trade name is the company when there is one, else the licensee of record. A row with no business name is skipped. The run of 17 October 2026 wrote 11,693 licence records into the database between 14:54:33 and 14:54:36 UTC. The licence records by type are counted from the licence number’s two-letter prefix, which matches the subtype one to one in this file.

When we read it. We read the host database read-only on 4 November 2026, from about 12:00 to 12:13 UTC. The DLI pages and the Polyshares pages were read directly the same day, between about 12:05 and 12:12 UTC.

Which companies. The tables count the 9,257 companies the Minnesota files created: the companies whose first source is the DLI file. Each sits in one row, the type of the licence that created it. The 444 companies that already existed when their Minnesota licence arrived are left out of the tables. A licence record matches a company by business name, state and town. The trade mix and licences per company count every Minnesota record on the company.

Dates. The years since issue are the database’s own field, set at the download on 17 October 2026 from the original issue date of a company’s oldest dated licence, in years, to two decimals. The bands are whole years. The two clusters named above are counts of companies sharing one value of that field. Expiry is the date on the licence that created the company; the temporal coverage runs from the earliest expiry, 2008, to the latest, 2029. Shares are rounded to one decimal.

Status. DLI’s status is the status on the licence that created the company, counted without regard to capitals (the files write some in capitals and some not). The database’s active, inactive and other are our collector’s mapping: Issued is active unless the expiry has passed; Expired and Voluntary Termination are inactive; Revoked, Suspended, Denied and Withdrawn are other. A company with several licences is active if any of them is; otherwise it keeps the status of the licence that created it.

Places. The state and city are the business address’s. City names are counted as written, ignoring capitals; spelling variants of one town count separately, as the Saint Paul row shows.

Lane and status. The pipeline’s own at the read, set by our qualification step. An excluded name is excluded; a name with a risk word is held for a person to check. “Added to a campaign” means an email address was handed to the sending tool. “Checked” means our address check ran. Replies and opt-outs are those our database had recorded for the added addresses by the read.

Left out. Individual licences; residential builders and remodelers; every DLI credential outside the six subtypes; mechanical licences issued by cities; the 444 companies another file created first; licences issued since 17 October 2026.

Refresh. The tables are rebuilt monthly from fresh exports and a new read of the database. The next update is due 4 December 2026.

TrustPast

Apply & License Your Data

*Purchases are made by Polyshares under its data licensing programme. TrustPast is an independent referral partner of Polyshares.

Sources