geographicreal-estateparcelspublic-recordsminneapolissaint-paulminnesota

Minneapolis + Saint Paul Residential Building Permits since 2020

Updated Oct 20, 2026

$49

Fixed price

Sample structure: 87.2 / 100
0 download links issued
Seller: Brick and Mortar
Sign up to purchase

Already have an account? Log in

Have an API key? Use the REST API →

Category
Geographic
Records
397,338 rows
Format
CSV
Update Frequency
Not documented
Collection Method
uploaded
PII
address, contractor_address
File Size
~90.15 MB
Download links issued
0

Source, license and coverage

Supplier documentation. These claims are separate from the automated sample score. A listing edit date is not a data freshness date.

License
Brick & Mortar data licence: internal commercial use, no redistribution
Source / creator
Brick & Mortar, compiled from Minnesota county, city and federal public records
Collection method
Public APIs and bulk files of each office of record, joined on the county parcel id
Coverage start
Not applicable
Coverage end
Not applicable
Data last updated
2026-10-20
Update schedule
snapshot

Source documentation ↗

License terms ↗

Sample structure score: 87.2 / 100

This automated check describes the inspected sample, not factual accuracy, legal rights, representativeness, or the quality of the entire dataset. It is not a customer rating.

Assessed 10 sample records (CSV) on 2026-10-20. All records in the provided sample were checked.

CheckPointsEvidence
Populated cells37.7 / 50181 of 240 top-level cells contain a value. Null, absent and blank values count as missing; zero and false count as populated.
Consistent value types29.5 / 30178 of 181 populated cells match their column's most common observed type. Types are inferred, not checked against real-world truth.
Consistent record shape20 / 2010 of 10 records have the expected fields. CSV/TSV use the header width; JSON uses the union of observed keys.
Field-level findings and improvements

Check missing cells and mixed types below. Document intentional missing values or mixed types in your field descriptions. Do not fill legitimate unknowns with invented values just to increase this score.

FieldMissing cellsMost common typeOther populated types
city0 / 10string0 / 10
county0 / 10string0 / 10
permit_no0 / 10string0 / 10
issued0 / 10string0 / 10
completed0 / 10string0 / 10
trade0 / 10string0 / 10
kind0 / 10string0 / 10
work0 / 10string0 / 10
occupancy3 / 10string0 / 7
status0 / 10string0 / 10
fees_usd3 / 10number0 / 7
parcel_id0 / 10number3 / 10
address1 / 10string0 / 9
use1 / 10string0 / 9
year_built1 / 10number0 / 9
lat0 / 10number0 / 10
lon0 / 10number0 / 10
rows_per_permit0 / 10number0 / 10
units_added10 / 10unknown0 / 0
units_removed10 / 10unknown0 / 0
sub_type7 / 10string0 / 3
value_usd9 / 10number0 / 1
contractor7 / 10string0 / 3
contractor_address7 / 10string0 / 3
How the score is calculated, its limitations, and how to correct an assessment →

About this data

397,338 building permit rows since 2020 from the Minneapolis and Saint Paul permit registers: work type, valuation, contractor, dates, status, lat/lon, joined to the county parcel id. Applicant names removed for this marketplace. One CSV file; Parquet and full schema on request.

Retrieve with your agent or Python

Create an account and configure DATABAZAAR_API_KEY. This example retrieves free or already purchased data; it never makes a purchase. For a multi-file dataset, choose a file index from the manifest.

Download the Python example
python3 retrieve-dataset.py 12ea29ac-7af6-411d-a5a3-c0d64df2367f --output dataset.bin

Schema

NameTypeDescription
citystring
countystring
permit_nostring
issuedstring
completedstring
tradestring
kindstring
workstring
occupancystring
statusstring
fees_usdnumber
parcel_idnumber
addressstring
usestring
year_builtnumber
latnumber
lonnumber
rows_per_permitnumber
units_addedunknown
units_removedunknown
sub_typestring
value_usdnumber
contractorstring
contractor_addressstring

Sample Data

Download a free sample to inspect the data before purchasing.

Public sample only. Sign in to retrieve the full dataset, including free datasets.

For AI Agents

Via MCP Server
# 1. Add to your agent's MCP config (claude_desktop_config.json or similar):
{
  "mcpServers": {
    "databazaar": { "command": "npx", "args": ["databazaar-mcp"] }
  }
}

# 2. Your agent can then call:
search_datasets({ query: "Minneapolis + Saint Paul Resid" })
// Found: 12ea29ac-7af6-411d-a5a3-c0d64df2367f
buy_now({ dataset_id: "12ea29ac-7af6-411d-a5a3-c0d64df2367f" })  // uses your saved card
Via REST API
# Authenticate with your API key:
curl https://api.databazaar.io/datasets/12ea29ac-7af6-411d-a5a3-c0d64df2367f \
  -H "Authorization: Bearer YOUR_API_KEY"

# Purchase:
curl -X POST https://api.databazaar.io/datasets/12ea29ac-7af6-411d-a5a3-c0d64df2367f/buy \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"dataset_id": "12ea29ac-7af6-411d-a5a3-c0d64df2367f"}'