Building Permits Feed: New US City Permits Daily avatar

Building Permits Feed: New US City Permits Daily

Pricing

from $0.90 / 1,000 permit returneds

Go to Apify Store
Building Permits Feed: New US City Permits Daily

Building Permits Feed: New US City Permits Daily

New building permits from 23 US city and county open-data feeds (NYC, LA, Chicago, SF, Austin, Seattle, DC and more) in one normalized schema, with a new-since-last-run mode and filters for trade (solar, roofing, HVAC, pool), valuation and contractor.

Pricing

from $0.90 / 1,000 permit returneds

Rating

0.0

(0)

Developer

Todd Handler

Todd Handler

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Building Permits Feed: new permits from 22 US cities and counties, daily, in one schema

Get every new building permit from the largest US cities that publish permits as open data (New York, Los Angeles, Chicago, San Francisco, Austin, Seattle, Washington DC, Miami-Dade and more) in one clean schema. Schedule it in New mode and each run returns only the permits issued since your last run.

  • 23 city and county feeds, one schema. Permit number, type, work description, trade tags, valuation, address, ZIP, coordinates, contractor, dates and a link to the permit on the city's own portal.
  • New since last run. Daily new permits without diffing anything yourself. Late-published permits are still caught.
  • Trade filters that work across cities. Solar, battery storage, EV chargers, roofing, HVAC, pools, ADUs, new construction, demolition and 15 more, detected from each city's own wording.
  • Valuation, contractor, ZIP and property-use filters. Only $50k+ jobs, only residential, only your service area, or only a competitor's permits.
  • Monitored sources. Every run checks each city's dataset for renames, removed columns and stale data, and reports it.
  • Cheap. $1.50 per 1,000 permits, less on higher Apify plans.

Who uses it

  • Contractors and home-service companies (solar, roofing, HVAC, pools, windows) finding homeowners who just pulled a permit
  • Suppliers and distributors selling to the contractors named on permits
  • Lenders, insurers and proptech watching renovation and new-construction activity by ZIP
  • Market researchers and journalists tracking construction trends
  • AI agents that need fresh, structured permit data (see "For AI agents")

Cities

CityPlatformPermits per week (approx.)ValuationContractorCoordinatesLicense
New York, NYSocrata2,900YesYesYesNYC Open Data Law (no use restrictions)
Los Angeles, CASocrata750YesNoYesCity of Los Angeles Open Data terms
Chicago, ILSocrata600YesYesYesCity of Chicago Data Terms of Use
San Francisco, CASocrata250YesNoYesODC PDDL (public domain)
Austin, TXSocrata1,000PartialYesYesPublic domain
Seattle, WASocrata120YesNoYesPublic domain
New Orleans, LASocrata260YesYesYesCC0
Cincinnati, OHSocrata140YesYesPartialPublic domain
Baton Rouge (parish), LASocrata120YesPartialYesPublic domain
Norfolk, VASocrata220YesNoYesCity of Norfolk Open Data terms
Montgomery County, MD (residential and commercial)Socrata130YesNoYesPublic domain
Mesa, AZSocrata60YesPartialYesCity of Mesa Open Data Terms of Use
Kansas City, MOSocrata100NoNoNoOpen Data KC Terms of Use
Marin County, CASocrata90YesYesYesODbL
Nashville, TNArcGIS220YesYesYesMetro Nashville Open Data policy
Columbus, OHArcGIS680PartialNoYesCC0
Fort Worth, TXArcGIS1,100PartialNoNoCity of Fort Worth Data Terms of Use
Baltimore, MDArcGIS530YesNoYesOpen Baltimore terms
Cleveland, OHArcGIS160YesYesYesODbL
Detroit, MIArcGIS150YesNoYesCity of Detroit Open Data terms
Miami-Dade County, FLArcGIS1,000YesYesNoMiami-Dade County open data
Washington, DCArcGIS300NoNoYesCC BY 4.0

