Who does the work here, and how to write to them
The trades who actually work this market, ranked by how much permitted work they have pulled, with the parcels they worked it on and the address their permit office has for them. It answers 'who does this kind of job around here, and are they still working' out of the cities' own records rather than out of a directory that sells placement.
The file
Minneapolis and Saint Paul · 6,588 firms on 47,764 permits · 2020-01-02 to 2026-08-17
6,588 rowsCounties in this file: Hennepin, Ramsey · 14 columns available · free, no account, no rate limit.
Joins to an address on parcel_ids, so it can be pointed at one property rather than read whole.
What the rows look like
10 real rows from this file, spread evenly across it rather than taken off the top — every file here is written in some order, so its first rows are never a fair sample of it. These are the default columns, which is what the download button hands over.
| firm as filed | main trade | permits | sites worked | last permit | mailing address |
|---|---|---|---|---|---|
| CenterPoint Energy Resource Corp | systems | 2,035 | 956 | 2026-08-06 | 700 W LINDEN AVE MINNEAPOLIS |
| Charity Heating and Cooling Services | systems | 11 | 2 | 2026-07-21 | 17399 700th Ave Dassel |
| Kraft Contracting LLC | systems | 5 | 5 | 2025-12-11 | 2330 Ventura Dr Woodbury |
| North Star Electrical Contractors Inc | systems | 3 | 2 | 2023-09-21 | 800 42nd Avenue North Minneapolis MN 55412 |
| MANYVONE KEOMANYVONG | structural | 2 | 1 | 2023-09-11 | 3000 CHANDLER COURT BURNSVILLE MN 55337 |
| BASILLICA OF ST MARY | structural | 1 | 1 | 2021-10-28 | 88 17th St N Minneapolis |
| Facilities Director Jayson Palm | structural | 1 | 1 | 2025-08-18 | 1130 Nicollet mall Minneapolis |
| Larsh Plumbing LLC | systems | 1 | 1 | 2025-10-23 | 1749 Gotland Ln Shakopee |
| RYAN SUNRAM SUNRAM CONSTRUCTION INC | structural | 1 | 1 | 2020-09-15 | 20010 75TH AVE N CORCORAN MN 55340 |
| whitney elander CEDAR VIEW ELECTRIC INC | systems | 1 | 1 | 2023-09-24 | 645 SHENANDOAH DRIVE SHAKOPEE MINNESOTA 55379 |
The cuts of this file
Every cut is the same columns, filtered. Pick one and the row count changes; the file does not.
Every column in this file
Columns marked default come down unless you pick your own with
&columns=.
| Column | What it is | In the default file |
|---|---|---|
firm |
firm as filed | default |
main_trade |
main trade | default |
permits |
permits | default |
sites |
sites worked | default |
last_permit |
last permit | default |
mailing_address |
mailing address | default |
city |
city | optional |
first_permit |
first permit | optional |
open_permits |
no completion recorded | optional |
permits_recently |
permits since 2024-08-17 | optional |
trades |
trades worked | optional |
register |
register's own word | optional |
value_usd_stp |
declared value (St Paul only) | optional |
county |
county | optional |
Where it comes from
Minneapolis CCS_Permits — Community Planning and Economic Development; Saint Paul Approved_Building_Permits — Department of Safety and Inspections
Records retrieved 2026-08-19 — the oldest capture date among the layers behind this file, because data is no fresher than its stalest input.
What this layer cannot answer is stated in full on the system card — read it before quoting a figure.
What you may do with it
Creative Commons Attribution 4.0 International (CC BY 4.0). Share it, change it, build a product on it, sell that product — all fine. The one condition is credit: say it came from Brick & Mortar and link back.
Records published by City of Minneapolis, City of Saint Paul. Government data held by a Minnesota state agency or political subdivision, presumed public under the Minnesota Government Data Practices Act (Minn. Stat. ch. 13) and published by the agency itself.
Read the full licence · how we license every dataset, and the two we do not
Without the page
/api/export?dataset=contractors&format=csv returns the
same file. Call /api/export
with no arguments for the whole catalogue.
Point an AI at it
Every file carries its own source, its capture date and the layer's own warnings in the header, so a model reading one gets the caveats with the numbers rather than the numbers alone. Paste this at an assistant that can fetch a URL:
Read https://brickandmortar.dev/api/export?dataset=contractors&format=csv
Everything above the header row is provenance and limits. Read it first,
then answer using only what the rows support.
llms.txt describes the whole warehouse the same way — what each dataset holds, which counties it really covers, and what it cannot answer.