Every 311 request, call by call
Pick a year. Join nothing to a parcel — there is no parcel key here.
The file
932,497 311 requests in Minneapolis, 2015 to 2026, one row each with the city's own point on 783,888. One file per year. Newest row 2026-08-19.
932,497 rowsCounties in this file: Hennepin · 13 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.
| opened | closed | subject | reason | type |
|---|---|---|---|---|
| 2015-01-05 | 2015-07-31 | Streets | Lighting | Street Light Trouble |
| 2017-05-09 | 2017-05-25 | Public Safety | Graffiti / Clean City | Graffiti - Open311 |
| 2019-02-01 | 2019-02-01 | Animal Related | Animal Control | Animal Complaint - Livability |
| 2020-05-15 | 2020-05-22 | Solid Waste & Recycling | Garbage & Recycling | Solid Waste Overflowing Litter - Open311 |
| 2021-06-30 | 2021-07-01 | Vehicles and Commuting | Traffic Control | Parking Violation Complaint |
| 2022-08-08 | 2022-08-12 | Property | Private Property | RHOD Tenant Conditions Complaint |
| 2023-06-28 | 2023-06-28 | Animal Related | Animal Control | Animal Complaint - Public Health |
| 2024-07-30 | 2024-07-30 | Vehicles and Commuting | Traffic Control | Parking Violation - Open311 |
| 2025-08-19 | 2025-08-21 | Property | Private Property | Residential Conditions Complaint Tenant |
| 2026-08-19 | — | Vehicles and Commuting | Traffic Control | Parking Violation - Open311 |
An em dash means the record is blank, and that is the source's gap rather than ours. Across the whole file: closed is blank on 0.9% 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 |
|---|---|---|
opened |
opened | default |
closed |
closed | default |
status |
status | optional |
subject |
subject | default |
reason |
reason | default |
type |
type | default |
title |
title | optional |
case_id |
case 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 — 311 requests, the same feed the aggregate slice reads
Records retrieved 2026-09-10 — 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. 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=service-requests&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=service-requests&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.