US Building Permits Feed (37 Cities & Counties, One Schema) avatar

US Building Permits Feed (37 Cities & Counties, One Schema)

Pricing

$3.00 / 1,000 permits

Go to Apify Store
US Building Permits Feed (37 Cities & Counties, One Schema)

US Building Permits Feed (37 Cities & Counties, One Schema)

New building permits from official open-data portals in 37 US cities and counties (NYC, LA, Chicago, Philadelphia, San Antonio, DC, Boston, Denver, Miami and more) in one schema with trade tags (solar, roofing, HVAC, ADU...). Filter by trade, keyword, value. No API key.

Pricing

$3.00 / 1,000 permits

Rating

0.0

(0)

Developer

novadata

novadata

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Fresh building permits from official city and county open-data portals, all in one consistent schema, with trade tags so you can pull just the solar, roofing, HVAC, electrical, pool or ADU jobs you care about.

37 jurisdictions (33 cities and 4 counties), including New York City, Los Angeles, Chicago, Philadelphia, San Antonio, San Jose, Austin, Columbus, Fort Worth, Washington DC, Denver, Nashville, Boston, Louisville, Baltimore, Detroit, Miami and Miami-Dade County. Every source is read live from the government's own public data service (Socrata, ArcGIS REST or CARTO APIs, or the city's official CSV export for Boston, San Antonio and San Jose). No API key, no login, no scraping of web pages.

Coverage

City / countyKeyOfficial sourceContractor nameProject valuePermits found, last 30 days*
Chicago, ILchicagodata.cityofchicago.org (Socrata)Yes (by role)Yes2,915
New York City, NYnycdata.cityofnewyork.us (Socrata)Yes (permittee business)Yes5,000+
Los Angeles, CAlos_angelesdata.lacity.org (Socrata)NoYes4,575
San Francisco, CAsan_franciscodata.sfgov.org (Socrata)NoYes1,287
Austin, TXaustindata.austintexas.gov (Socrata)Yes, with business phoneSome4,402
Seattle, WAseattledata.seattle.gov (Socrata)SomeYes451
New Orleans, LAnew_orleansdata.nola.gov (Socrata)YesYes1,300
Baton Rouge, LAbaton_rougedata.brla.gov (Socrata)SomeSome650
Philadelphia, PAphiladelphiaopendataphilly.org (CARTO)YesNo3,652
Washington, DCwashington_dcopendata.dc.gov (ArcGIS REST)NoNo3,418
Columbus, OHcolumbusopendata.columbus.gov (ArcGIS REST)YesSome3,949
Fort Worth, TX †fort_worthdata.fortworthtexas.gov (ArcGIS REST)NoSome5,000+
Nashville, TNnashvilledata.nashville.gov (ArcGIS REST)SomeYes925
Denver, COdenveropendata-geospatialdenver.hub.arcgis.com (ArcGIS REST)YesYes458
Louisville, KYlouisvillelouisville-metro-opendata-lojic.hub.arcgis.com (ArcGIS REST)SomeYes1,175
Baltimore, MDbaltimoredata.baltimorecity.gov (ArcGIS REST)NoYes2,456
Detroit, MIdetroitdata.detroitmi.gov (ArcGIS REST)NoYes565
Miami, FLmiamidatahub-miamigis.opendata.arcgis.com (ArcGIS REST)YesYes2,584
Miami-Dade County, FLmiami_dade_countygis-mdc.opendata.arcgis.com (ArcGIS REST)YesYes5,000+
Minneapolis, MNminneapolisopendata.minneapolismn.gov (ArcGIS REST)YesSome2,799
Cleveland, OHclevelanddata.clevelandohio.gov (ArcGIS REST)YesYes1,360
Raleigh, NCraleighdata-ral.opendata.arcgis.com (ArcGIS REST)YesYes424
Tacoma, WAtacomawww.cityoftacoma.org (ArcGIS REST)NoSome742
Bellevue, WAbellevuedata.bellevuewa.gov (ArcGIS REST)YesNo823
Boulder, COboulderopen-data.bouldercolorado.gov (ArcGIS REST)YesYes756
Pierce County, WApierce_countygisdata-piercecowa.opendata.arcgis.com (ArcGIS REST)NoSome805
Cincinnati, OHcincinnatidata.cincinnati-oh.gov (Socrata)YesYes931
Norfolk, VAnorfolkdata.norfolk.gov (Socrata)NoYes976
Mesa, AZmesacitydata.mesaaz.gov (Socrata)SomeYes353
Cambridge, MAcambridgedata.cambridgema.gov (Socrata)NoNo1,129
Montgomery County, MDmontgomery_county_mddata.montgomerycountymd.gov (Socrata)NoYes603
Marin County, CAmarin_countydata.marincounty.gov (Socrata)YesYes404
Corona, CAcoronacorstat.coronaca.gov (Socrata)NoSome263
Everett, WAeverettdata.everettwa.gov (Socrata)YesYes651
San Jose, CA ‡san_josedata.sanjoseca.gov (official CSV export)YesSome2,264
San Antonio, TXsan_antoniodata.sanantonio.gov (official CSV export)NoNo5,000+
Boston, MAbostondata.boston.gov (official CSV export)NoYes263

* Rows the Actor read from each source for permits issued Sep 18 – Oct 18, 2026 (test on Oct 18, 2026), before your filters. Volumes change daily; this is a snapshot, not a guarantee. † Fort Worth doesn't publish an issue date, so the date window uses the filing date (appliedDate) and issueDate is empty. ‡ San Jose's official feed only covers the last 30 days.

