City Building Permits Feed (new since last run) avatar

City Building Permits Feed (new since last run)

Pricing

from $3.00 / 1,000 permit records

Go to Apify Store
City Building Permits Feed (new since last run)

City Building Permits Feed (new since last run)

New building permits from official open-data portals of Chicago, NYC, Los Angeles, Seattle, San Francisco and Denver, in one normalized schema. Schedule it daily and get only permits you haven't seen.

Pricing

from $3.00 / 1,000 permit records

Rating

0.0

(0)

Developer

Luke Miller

Luke Miller

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Security

Limited permissions

Share

City Building Permits Feed: New Permits Since Your Last Run

Building permits from the official open-data portals of Chicago, New York City, Los Angeles, Seattle, San Francisco and Denver, in one normalized schema. Schedule it daily and each run delivers only the permits you have not seen yet.

What you get

  • One schema across six cities. Permit ID, type, project kind, status, description, address, ZIP (where published), neighborhood, filed and issued dates, valuation in USD, housing units (where published), latitude and longitude, and a link back to the source dataset.
  • New since last run. The Actor remembers what it delivered for each State key, so a daily schedule only pays for new permits. A short overlap re-scan catches permits that cities post late.
  • Lag-aware. Cities refresh on their own schedules (Los Angeles runs about a week behind). Every run reports the newest record date each city has posted (dataThrough), and the lookback window is measured from that date, so slow portals still return data.
  • Filters. City, project kind (new-construction, alteration, demolition, other), minimum valuation, keywords (solar, roof, pool, ADU, ...) and ZIP codes.
  • Business names only. Contractor names are included only where the city publishes them and they look like a business (Denver, NYC, Chicago). Owner and applicant personal names and phone numbers are never copied into the output (free-text descriptions are passed through as the city published them).

Example uses

  • Roofing, solar, HVAC and window sales teams watching new permits in their ZIP codes.
  • Suppliers and subcontractors tracking new-construction permits and big-valuation jobs.
  • Market analysts counting new permits and demolitions by city and week.
  • AI agents asking "what new-construction permits over $1M were issued in Denver this week?" through the Apify API or MCP server.

Quick start

Run with the defaults to see a small sample (about 50 permits). For a daily feed, create a Schedule with mode: sinceLastRun, your cities and filters, higher caps, and a unique stateKey.

Input (main fields)

FieldMeaning
modewindow (default: everything in the last N days of data) or sinceLastRun (only permits not delivered before; set this for daily schedules)
lookbackDaysFirst-run or window length, default 3
citiesany of chicago, nyc, los-angeles, seattle, san-francisco, denver
projectKindsnew-construction, alteration, demolition, other
minValuationUsd, keywords, zipCodesextra filters
maxItems, maxItemsPerCitycaps per run (also cap your spend). Defaults are small (50 / 10) so a quick test run is cheap; raise them for production
includeRawadds the original city record; this can contain personal names, so leave it off unless you need it
socrataAppTokenoptional free token from the portals, to avoid throttling on shared IPs
stateKeyone key per saved search; each keeps its own history

Output (example)

See the Output tab or sample-output.json. Each record looks like:

{
"city": "Seattle", "state": "WA", "source": "seattle-building-permits",
"permitId": "7169560-CN", "permitType": "Addition/Alteration", "permitSubtype": "Multifamily",
"projectKind": "alteration", "status": "Issued",
"description": "Construct tenant improvements to unit 4 in a multi-family building ...",
"address": "4025 MIDVALE AVE N", "zip": "98103",
"filedDate": "2026-10-28", "issuedDate": "2026-10-28", "valuationUsd": 30000,
"latitude": 47.656, "longitude": -122.344
}

Every run also writes a summary to the OUTPUT record: per city counts, dataThrough, and any source errors. One city failing never blocks the others.

Data sources and licenses

CityDatasetTerms
ChicagoBuilding Permits (data.cityofchicago.org)City of Chicago Data Terms of Use
New York CityDOB NOW: Build, Approved Permits (data.cityofnewyork.us)NYC Open Data Terms of Use
Los AngelesBuilding and Safety, Permits Issued from 2020 to Present (data.lacity.org)City of Los Angeles open data
SeattleBuilding Permits (data.seattle.gov)Public Domain per the portal
San FranciscoBuilding Permits (data.sf.gov)Open Data Commons PDDL 1.0
DenverResidential, Commercial and Demolition Construction Permits (Denver Open Data Catalog)Denver open license

Disclaimer (required by the City of Chicago terms for derivative applications): This Actor provides data that has been modified for use from its original sources, including www.cityofchicago.org, the official website of the City of Chicago. The City of Chicago makes no claims as to the content, accuracy, timeliness, or completeness of any of the data provided here. The data is subject to change at any time and is used at your own risk.

This Actor is not affiliated with or endorsed by any city. Permit data is as published by each city; valuations are self-reported on applications and can be wrong. The projectKind field is a best-effort label from the permit type, not an official classification.

Good-citizen behavior

Requests are spaced at least 0.4 seconds apart per host, use a descriptive User-Agent, back off on errors and rate limits, and only the changed window is requested.

Pricing

Pay per event (Apify takes care of billing; you only pay for what is delivered):

EventPriceCharged
apify-actor-start$0.005once per run
permit-record$0.003per building permit delivered

A default test run (50 permits) costs about $0.155. A daily sinceLastRun schedule for one city and a few ZIP codes (~20 new permits/day) costs about $0.065/day. maxItems and Apify's max cost per run cap your spend; the Actor stops delivering when your budget is reached, so you are never charged for more than you set. No separate platform-usage charges: compute is included in the event prices.

FAQ

Which cities are covered? Chicago, New York City, Los Angeles, Seattle, San Francisco and Denver, from each city's official open-data portal. More cities may be added; tell us which ones you need in the Issues tab.

Why are some cities a few days behind? Each city refreshes its portal on its own schedule. The run summary (OUTPUT) shows the newest date each city has posted (dataThrough).

Are homeowner names included? No. Only business contractor names, where the city publishes them. No owner or applicant personal names or phone numbers.

How do I get only new permits every day? Create a Schedule with mode: sinceLastRun, your filters and a unique stateKey.