Building Permits Scraper: Construction Leads from 11 US Cities avatar

Building Permits Scraper: Construction Leads from 11 US Cities

Pricing

from $2.00 / 1,000 permit records

Go to Apify Store
Building Permits Scraper: Construction Leads from 11 US Cities

Building Permits Scraper: Construction Leads from 11 US Cities

Newly issued building permits from 11 US city and county open-data portals: address, type, description, valuation, dates and contractor. Filter by city, keyword (solar, roof, pool, ADU) and value.

Pricing

from $2.00 / 1,000 permit records

Rating

0.0

(0)

Developer

Kamal Katul

Kamal Katul

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Security

Limited permissions

Share

Building Permits Scraper: New Construction Leads from 11 US Cities

Get newly issued building permits from official city open-data portals in one clean, unified format: permit number, type, work description, address, ZIP, map coordinates, declared project value, square footage, housing units and the contractor's business name (plus phone, email and license where the city publishes them).

Instead of learning 11 different portals, column names and date formats, you pick the cities, a date window and your filters, and get one spreadsheet-ready dataset.

Use cases

  • Roofers, solar installers, residential HVAC, pool, window and remodeling companies: find homes that just got a permit in your trade or in your area.
  • Building-material suppliers and equipment rental: reach the general contractors who just started a job worth more than $100k.
  • Real-estate investors and analysts: track new construction, ADUs and multifamily units by ZIP.
  • Insurance, lending and proptech: monitor renovation and new-build activity.
  • Market researchers and journalists: compare construction activity across cities.

FAQ

Which cities are covered? Austin, Dallas, Chicago, New York City, Los Angeles, San Francisco, Seattle, Baton Rouge, Cincinnati, Mesa and Marin County, from each city's official open-data portal.

Why does one permit number appear more than once? Some cities issue several permits under one job number (for example foundation and structural) or list one permit at several addresses. Each is a separate record. Exact duplicate rows are removed and never charged.

How far back can I go? Up to 10 years for most cities. Dallas publishes only about the latest 92 days through its API.

Do I need an API key? No. A free Socrata app token is optional and only helps with very large pulls.

Supported cities

KeyCityContractor data
austinAustin, TXname, trade, phone
dallasDallas, TXname (when filled), latest 92 days only
chicagoChicago, ILall contractors by role (general, electrical, plumbing...)
new-yorkNew York City, NY (DOB NOW)applicant business, license
los-angelesLos Angeles, CAnone published
san-franciscoSan Francisco, CAnone published
seattleSeattle, WAname (some permits)
baton-rougeBaton Rouge / East Baton Rouge Parish, LAname
cincinnatiCincinnati, OHcompany name
mesaMesa, AZname, phone, email, license
marin-countyMarin County, CAname, license

All sources are official government open-data portals (Socrata SODA API). No login, no browser, no proxies.

How to use

  1. Pick one or more Cities.
  2. Choose Issued in the last N days (default 7) or an exact Issued from / to date range.
  3. Optionally narrow it down: Description contains (e.g. solar, roof, pool, ADU, new construction), Minimum project value, Residential or commercial, Only permits with a contractor name.
  4. Set Max permits per city and run. Download as CSV, Excel or JSON, or connect via API, Zapier or Make. Schedule it daily or weekly for a fresh lead feed.

Input

FieldTypeDescription
citiesarrayCity keys from the table above. Required.
daysBackintegerIssued within the last N days (default 7).
dateFrom / dateTostringExact window, YYYY-MM-DD.
keywordsarrayKeep permits whose description contains any of these words.
excludeKeywordsarrayDrop permits whose description contains any of these words.
permitClassstringany, residential or commercial (best effort; uses the city's class/type and, where missing, the description).
minValuationintegerMinimum declared project value in USD.
requireContractorbooleanOnly permits that list a contractor.
maxPermitsPerCityintegerNewest-first cap per city (default 100).
socrataAppTokenstringOptional free Socrata token for very large pulls.

Example:

{
"cities": ["chicago", "new-york", "seattle"],
"daysBack": 14,
"keywords": ["roof", "solar"],
"minValuation": 10000,
"permitClass": "residential",
"maxPermitsPerCity": 50
}

Output

Every permit has the same fields regardless of city (null when the city does not publish that value). Real example from a test run on 2026-10-28:

{
"city": "Chicago",
"state": "IL",
"permitNumber": "100000000",
"permitType": "PERMIT - NEW CONSTRUCTION",
"permitClass": null,
"workType": null,
"description": "SPR 2019 CBRC. ERECT A NEW 2 STORY SINGLE FAMILY RESIDENCE W/ BASEMENT, REAR PATIO AND DETACHED 2 CAR FRAME GARAGE WITH 2 EVSE-READY PARKING SPACE WITH ROOF DECK ACCESSED BY 1-STORY OPEN STAIR. INSTALL 6 FEET HIGH WOOD FENCE AND 6 FEET IRON FENCE. ALL WORK AS PER PLANS.",
"status": "ACTIVE",
"appliedDate": "2026-07-08",
"issuedDate": "2026-10-26",
"address": "100 N EXAMPLE AVE",
"zip": null,
"latitude": 41.88,
"longitude": -87.63,
"valuation": 375000,
"squareFeet": null,
"housingUnits": null,
"contractorName": "EXAMPLE CONSTRUCTION INC",
"contractorTrade": "GENERAL CONTRACTOR",
"contractorPhone": null,
"contractorEmail": null,
"contractorLicense": null,
"contractors": [
{
"name": "EXAMPLE ELECTRIC INC",
"role": "ELECTRICAL"
},
{
"name": "EXAMPLE CONSTRUCTION INC",
"role": "GENERAL CONTRACTOR"
},
{
"name": "EXAMPLE PLUMBING INC",
"role": "PLUMBER/PLUMBING"
},
{
"name": "EXAMPLE MECHANICAL INC",
"role": "REFRIGERATION"
},
{
"name": "EXAMPLE MECHANICAL INC",
"role": "VENTILATION"
}
],
"sourceUrl": null,
"datasetUrl": "https://data.cityofchicago.org/d/ydr8-5enu",
"scrapedAt": "2026-10-28T13:11:21.095Z"
}

A RUN_SUMMARY record in the key-value store shows, per city, how many rows were read, filtered out and saved, plus any source errors. If one city portal is down, the other cities still finish.

Pricing

Pay per result: $0.002 per permit saved ($2 per 1,000). No start fee, and you are never charged for permits removed by your filters. Set a maximum spend per run in the Apify console and the Actor stops cleanly at your limit.

Limits and tips

  • Cities publish permits with a delay of 1 to 7 days, so "last 1 day" can be empty. Use 7 days or more for a reliable feed.
  • Valuation is the value declared by the applicant and is sometimes $0 or $1 for small jobs.
  • Dallas stores dates as text, so the Actor limits Dallas to the latest 92 days.
  • The residential/commercial filter is a best-effort heuristic because each city classifies permits differently.
  • Scope: permits for HVAC, mechanical or building-systems work on commercial or non-residential properties are not included. Residential permits of every trade are included.
  • Want another city or county? Open an issue with its open-data link.

Building permits are public records published by each city for reuse (for example, Austin's dataset is Public Domain). This Actor deliberately does not output property-owner or applicant names, only businesses acting as contractors, which is what the permit records them as. Use the data in line with the portal's terms and with anti-spam and telemarketing laws (CAN-SPAM, TCPA) when contacting businesses.

Not affiliated with any city government or with Socrata/Tyler Technologies.