Building Permit Lead Feed - 11 US Cities, Daily avatar

Building Permit Lead Feed - 11 US Cities, Daily

Pricing

$5.00 / 1,000 results

Go to Apify Store
Building Permit Lead Feed - 11 US Cities, Daily

Building Permit Lead Feed - 11 US Cities, Daily

New building permits from 11 official US city/county open-data portals (NYC, LA, Chicago, SF, Austin, Seattle and more) in one clean schema. Filter by work type, value and contractor; monitor mode returns only new permits.

Pricing

$5.00 / 1,000 results

Rating

0.0

(0)

Developer

Jonathan Boyd

Jonathan Boyd

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Share

Building Permit Lead Feed: 11 US Cities, One Clean Schema

Get newly issued building permits from 11 official city and county open-data portals in one normalized dataset. That includes NYC, Los Angeles, Chicago, San Francisco, Austin, Seattle and more. Each record carries the job value, the address, the coordinates and the contractor business. Schedule it daily with Monitor mode and you only get permits you haven't seen before. It works as a lead feed.

Who uses this

  • Contractors and subcontractors (roofing, solar, HVAC, electrical, pools) find active projects and the GCs running them.
  • Building-material suppliers and equipment rental reach contractors the week a big job is permitted.
  • Home services and insurance spot remodels, additions and new construction in their territories.
  • Investors and analysts track construction activity, valuations and hot ZIP codes.

Coverage

All data comes from official government open-data portals (Socrata SODA APIs). No login, no scraping of private sites.

Source IDJurisdictionOfficial dataset
chicago_ilCity of Chicago, ILdata.cityofchicago.org
nyc_nyNew York City, NYdata.cityofnewyork.us
los_angeles_caCity of Los Angeles, CAdata.lacity.org
san_francisco_caCity and County of San Francisco, CAdata.sfgov.org
austin_txCity of Austin, TXdata.austintexas.gov
seattle_waCity of Seattle, WAdata.seattle.gov
cincinnati_ohCity of Cincinnati, OHdata.cincinnati-oh.gov
montgomery_county_mdMontgomery County, MD, MDdata.montgomerycountymd.gov
new_orleans_laCity of New Orleans, LAdata.nola.gov
cambridge_maCity of Cambridge, MAdata.cambridgema.gov
baton_rouge_laEast Baton Rouge Parish, LAdata.brla.gov

Every record links back to its dataset_url, and to the city's permit page (record_url) where the city provides one.

Input

FieldWhat it does
sourcesWhich cities to query. Leave empty to query all of them.
daysBack / dateFrom / dateToThe issue-date window. Defaults to the last 7 days. Accepts YYYY-MM-DD or forms like 30 days.
keywordsMatches against the description, permit type, work class and contractor (e.g. roof, solar, pool, demolition).
propertyClassany, residential or commercial.
minValuation / maxValuationFilter by declared job value in USD.
onlyWithContractorKeep only permits that name a contractor business.
maxResults / maxResultsPerSourceOverall and per-city caps. Results are sorted newest first.
monitorMode / monitorKeyReturn only records not returned before for the same filters (or the same key).

Example: solar and roofing jobs over $20k in Austin, Seattle and SF, as a daily feed:

{"sources": ["austin_tx", "seattle_wa", "san_francisco_ca"], "daysBack": 7, "keywords": ["solar", "roof"],
"minValuation": 20000, "monitorMode": true, "maxResults": 500}

Output

Every city's records come out in one flat schema:

{
"record_id": "2776a974158b024f",
"source_id": "chicago_il",
"source_name": "Chicago Building Permits",
"jurisdiction": "City of Chicago",
"state": "IL",
"permit_number": "101074874",
"permit_type": "PERMIT - RENOVATION/ALTERATION",
"work_class": null,
"property_class": null,
"status": "ACTIVE",
"description": "SPR 2019 CBRC: NEW 2ND FLOOR FRAME ADDITION IN EXISTING 1.5 BRICK BUILDING WITH BASEMENT. MECHANICAL, ELECTRICAL & PLUMBING PER PLANS.",
"date": "2026-10-30",
"issue_date": "2026-10-30",
"applied_date": "2025-11-11",
"valuation_usd": 61750.0,
"address": "1511 N MONITOR AVE",
"city": "Chicago",
"zip": null,
"latitude": 41.9078598250023,
"longitude": -87.77177140054073,
"contractor_name": "BLUE LINE ELECTRICAL CONTRACTO",
"contractor_trade": null,
"contractor_phone": null,
"owner_business_name": null,
"housing_units": null,
"record_url": null,
"dataset_url": "https://data.cityofchicago.org/d/ydr8-5enu",
"scraped_at": "2026-10-31T22:10:42+00:00"
}

Fields that a city doesn't publish are null. Coverage differs by city: Seattle rarely lists contractors, NYC rarely gives a residential/commercial class, and several cities don't publish ZIP codes.

Each run also writes a RUN_SUMMARY record to the key-value store. It shows each source's status (ok/failed), its error, timing and how many records it contributed, so a portal outage is visible and never silently drops data.

Pricing

Pay per result: $0.004 per permit ($4 per 1,000). The run stops cleanly at your max-charge limit, and you are never charged beyond it. In monitor mode you only pay for new permits.

For comparison, as of Oct 31, 2026 other building-permit actors on Apify charge between $0.002 and $0.03 per record, and Shovels' paid plans start at $599/month for 25,000 records.

Reliability

  • Retries with exponential backoff, honours Retry-After, and has timeouts on every request.
  • Sources are isolated: if one city's portal is down, the others still deliver, and the failure is reported in RUN_SUMMARY and the status message.
  • Records are deduplicated across pages and runs (a stable record_id per city and permit number).
  • Only portals with fresh data are included. Stale datasets were removed during development.

Privacy

Only business names are output for contractors and owners. Names that look like an individual's are dropped, and a contractor phone is only output when a contractor business is named. Applicant names and homeowners are never output.

FAQ

How fresh is the data? It is as fresh as each city's portal. Most update daily, with a lag of 1–7 days (Los Angeles typically lags about a week). Can I get historical data? Yes. Set dateFrom, which can go back up to 10 years where the city's dataset does. Why are some valuations null? Some permits (e.g. electrical or plumbing) don't declare a job value. If you set minValuation, permits without a value are excluded. Do I need an API key? No. For very large pulls you can add a free Socrata app token to raise the rate limits.

Limitations

  • Coverage is limited to the 11 jurisdictions above; more will be added as reliable official feeds are verified.
  • Field completeness varies by city (see Output).
  • property_class is inferred from each city's permit class, or from the description when no class is given, and may be null.