NYC DOB Approved Permits 2016-2026 - 953K Records, Cleaned & Tagged for AI Agents
About this data
953,354 NYC Department of Buildings approved permit records (2016-2026), cleaned, deduplicated, normalised, and rule-tagged for direct use by AI agents and analytics - no scraping or cleaning work required. WHAT MAKES THIS DIFFERENT Every other permit source gives you a raw Socrata dump or a PDF portal. This is transaction-level permit data with a normalised schema, structured address fields, parsed costs, and a full tag layer - analysis-ready on arrival. CONTENTS (953,354 rows) - permit_id, status (normalised enum + raw), application_type - date_lodged / date_decided (validated ISO-8601) - Structured address: house_number, street_name, borough, zip_code - estimated_cost (integer, USD) - Full job_description text - Tags: work_type, building_type, use_type, value_category - cost_flag (ok / suspect) - see QUALITY - Per-tag confidence + flattened `tags` list for filtering - Provenance: source_url, fetched_at, license_note on every row TAG COVERAGE (real, not aspirational) - work_type - 17 categories incl. construction, scaffolding, plumbing, mechanical, fencing, fire_protection, structural, solar, excavation, hvac, demolition - building_type - residential, commercial, industrial, mixed, institutional - use_type - housing, office, retail, infrastructure, hospitality, health, education - value_category - low <$100k, mid $100k-1M, high $1M-50M, suspect >= $50M QUALITY - Deduplicated on full-row fingerprint - Addresses parsed into components; boroughs normalised - Costs parsed to integers (decimal values preserved exactly, e.g. 200499.2 -> 200499) - cost_flag marks filer-reported costs >= $50M as 'suspect' (implausible for a permit, e.g. a construction fence filed at $125,000,000). These values are retained VERBATIM from the source - nothing is invented, clamped or dropped. Filter cost_flag = 'ok' for quantitative work. - PII scanned and redacted - Malformed rows quarantined to an errors file, not silently dropped FORMATS - Parquet (primary, analytics/agents) - CSV.gz and JSONL.gz also produced by the pipeline - 1,000-row free sample + schema.json + data dictionary + manifest with SHA-256 checksums SOURCE & LICENSE Public record from NYC Department of Buildings via NYC Open Data (data.cityofnewyork.us, dataset rbx6-tga4). NYC's Open Data Law makes this data open by default and permits commercial reuse. Attribution required. No personal data. Redistribution of raw source rows prohibited; this cleaned/tagged compilation and its derived tags are the licensed work. USE CASES Construction market intelligence, contractor and supplier lead-gen, property due diligence, renovation cost benchmarking, urban development analysis, insurance risk, real-estate agent tooling.
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 | string | |
| estimated_cost | number | |
| value_category | string | |
| 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 | string | |
| application_type_label | string | |
| tags | object | |
| tag_confidence | object | |
| tagged_at | string | |
| tag_version | string |
Sample Data
Download a free sample to inspect the data before purchasing.
$49
Fixed price
Have an API key? Use the REST API →
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 DOB Approved Permits 2016-" })
// Found: 8ffbc2d5-eb5e-498a-a3ba-7983f54bb108
buy_now({ dataset_id: "8ffbc2d5-eb5e-498a-a3ba-7983f54bb108" }) // uses your saved card# Authenticate with your API key:
curl https://api.databazaar.io/datasets/8ffbc2d5-eb5e-498a-a3ba-7983f54bb108 \
-H "Authorization: Bearer YOUR_API_KEY"
# Purchase:
curl -X POST https://api.databazaar.io/purchases \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"dataset_id": "8ffbc2d5-eb5e-498a-a3ba-7983f54bb108"}'