US Building Permits Tracker: Solar, Roof, ADU, Pool avatar

US Building Permits Tracker: Solar, Roof, ADU, Pool

Pricing

Pay per usage

Go to Apify Store
US Building Permits Tracker: Solar, Roof, ADU, Pool

US Building Permits Tracker: Solar, Roof, ADU, Pool

Daily building permits from official open data in NYC, Chicago, LA, San Francisco, Austin, Seattle and Detroit. Filter solar, roofing, ADU, pool, demolition, EV charger and battery permits, with a new-since-last-run mode for contractor leads.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Open Registry Data

Open Registry Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

22 days ago

Last modified

Categories

Share

US Building Permits Scraper: Solar, Roofing, Pool, ADU & Demolition Leads

Fresh building permits from 7 large US cities, all from official open data: New York City, Chicago, Los Angeles, San Francisco, Austin, Seattle and Detroit. Filter them with ready-made project categories (solar, roof / re-roof, swimming pool, ADU / accessory dwelling unit, demolition, EV charger, heat pump, battery storage) or your own keywords. You get one normalized schema with address, ZIP, work description, estimated cost, contractor (where published) and lat/long. Diff mode returns only permits issued since your last run, which works as a daily permit-lead feed.

Keywords: building permits scraper, building permit data, permit leads, solar permits, roofing leads, re-roof permits, pool permits, ADU permits, demolition permits, EV charger permits, contractor leads, construction leads, home improvement leads, NYC DOB permits, LADBS permits, Chicago permits, Austin permits, Seattle permits, San Francisco permits, Detroit permits.

Use cases

  • Solar, battery and EV-charger installers: see competitor installs and neighborhood adoption, and find homeowners who are adding a roof or ADU (good upsell timing).
  • Roofers, pool builders, ADU builders and demolition/haulage firms: get a daily list of permitted projects by ZIP or cost.
  • Building-material suppliers, insurers, lenders and home-service marketplaces: target new construction activity.
  • Market research: track solar or ADU permit counts by city over time (the SUMMARY record in the key-value store holds per-city counts).

Input examples

{ "categories": ["solar", "roof", "pool", "adu", "demolition"], "lookbackDays": 14 }
{ "mode": "diff", "jurisdictions": ["los-angeles"], "categories": ["adu"], "minEstimatedCost": 100000, "stateKey": "la-adu" }
{ "jurisdictions": ["austin", "seattle"], "keywords": ["generator"] }

The actor runs a broad server-side text search, then applies a precise word-boundary regex, so adu doesn't match "graduate". Each item lists its matchedCategories.

Output (one item per permit)

jurisdiction, city, permitId, issueDate, address, zip, permitType, description, estimatedCost, status, contractor, owner, parcelId, latitude, longitude, matchedCategories, source (+ raw when includeRaw is on; changeType, firstSeenAt in diff mode).

Example output (real records, Oct 2026 test run):

[
{
"jurisdiction": "chicago",
"city": "Chicago, IL",
"permitId": "B200514154",
"issueDate": "2026-10-06",
"address": "1725 W 99TH ST",
"zip": null,
"permitType": "PERMIT – EXPRESS PERMIT PROGRAM / Small-Scale Solar PV System",
"description": "INSTALL SOLAR PANELS ON ROOF OF PRINCIPAL BUILDING. ROOF TYPE: STEEP (>5:12). INVERTER OUTPUT: 9 KW. ARRAY OUTPUT: 9.66 KW. INCLUDES 16 KWH ENERGY STORAGE SYSTEM. LOCATION: ROOF OF THE PRINCIPAL HOUSE. ICC DISTRIBUTED GENERATION INSTALLER CERT. #26-0701.",
"estimatedCost": 22710.0,
"status": "ACTIVE",
"contractor": "(XRB) CONSTRUCTION SERVICES, LLC.",
"owner": null,
"parcelId": "2507404006",
"latitude": 41.7137915365028,
"longitude": -87.66636946458827,
"matchedCategories": [
"solar",
"roof"
]
},
{
"jurisdiction": "los-angeles",
"city": "Los Angeles, CA",
"permitId": "26016-90000-27236",
"issueDate": "2026-10-03",
"address": "3268 N BERRY DR",
"zip": "91604",
"permitType": "Bldg-Alter/Repair / 1 or 2 Family Dwelling",
"description": "Re-roof with Class A or B roof covering material weighing less than 6 pounds per sq. ft. over existing solid sheathing 27 Squares. Class A roof covering is required within Very High Fire Hazard Severity Zone (VHFHSZ). For residential roof replacement > 50% of the total roof area, apply Cool Roof Product labeled and certified by Cool Roof Rating Council (CRRC). Cool Roof may be required for non-residential buildings per Title 24, Part 6, Section 141.0(b)2B.",
"estimatedCost": 5400.0,
"status": "Issued",
"contractor": null,
"owner": null,
"parcelId": "2380016017",
"latitude": 34.13301,
"longitude": -118.3797,
"matchedCategories": [
"roof"
]
},
{
"jurisdiction": "austin",
"city": "Austin, TX",
"permitId": "2026-129364 EP",
"issueDate": "2026-10-06",
"address": "6409 SALCON CLIFF DR",
"zip": "78749",
"permitType": "Electrical Permit / Auxiliary Power",
"description": "Avery - 40-23269 - Install new 11.4kW rooftop solar system to existing residential only using backfed breaker only.",
"estimatedCost": null,
"status": "Active",
"contractor": "Power Home Remodeling",
"owner": null,
"parcelId": "0418400213",
"latitude": 30.20807812,
"longitude": -97.8828614,
"matchedCategories": [
"solar",
"roof"
]
}
]

Test run (14 days, solar+roof+pool+ADU+demolition, all 7 cities): 2,561 permits in about 25 s. That breaks down as NYC 681, Chicago 297, LA 1,255, SF 60, Austin 206, Seattle 35, Detroit 27.

"New since last run" (diff mode)

Set Mode = diff and schedule the actor daily or weekly. Each run looks at a rolling date window and returns only records it has never returned before, tagged changeType: "new" and firstSeenAt. Seen IDs are stored in a named key-value store (stateStoreName, separate stateKey per saved search), so the state survives between scheduled runs. On the first run you can output the whole window (flagged baselineRun: true) or store a silent baseline (firstRunBehaviour: baselineOnly). Pair it with an Apify integration (Slack, email, Google Sheets, Zapier, Make, webhook) to get a lead alert feed.

Sources

keyDataset
nycNYC DOB NOW: Build – Approved Permits (rbx6-tga4)
chicagoChicago Building Permits (ydr8-5enu)
los-angelesLADBS Building Permits Issued 2020–present (pi9x-tg5x)
san-franciscoSF DBI Building Permits (i98e-djp9)
austinAustin Issued Construction Permits (3syk-w9eu)
seattleSeattle SDCI Building Permits (76t5-zqzr)
detroitDetroit BSEED Building Permits (ArcGIS open data)

Public records used under each city's open-data terms, with a source block on every item. Not affiliated with or endorsed by any city. Contractor and owner names appear only where the city publishes them. Follow TCPA/CAN-SPAM rules for any outreach.

Row cap and failure handling

  • maxRowsPerSource (default 5000, 0 = unlimited): per-source cap on raw rows fetched, with automatic pagination. Sources that hit the cap are listed under cappedSources in the OUTPUT record and in the run's status message.
  • Failures are loud: if any source fails (HTTP error, ArcGIS error, timeout), the run is marked FAILED, the status message names the failed source(s) and error, and the OUTPUT key-value record contains ok: false and failedSources. Rows from a failed source are never returned partially.