"Contractor name": Yes = most records name a contractor business, Some = a minority do, No = the source doesn't publish one.

Who it's for

  • Contractors and installers (solar, roofing, HVAC, pools, windows) looking for neighbourhoods where work is happening, or for subcontracting partners
  • Building-material suppliers and distributors finding active contractors
  • Insurance, home-warranty and home-services marketers watching renovation activity
  • Real-estate investors and analysts tracking new construction, ADUs and demolitions
  • PropTech and data teams that want one schema instead of 37

Inputs

InputExampleNotes
cities["philadelphia", "columbus", "miami"]Keys from the table above. Empty = all 37
issuedWithinDays7Cities publish with a lag of 1 to 10 days
trades["solar", "roofing", "hvac"]Keyword-based tags (see below)
keywords["heat pump"]Matches permit type, work class and description
minValue50000Declared project value in USD
requireContractortrueDrops permits without a contractor name (and so cities that don't publish one)
includePersonNamesfalseOff by default (see Privacy)
dedupetrueOne row per permit number per city
maxPerCity, maxItems200, 1000maxItems also caps your cost

Example input: roofing, solar and HVAC permits from the last 2 weeks that name a contractor

{
"cities": ["philadelphia", "columbus", "cleveland", "miami", "raleigh"],
"issuedWithinDays": 14,
"trades": ["solar", "roofing", "hvac"],
"requireContractor": true,
"maxItems": 1000
}

Output

Every record has the same fields whatever the city. Fields a city doesn't publish are null. Example (real record from a test run):

{
"city": "Austin",
"state": "TX",
"permitNumber": "2026-101809 MP",
"permitType": "Mechanical Permit",
"workClass": "Remodel",
"status": "Active",
"description": "INTERIOR REMODEL-RECEPTION AREA AND EXPANDING INTO 3500SF OFFICE SPACE THE REST OF THE SPACE IS PAINT AND FLOORING",
"issueDate": "2026-10-16T00:00:00.000",
"appliedDate": "2026-07-29T00:00:00.000",
"estimatedValue": null,
"address": "5301 SOUTHWEST PKWY BLDG 1 UNIT 460",
"zip": "78735",
"latitude": 30.24357546,
"longitude": -97.84150985,
"contractorName": "Airco Mechanical",
"contractorTrade": "Mechanical Contractor",
"contractorPhone": "512XXXXXXX (redacted in this README)",
"contacts": [],
"ownerName": null,
"recordUrl": "https://abc.austintexas.gov/web/permit/public-search-other?t_detail=1&t_selected_folderrsn=13750684",
"tradeTags": [
"hvac",
"remodel"
],
"sourcePortal": "https://data.austintexas.gov/d/3syk-w9eu",
"sourceApi": "https://data.austintexas.gov/resource/3syk-w9eu.json",
"scrapedAt": "2026-10-17T12:48:07+00:00"
}

Trade tags

Tags come from keyword rules on the permit type, work class and description, such as "re-roof" → roofing or "heat pump" → hvac. They're useful but not perfect. A renovation that "removes the existing roof" gets tagged roofing, and cities with short permit types (Cambridge, Denver, Louisville) get fewer tags. Tags: solar, roofing, hvac, electrical, plumbing, ev_charger, generator, pool, new_construction, demolition, remodel, addition, adu, windows_doors, fence, sign, fire_protection, elevator, foundation.

Pricing

$3.00 per 1,000 permits, with no start fee. A weekly pull of 500 filtered leads costs $1.50.

Privacy and responsible use

  • By default the Actor returns business information only: permit details, address of the work, and contractor business names. Homeowner names and sole-proprietor names are left out unless you turn on includePersonNames.
  • For the 29 jurisdictions added in October 2026, owner names, applicant phone numbers and e-mail addresses are never downloaded or returned, even with includePersonNames on. Where a city's contractor/applicant column can hold either a company or a person (Nashville, Minneapolis, Louisville, Miami-Dade, Bellevue, Mesa, Marin County, Everett), names that don't look like a business are dropped unless includePersonNames is on.
  • Some cities list individual tradespeople as the contractor (common in New Orleans). Those names are part of the official permit record.
  • Permit records are public, but public doesn't mean any outreach is allowed. Phone and text marketing is regulated (TCPA, Do-Not-Call), and some states restrict commercial use of public records. You're responsible for how you use the data.
  • This Actor isn't affiliated with, endorsed by, or acting for any of these governments. Data is provided by each agency "as is", and the agencies don't warrant its accuracy, completeness or timeliness. Each record links to its source (sourcePortal, sourceApi). Check the source before relying on a record.

Limits

  • Coverage is the 37 jurisdictions above. More can be added one dataset at a time.
  • Los Angeles refreshes weekly and Baton Rouge with a lag of about a week. A 7-day window can return few or no rows for them, so use 14 to 30 days.
  • Washington DC is read from its 2025 and 2026 yearly layers, so windows reaching before Jan 1, 2025 return nothing older for DC.
  • NYC reissues the same permit number on renewals, and San Antonio repeats a permit number per sub-record. With dedupe on you get the latest row only.
  • Boston and San Antonio are read from their full official CSV exports (about 50 MB and 28 MB), which can add a minute or two to runs that include them. They're listed last, so runs that hit maxItems earlier skip them.
  • If one city's API is down, the run continues with the others, and the error is reported in the RUN_SUMMARY record.