Notes:

  • Fort Worth publishes filing dates, not issue dates, so its rows are new applications (date_basis: filed).
  • Kansas City refreshes weekly. Los Angeles, Cleveland and DC publish a few days behind. The default 7-day window absorbs the lag, so nothing is missed in New mode.
  • "Contractor" means the city publishes a contractor or permit-holder business name. Austin, Mesa and Miami-Dade also publish a contractor phone.

Want another city? Open an issue with the portal link. Cities on Socrata or ArcGIS are quick to add.

Quick start

  1. Pick your Cities (leave empty for all of them).
  2. Optional: pick Trades, set a Minimum valuation, or add ZIP codes.
  3. Click Start. Results appear in the Permits table and export as JSON, CSV or Excel.
  1. Set Mode to New since last run and keep Lookback window at 7 days.
  2. Create a daily schedule under Schedules in Apify Console.
  3. Send results to Google Sheets, Slack, email, a CRM, a webhook, Make or n8n with Apify integrations.

The first run returns every matching permit in the window (turn off Return the window on the first New-mode run to start silent). After that you get only permits you have not received before, marked change_type: new. Each run rechecks the whole window, so a permit the city publishes three days late still reaches you once.

The saved state is keyed to your filters, so changing a filter starts a fresh baseline. Set State key to give it a fixed name.

Filters

FilterWhat it does
Trades (any)solar, battery_storage, ev_charger, generator, roofing, hvac, pool, electrical, plumbing, gas, new_construction, addition, remodel, adu, demolition, fence, sign, fire_protection, windows_doors, siding, foundation, deck_patio, elevator, grading_site, mechanical
Permit categories (any)building, electrical, plumbing, mechanical, demolition, fire, sign, elevator, grading, other
Permit type containsWords matched against the city's own type, subtype and work class
Keywords and exclude keywordsWords matched against the description and type, for example tesla or generator
Minimum and maximum valuationDeclared job value in USD. Permits with no value are dropped when either is set
Property useresidential or commercial, where the city publishes it
Contractor or applicant containsTrack one company's permits, or a competitor's
Only permits that name a contractorDrop permits with no contractor
ZIP codesExact ZIPs or prefixes, for example 787 for central Austin
Max permits per citySnapshot mode only, keeps the newest

Trade tags come from the permit type and the work description together, so a re-roof with a solar install gets both roofing and solar. Where a city has its own flags (Los Angeles solar and EV, San Francisco re-roof and ADU), those are used too.

Output

One row per permit. A real example:

{
"permit_id": "cleveland:BRE26-043897",
"source_id": "cleveland",
"city": "Cleveland",
"state": "OH",
"permit_number": "BRE26-043897",
"permit_type": "Construction Project",
"permit_subtype": "Building Permits",
"work_class": "Residential Electrical",
"description": "5.785 kW Roof-Mount Solar System Installation. BUILDING PERMIT NO. BRB26-040076",
"category": "electrical",
"trade_tags": ["solar", "electrical"],
"property_use": "residential",
"status": "Inspection Pending",
"applied_date": "2026-10-09",
"issued_date": "2026-10-15",
"date_basis": "issued",
"valuation": 4698.0,
"square_feet": null,
"housing_units": null,
"address": "2501 SCRANTON RD, CLEVELAND, OH, 44113",
"zip": "44113",
"latitude": 41.478103,
"longitude": -81.694522,
"parcel_id": "00411011",
"contractor_name": "YELLOWLITE, INC",
"contractor_license": "ELECT20-001512",
"contractor_phone": null,
"applicant_name": null,
"record_url": "https://aca-prod.accela.com/COC/Cap/CapDetail.aspx?Module=BuildingHousing&...",
"source_url": "https://data.clevelandohio.gov/datasets/c08ddeaf2d1e41679a03103ff4e9fe17",
"license": "ODbL 1.0 (attribution, share-alike)",
"change_type": null,
"fetched_at": "2026-10-22T01:10:33Z",
"raw": null
}

