NYC Building Permits 1989-2026 - 3.2M Records, Cleaned & Normalised (Free)
About this data
3,227,338 NYC Department of Buildings permit issuance records spanning 1989-2026 - the full historical record for the largest US construction market, cleaned, deduplicated, and normalised. Free. This is the deepest permit history available for NYC in a single analysis-ready file: 37 years of filings across all five boroughs, deduplicated and structured. CONTENTS (3,227,338 rows) - permit_id, status (issued / reissued / in_progress / revoked), job_type - date_lodged / date_decided (validated ISO-8601) - Structured address: house_number, street_name, borough, zip_code - work_type tag (alteration, new_build, signage, demolition) + application_type_label for DOB codes (A1/A2/A3/NB/DM/SG) - Provenance on every row BOROUGH COVERAGE Manhattan 1.31M - Brooklyn 758K - Queens 674K - Bronx 279K - Staten Island 204K FORMATS Parquet - CSV.gz - JSONL.gz - 1,000-row sample - schema.json - data dictionary - manifest with SHA-256 checksums HONEST LIMITATION The NYC permit-issuance dataset does not carry cost or description fields. Tags therefore cover work_type and application type only - building_type, use_type and value_category are not derivable from this source. If you need costs and descriptions, see our companion listing for DOB NOW Approved Permits. Note on freshness: this dataset is a stable historical record and changes slowly (two full weekly refreshes added ~300 unique rows). SOURCE & LICENSE Public record from NYC Department of Buildings via NYC Open Data (data.cityofnewyork.us, dataset ipu4-2q9a). Open by default under NYC's Open Data Law; commercial reuse permitted. Attribution required. No personal data.
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 | string | |
| postcode | string | |
| zoning | object | |
| lot_plan | object | |
| description | object | |
| estimated_cost | object | |
| value_category | object | |
| status_history | object | |
| documents | object | |
| decoded_category | string | |
| decoded_confidence | number | |
| fetched_at | string | |
| license_note | string | |
| status_raw | string | |
| house_number | string | |
| street_name | string | |
| borough | string | |
| zip_code | string | |
| clean_version | string | |
| cleaned_at | string | |
| work_type | string | |
| building_type | object | |
| use_type | object | |
| cost_flag | object | |
| 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: "NYC Building Permits 1989-2026" })
// Found: 4426607e-0df6-46d7-a192-ab17dcbaee8e
get_download_url({ dataset_id: "4426607e-0df6-46d7-a192-ab17dcbaee8e" }) // free — no API key needed# Free dataset — no API key required: curl https://api.databazaar.io/datasets/4426607e-0df6-46d7-a192-ab17dcbaee8e/download-url