Chicago Building Permits 2000-2026 - 848,796 Records, Cleaned & Tagged (Free)
About this data
848,796 City of Chicago building permit records (2000-2026), cleaned, deduplicated, and rule-tagged for direct use by AI agents and analytics. Free. WHAT THIS IS Chicago's public permit history, normalised to an analysis-ready schema with parsed costs, full addresses, and a tag layer. No scraping or cleaning work required. WHAT'S IN EVERY ROW - permit_id, status (normalised + raw), application_type (permit type) - date_lodged / date_decided (validated ISO-8601) - property_address (full street address string, 99% populated) - suburb: Chicago community area (1-77) - estimated_cost (integer USD) - populated for 810,712 of 848,796 rows (95.5%) - Full work_description text - Tags: work_type, building_type, use_type, value_category - cost_flag: 'ok' vs 'suspect' (filer-reported values >= $50M, retained but flagged) - Per-tag confidence + a flattened `tags` list for filtering - Provenance: source_url, fetched_at, license_note on every row TAG COVERAGE - work_type - alteration 375,353; signage 55,159; new_build 31,972; elevator 22,359; demolition 21,961; scaffolding 8,965; porch 3,096 (+ unclassified) - value_category - low <$100k: 709,151 | mid $100k-1M: 84,698 | high >=$1M: 16,448 | suspect: 414 - building_type - residential 63,246; commercial 47,497; institutional 8,637; industrial 3,419; mixed 1,353 - use_type - housing 54,797; office 26,958; retail 12,985; hospitality 7,557; education 5,646; infrastructure 4,205; health 3,314 HONEST LIMITATIONS - Addresses are delivered as the complete `property_address` string; Chicago's house-number/street components are not split into separate columns. - `suburb` is the Chicago community-area NUMBER (1-77), not a name. - building_type and use_type are keyword-derived from the work description; many rows do not state enough to classify (left null, not guessed). - Costs are filer-reported and range from negative values to a 9,999,999,999 placeholder. cost_flag='suspect' marks values >= $50M; filter cost_flag='ok' for quantitative work. - 349 rows with no filing date were quarantined, not silently dropped. FORMAT Parquet, 72 MB, 28 columns. Schema and data dictionary included. SOURCE & LICENSE Public record from the City of Chicago via Chicago Open Data (data.cityofchicago.org, dataset ydr8-5enu). Attribution required. No personal data; PII (phones, emails, SSN) redacted at clean time. Redistribution of raw source rows prohibited; this cleaned/tagged compilation and its derived tags are the licensed work.
Schema
| Name | Type | Description |
|---|---|---|
| permit_id | string | |
| jurisdiction | string | |
| source_url | string | |
| status | string | |
| application_type | string | |
| date_lodged | string | |
| date_decided | string | |
| property_address | string | |
| suburb | object | |
| description | string | |
| estimated_cost | number | |
| value_category | string | |
| decoded_category | string | |
| decoded_confidence | number | |
| fetched_at | string | |
| license_note | string | |
| status_raw | string | |
| clean_version | string | |
| cleaned_at | string | |
| work_type | string | |
| building_type | string | |
| use_type | string | |
| cost_flag | string | |
| application_type_label | string | |
| tags | object | |
| tag_confidence | object | |
| tagged_at | string | |
| tag_version | string |
Sample Data
Preview a sample of the data before downloading.
Free
Open dataset
Agent? No sign-up needed →
For AI Agents
# 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: "Chicago Building Permits 2000-" })
// Found: cb609c91-3fb6-4048-b10d-5bc7395f07ea
get_download_url({ dataset_id: "cb609c91-3fb6-4048-b10d-5bc7395f07ea" }) // free — no API key needed# Free dataset — no API key required: curl https://api.databazaar.io/datasets/cb609c91-3fb6-4048-b10d-5bc7395f07ea/download-url