Field notes

  • Fields a city does not publish are null. Valuations of $0 or $1 are placeholders in most cities and come through as null.
  • permit_id is stable across runs: the city ID plus the permit number (New York adds the filing sequence, so a renewal is a new row).
  • issued_date is the city's local date. date_basis is filed for Fort Worth.
  • record_url links to the permit on the city's own permit system, where the city provides one (Austin, Seattle, Cincinnati, Columbus, Cleveland).
  • source_url and license name the dataset each row came from. Keep them if you republish the data. Some datasets (Cleveland and Marin County, ODbL; DC, CC BY) ask for attribution.
  • Turn on Include the original record to get every field the city publishes under raw.
  • Owner names are not in the normalized fields. Where a city publishes them, they are in raw.

Source health

Each run writes a SUMMARY record to the key-value store with one entry per city:

StatusMeaningRows delivered?
OKDataset found, columns as expected, data is freshYes
RENAMEDThe dataset title changedYes
SCHEMA_CHANGEDA column the mapping reads is gone; those output fields are emptyYes
STALEThe newest record is older than expected for that cityYes, if any
MISSINGThe dataset ID no longer resolves (moved or retired)No
BROKENThe date or permit-number column is goneNo
ERRORThe portal failed after retriesNo

The run status message lists any city that is not OK. One city failing never stops the others. The maintainer runs the same check on a schedule and updates a city's mapping when a portal changes.

Pricing

Pay per event. You only pay for what the run delivers.

EventPrice (Free and Starter plans)
Permit returned$0.0015 ($1.50 per 1,000)
City checked (one per city per run)$0.0005

Higher Apify plans get lower per-permit prices. A daily New-mode run over 5 cities filtered to roofing costs about $0.0025 for the checks plus about 4 cents for the permits, roughly $1.50 a month. Set a maximum cost per run in the run options and the Actor stops cleanly at that limit. In New mode, a city cut off by the limit is not marked as delivered, so the next run sends it.

For AI agents

  • Input: cities (array of city IDs from the table, empty for all), mode (snapshot or new), daysBack, and the optional filters above (trades, minValuation, zipCodes, contractors, propertyUse).
  • Output: one row per permit; the SUMMARY key-value record holds per-city health.
  • Cost: $0.0015 per permit plus $0.0005 per city. Use trades, zipCodes or maxPermitsPerCity to keep runs small.
  • City IDs: new-york-city, los-angeles, chicago, san-francisco, austin, seattle, new-orleans, cincinnati, baton-rouge, norfolk, montgomery-county-md-residential, montgomery-county-md-commercial, mesa, kansas-city, marin-county, nashville, columbus, fort-worth, baltimore, cleveland, detroit, miami-dade-county, washington-dc.

Limits and good practice

  • The Actor reads public open-data APIs (Socrata and ArcGIS REST) that cities provide for reuse. It does not log in or scrape permit-system web pages.
  • Requests are rate-limited per portal and retried on temporary errors.
  • Each city provides its data as is and makes no warranty about it. This Actor is not affiliated with or endorsed by any city.
  • Data is as accurate as each city's publication. Trade tags are keyword based and occasionally miss or over-tag unusual wording.
  • Contractor phones are business lines as the city publishes them. Follow the rules that apply to your outreach (for example, do-not-call rules for phone marketing).

Data sources and required notices

All permit data comes from the cities' and counties' own open-data portals. Each row's source_url and license name the dataset it came from. Data from the City of Mesa, Arizona is credited to the City of Mesa. Each city provides its data as is, makes no warranty about it, and has not endorsed this Actor.

The following notices are required by the cities' terms of use:

  • City of Chicago: "This site provides applications using data that has been modified for use from its original source, 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 at this site. The data provided at this site is subject to change at any time. It is understood that the data provided at this site is being used at one's own risk."
  • City of Kansas City: "This site provides applications using data that has been modified for use from its original source, www.data.kcmo.gov, the official open data website of the City of Kansas City. The City of Kansas City makes no claims as to the content, accuracy, timeliness, or completeness of any of the data provided at this site. The data provided at this site is subject to change at any time. It is understood that the data provided at this site is being used at one's own risk."
  • City of Fort Worth: the City of Fort Worth does not warrant the data in any way and makes each of the disclaimers in its Data Disclaimer and Terms of Use.

Support

Open an issue on the Actor page. Issues are answered within one business day. If the Actor saves you time, a rating helps other people find it.