Every parcel, year by year
Type an address and pick a radius for your own parcels across every year; or pick a city for the whole file.
The file
6,831,595 parcel-years: 1,160,718 parcels in the seven metro counties, one row for each year-end MetroGIS file 2021 to 2025 and the current quarterly file (as of 2026-09-24), with value, tax, use, homestead and every sale dated inside that year. One file per city or township.
6,831,595 rowsCounties in this file: Anoka, Carver, Dakota, Hennepin, Ramsey, Scott, Washington · 26 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.
| parcel id | year | address | assessed | total tax | use (county's class) | homestead | sales this year | sold this year, price | parcels sharing that price and date |
|---|---|---|---|---|---|---|---|---|---|
| 013224110002 | 2,021 | 17970 UNIVERSITY AVE NW | 385,200 | 3,368 | RESIDENTIAL SINGLE FAMILY-IMPROVED | Yes | — | — | — |
| 203225330066 | 2,024 | 15019 SNOWY OWL ST NW | 381,500 | 3,913 | 1a RESIDENTIAL SINGLE UNIT | Yes | — | — | — |
| 141650204080 | 2,024 | 19867 EVENSONG CT | 450,200 | 5,622 | Residential | Yes | 1 | 490,000 | 1 |
| 3111621420008 | 2,023 | 7932 107TH ST CIR W | 436,400 | 5,173 | Residential | Yes | — | — | — |
| 3411824230005 | 2,026 | 7025 COUNTY RD 6 | 885,300 | 10,442 | Residential | Yes | — | — | — |
| 2202924240809 | 2,024 | 728 3RD ST N | 1,000 | 13 | Condo - Garage/Miscellaneous | Yes | — | — | — |
| 1011821440029 | 2,021 | 4533 BEARD AVE N | 285,000 | 4,608 | Double Bungalow | Yes | 1 | 435,500 | — |
| 112823130050 | 2,021 | 436 VANCE ST | 226,900 | 3,352 | Res 1 unit | Yes | — | — | — |
| 273080290 | 2,025 | 7105 WHITEHALL RD | 446,900 | 4,572 | 201 1A/4BB(1) RESIDENTIAL SINGLE UNIT | Yes | — | — | — |
| 3602821440003 | 2,026 | 5940 MANNING AVE S | 1,204,400 | 8,085 | 210 | Yes | — | — | — |
An em dash means the record is blank, and that is the source's gap rather than ours. Across the whole file: parcels sharing that price and date is blank on 97.5% of rows, sales this year is blank on 95.6% of rows, sold this year, price is blank on 95.6% of rows, total tax is blank on 10.5% of rows, address is blank on 4.3% 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.
| Cut | Rows | File |
|---|---|---|
| Minneapolis | 787,039 | CSV |
| Saint Paul | 500,115 | CSV |
| Bloomington | 186,750 | CSV |
| Plymouth | 174,969 | CSV |
| Woodbury | 174,260 | CSV |
| Maple Grove | 168,158 | CSV |
| Lakeville | 162,040 | CSV |
| Blaine (Anoka) | 156,317 | CSV |
| Brooklyn Park | 148,888 | CSV |
| Eagan | 143,956 | CSV |
| Eden Prairie | 137,680 | CSV |
| Coon Rapids | 135,465 | CSV |
| Edina | 128,309 | CSV |
| Minnetonka | 125,812 | CSV |
| Burnsville | 117,804 | CSV |
| Apple Valley | 113,130 | CSV |
| Saint Louis Park | 106,081 | CSV |
| Cottage Grove | 96,694 | CSV |
| Shakopee | 93,298 | CSV |
| Maplewood | 81,212 | CSV |
| Inver Grove Heights | 79,163 | CSV |
| Roseville | 76,019 | CSV |
| Andover | 72,962 | CSV |
| Richfield | 71,625 | CSV |
| Savage | 69,846 | CSV |
| Prior Lake | 69,609 | CSV |
| Ramsey | 67,342 | CSV |
| Rosemount | 66,647 | CSV |
| Oakdale | 65,759 | CSV |
| Chanhassen (Carver) | 64,964 | CSV |
| Shoreview | 62,724 | CSV |
| Chaska | 61,987 | CSV |
| Fridley | 59,763 | CSV |
| Farmington | 55,128 | CSV |
| Lino Lakes | 54,803 | CSV |
| Champlin | 53,814 | CSV |
| Brooklyn Center | 53,518 | CSV |
| Forest Lake | 53,475 | CSV |
| Golden Valley | 52,609 | CSV |
| White Bear Lake (Ramsey) | 51,985 | CSV |
| Stillwater | 51,708 | CSV |
| Hastings (Dakota) | 51,015 | CSV |
| Crystal | 49,755 | CSV |
| South St Paul | 49,413 | CSV |
| Columbia Heights | 45,393 | CSV |
| Hugo | 45,340 | CSV |
| New Brighton | 44,449 | CSV |
| Ham Lake | 41,282 | CSV |
| West St Paul | 40,607 | CSV |
| Rogers | 38,801 | CSV |
| New Hope | 36,857 | CSV |
| Lake Elmo | 35,949 | CSV |
| Anoka | 35,914 | CSV |
| Waconia | 33,569 | CSV |
| East Bethel | 33,172 | CSV |
| Vadnais Heights | 32,137 | CSV |
| Robbinsdale | 31,720 | CSV |
| Hopkins | 31,522 | CSV |
| Mendota Heights | 31,268 | CSV |
| Victoria | 30,561 | CSV |
| White Bear Township | 30,343 | CSV |
| Mound | 28,687 | CSV |
| Dayton | 28,631 | CSV |
| Minnetrista | 27,439 | CSV |
| Orono | 26,855 | CSV |
| Corcoran | 26,733 | CSV |
| North St Paul | 24,877 | CSV |
| Mounds View | 24,771 | CSV |
| Oak Grove | 24,398 | CSV |
| Little Canada | 23,222 | CSV |
| Medina | 22,016 | CSV |
| Mahtomedi | 20,040 | CSV |
| Shorewood (Hennepin) | 19,970 | CSV |
| Arden Hills | 19,122 | CSV |
| Saint Francis | 18,748 | CSV |
| Belle Plaine | 18,398 | CSV |
| Scandia | 17,438 | CSV |
| Linwood Township | 16,958 | CSV |
| Carver | 16,106 | CSV |
| Jordan | 14,511 | CSV |
| Credit River | 14,480 | CSV |
| Columbus | 14,463 | CSV |
| Spring Lake Park (Anoka) | 14,364 | CSV |
| Saint Paul Park | 14,253 | CSV |
| Saint Anthony (Hennepin) | 13,783 | CSV |
| North Oaks | 13,758 | CSV |
| Grant | 12,961 | CSV |
| Nowthen | 12,846 | CSV |
| Oak Park Heights | 12,511 | CSV |
| Circle Pines | 12,504 | CSV |
| May Township | 12,271 | CSV |
| Elko New Market | 12,265 | CSV |
| Wayzata | 11,899 | CSV |
| Watertown | 11,453 | CSV |
| Independence | 11,371 | CSV |
| New Prague | 11,220 | CSV |
| Newport | 11,197 | CSV |
| Spring Lake Township | 10,893 | CSV |
| New Market Township | 10,452 | CSV |
| Afton | 10,430 | CSV |
| Centerville | 9,943 | CSV |
| Norwood Young America | 9,794 | CSV |
| West Lakeland Township | 9,789 | CSV |
| Deephaven | 9,690 | CSV |
| Cedar Lake Township | 9,146 | CSV |
| Greenfield | 8,819 | CSV |
| Falcon Heights | 8,444 | CSV |
| Denmark Township | 8,102 | CSV |
| Empire | 7,953 | CSV |
| Bayport | 7,515 | CSV |
| Ravenna Township | 7,415 | CSV |
| Mayer | 6,290 | CSV |
| Helena Township | 6,285 | CSV |
| Stillwater Township | 6,254 | CSV |
| Baytown Township | 6,223 | CSV |
| Saint Bonifacius | 5,904 | CSV |
| Castle Rock Township | 5,900 | CSV |
| Excelsior | 5,740 | CSV |
| Osseo | 5,736 | CSV |
| Eureka Township | 5,677 | CSV |
| Cologne | 5,667 | CSV |
| Lakeland | 5,486 | CSV |
| Sand Creek Township | 5,460 | CSV |
| Long Lake | 5,263 | CSV |
| Vermillion Township | 5,062 | CSV |
| Tonka Bay | 4,996 | CSV |
| Marshan Township | 4,952 | CSV |
| Laketown Township | 4,706 | CSV |
| Lake St Croix Beach | 4,690 | CSV |
| Hampton Township | 4,672 | CSV |
| Dahlgren Township | 4,522 | CSV |
| Lauderdale | 4,378 | CSV |
| Saint Anthony (Ramsey) | 4,286 | CSV |
| Maple Plain | 4,284 | CSV |
| Watertown Township | 4,236 | CSV |
| Belle Plaine Township | 4,120 | CSV |
| Marine On St Croix | 3,983 | CSV |
| Louisville Township | 3,943 | CSV |
| Nininger Township | 3,893 | CSV |
| Greenvale Township | 3,805 | CSV |
| Lexington | 3,789 | CSV |
| Waconia Township | 3,743 | CSV |
| Douglas Township | 3,739 | CSV |
| Randolph Township | 3,666 | CSV |
| Hollywood Township | 3,568 | CSV |
| Spring Park | 3,532 | CSV |
| Dellwood | 3,318 | CSV |
| Camden Township | 3,308 | CSV |
| Lilydale | 3,306 | CSV |
| Northfield | 3,242 | CSV |
| San Francisco Township | 3,137 | CSV |
| Jackson Township | 3,090 | CSV |
| Young America Township | 2,941 | CSV |
| Benton Township | 2,905 | CSV |
| Birchwood Village | 2,686 | CSV |
| Waterford Township | 2,679 | CSV |
| Blakeley Township | 2,540 | CSV |
| Willernie | 2,220 | CSV |
| Greenwood | 2,175 | CSV |
| Sciota Township | 2,145 | CSV |
| Saint Lawrence Township | 2,002 | CSV |
| Saint Marys Point | 1,957 | CSV |
| Hampton | 1,891 | CSV |
| Minnetonka Beach | 1,884 | CSV |
| New Germany | 1,779 | CSV |
| Loretto | 1,674 | CSV |
| Hanover | 1,625 | CSV |
| Randolph | 1,617 | CSV |
| Gem Lake | 1,567 | CSV |
| Sunfish Lake | 1,567 | CSV |
| Hamburg | 1,473 | CSV |
| Bethel | 1,453 | CSV |
| Woodland | 1,369 | CSV |
| Vermillion | 1,266 | CSV |
| Hancock Township | 1,251 | CSV |
| Pine Springs | 1,206 | CSV |
| Grey Cloud Island Township | 1,182 | CSV |
| Lakeland Shores | 1,068 | CSV |
| Medicine Lake | 1,040 | CSV |
| Mendota | 909 | CSV |
| White Bear Lake (Washington) | 690 | CSV |
| Miesville | 674 | CSV |
| Coates | 667 | CSV |
| No city on file (Dakota) | 661 | CSV |
| Fort Snelling | 613 | CSV |
| Hilltop | 600 | CSV |
| Rockford | 568 | CSV |
| Spring Lake Park (Ramsey) | 462 | CSV |
| New Trier | 391 | CSV |
| No city on file (Carver) | 362 | CSV |
| Blaine (Ramsey) | 216 | CSV |
| Chanhassen (Hennepin) | 126 | CSV |
| Hastings (Washington) | 90 | CSV |
| Empire Township | 80 | CSV |
| Landfall | 72 | CSV |
| Shorewood (Carver) | 3 | CSV |
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 |
|---|---|---|
parcel_id |
parcel id | default |
year |
year | default |
address |
address | default |
assessed |
assessed | default |
total_tax |
total tax | default |
use |
use (county's class) | default |
homestead |
homestead | default |
sales_this_year |
sales this year | default |
sold_this_year_price |
sold this year, price | default |
sold_this_year_date |
sold this year, date | optional |
sold_this_year_parcels_on_deed |
parcels sharing that price and date | default |
land_value |
land value | optional |
building_value |
building value | optional |
year_built |
year built | optional |
finished_sqft |
finished sq ft (county) | optional |
last_sale_date |
last sale on the file, date | optional |
last_sale_price |
last sale on the file, price | optional |
vintage |
file (year-end or current) | optional |
as_of |
as of | optional |
zip |
zip | optional |
city |
city | optional |
city_on_file |
city on file, where different | optional |
place |
file (city · county) | optional |
county |
county | optional |
lat |
latitude | optional |
lon |
longitude | optional |
Where it comes from
Metropolitan Council / MetroGIS Regional Parcel Dataset — Parcel_Points year-end 2021-2025 and Parcel_Points_Aggregate, each county's assessor file compiled
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 Metropolitan Council, county assessors. 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=parcel-panel&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=parcel-panel&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.