Every housing, fire and nuisance inspection
The file
353,954 inspections on Minneapolis violation cases, completed 2016 to 2026, on 353,523 rows the city tied to a parcel — the case, the kind of inspection and its result. One file per year; newest row 2026-09-23.
353,954 rowsCounties in this file: Hennepin · 15 columns available · free, no account, no rate limit.
Joins to an address on lat, lon, 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.
| completed | address | case type (city's code) | inspection | result (city's code) | case number |
|---|---|---|---|---|---|
| 2016-01-04 | 628 FRANKLIN AVE E | VBR | KIVA Inspection | Conduct | CE1108673 |
| 2018-01-16 | 2321 QUEEN AVE N | HIS | Reinspection | VS | CE1146526 |
| 2018-10-30 | 1701 36TH AVE NE | HIS | Reinspection | Cancel | CE1174791 |
| 2019-09-16 | 2222 PENN AVE N | Nuisance | Reinspection | Auth | CE1219613 |
| 2020-12-28 | 5032 LYNDALE AVE S | HIS | Reinspection | AdminExt | CE1255533 |
| 2022-06-22 | 3132 CEDAR AVE S | HIS | Reinspection | Final | CE1290610 |
| 2023-09-25 | 3324 22ND AVE S | HIS | Reinspection | ConductCit | CE1323418 |
| 2024-11-07 | 2919 KNOX AVE N | Nuisance | Reinspection | Auth | CE1352788 |
| 2025-12-08 | 701 15TH AVE SE | FIS | Reinspection | AdminWarn | CE1379049 |
| — | 4809 BLOOMINGTON AVE | HIS | Compliance Tier 3 Inspection | — | CE1392269 |
An em dash means the record is blank, and that is the source's gap rather than ours. Across the whole file: completed is blank on 1.8% of rows, result (city's code) is blank on 1.8% of rows.
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 |
|---|---|---|
completed |
completed | default |
address |
address | default |
case_type |
case type (city's code) | default |
case_group |
case group (city's code) | optional |
inspection |
inspection | default |
result |
result (city's code) | default |
case_number |
case number | default |
scheduled |
scheduled | optional |
parcel_id |
parcel id | optional |
inspection_id |
inspection id | optional |
year |
year | optional |
city |
city | optional |
county |
county | optional |
lat |
latitude | optional |
lon |
longitude | optional |
Where it comes from
City of Minneapolis open data — CaseInspections (Regulatory Services)
This source does not stamp the day it was published, so we cannot honestly date our copy of it and will not guess. The period the records themselves cover is on the system card.
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. 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=code-inspections&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=code-inspections&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.