US Building Permits Scraper: Construction Leads avatar

US Building Permits Scraper: Construction Leads

Pricing

from $1.60 / 1,000 permits

Go to Apify Store
US Building Permits Scraper: Construction Leads

US Building Permits Scraper: Construction Leads

Building permits scraper for 25 US city and county open-data portals, including New York City, Los Angeles, Chicago, Miami and Austin. Building permit data with type, trade, valuation, address and contractor. Contractor leads for roofing, solar and HVAC. Monitor mode returns new permits.

Pricing

from $1.60 / 1,000 permits

Rating

0.0

(0)

Developer

Malik Said

Malik Said

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Share

This US building permits scraper returns newly issued building permits from 25 US city and county sources in one table. The data comes from each city's official open-data portal. Each permit is a construction lead with the permit type, a normalised trade category, project value, address and contractor.

Contractors, suppliers, solar and roofing sales teams, and property researchers use it to find new construction work. Schedule it daily with monitor mode on, and each run returns only new permits.

US building permits: cities covered

Counts are permits issued from 14 to 20 October 2026, counted on 21 October 2026.

CitySource datasetPermits in 7 days
New York City, NYDOB NOW: Build, Approved Permits2,581
Los Angeles, CALADBS Building Permits Issued from 2020 to Present850
Austin, TXIssued Construction Permits847
Boston, MAApproved Building Permits672
Chicago, ILBuilding Permits573
New Orleans, LAPermits295
San Francisco, CADBI Building Permits230
Cincinnati, OHCincinnati Building Permits144
Baton Rouge, LAEBR Building Permits97
Seattle, WASDCI Building Permits84

Cities and counties added on 21 October 2026. Counts are permits issued from 14 to 21 October 2026.

City or countySource datasetPermits in 7 days
Miami, FLCity of Miami Building Permits Since 2014604
Orlando, FLPermit Applications (issued permits only)528
Louisville, KYLouisville Metro Active Construction Permits285
Norfolk, VAPermits253
Nashville, TNBuilding Permits Issued248
Everett, WATrakit Permits215
Detroit, MIBSEED Building Permits173
Montgomery County, MDResidential Permit and Commercial Permits (two sources)151
Marin County, CABuilding Permit (unincorporated county)107
Mesa, AZBuilding Permits69
Pierce County, WAPermits - Pierce County (unincorporated county)55
Corona, CACorStat - Building Permits37
College Station, TXPermits - Master Dataset24
Memphis, TNDPD Building Permits (updated about once a month)0

Cities added on 23 October 2026. Counts are permits issued from 16 to 22 October 2026.

CitySource datasetPermits in 7 days
Philadelphia, PALicenses and Inspections Building and Zoning Permits996
Raleigh, NCBuilding Permits66
Washington, DCBuilding Permits - Last 30 Days (newest permit 15 October; the feed runs about a week behind)0

Washington, DC publishes the last 30 days only, and its feed runs about a week behind. Use Days back 14 or more for DC.

Memphis publishes about once a month, so a 7-day window is often empty. Use Days back 45 for Memphis. Louisville publishes active permits only, so closed permits drop out of its source.

New York City electrical and elevator permits sit in separate city datasets. This Actor does not read them yet.

Building permit data you get

FieldMeaning
city, cityName, stateCity code, city name and state
permitNumberPermit number as the city publishes it
issuedDateIssue date, YYYY-MM-DD
daysSinceIssuedWhole days from the issue date to the run date. Sort by it to call the freshest permits first
appliedDateApplication or filing date, where published
permitTypePermit type as the city names it
workClassWork class, trade or sub-type, where published
useCategoryProperty use or residential/commercial class, where published
descriptionWork description from the permit
valuationDeclared project value in USD, where published
address, zipCodeWork site address and ZIP code
latitude, longitudeCoordinates, where published
contractorNameContractor or permittee business, where published
statusPermit status as the city names it
tradeCategoriesNormalised trades: roofing, solar, hvac, electrical, plumbing, new-construction, addition-remodel, demolition, pool, fence, sign, fire-protection or other
sourceUrlLink to the permit on the city's permit site, or to the record in the city's API
datasetUrlLink to the city's dataset
idStable ID used by monitor mode
scrapedAtWhen the Actor collected the record

Sample record from a test run on 21 October 2026:

{
"id": "seattle:7109400-CN",
"city": "seattle",
"cityName": "Seattle",
"state": "WA",
"permitNumber": "7109400-CN",
"issuedDate": "2026-10-16",
"daysSinceIssued": 5,
"appliedDate": "2026-09-01",
"permitType": "Building",
"workClass": "Addition/Alteration",
"useCategory": "Non-Residential",
"description": "Construct alterations to existing minor telecommunication array (AT&T) on roof of multifamily building (ADRIATIC) per plan.",
"valuation": 30000,
"address": "3200 NW 65TH ST",
"zipCode": "98117",
"latitude": 47.67599988,
"longitude": -122.39862497,
"contractorName": null,
"status": "Issued",
"tradeCategories": ["addition-remodel"],
"sourceUrl": "https://services.seattle.gov/portal/customize/LinkToRecord.aspx?altId=7109400-CN",
"datasetUrl": "https://data.seattle.gov/d/76t5-zqzr",
"scrapedAt": "2026-10-21T08:39:32.916Z"
}

Trade categories

The Actor sets tradeCategories itself, so one filter works in every city. It reads the permit type, work class and description and looks for trade words. For example, "re-roof" gives roofing, "heat pump" gives hvac and "service upgrade" gives electrical. One permit can have several categories. A permit with no trade word gets other. The category is a keyword match. Check the description before you act on a lead.

Empty fields

Each city publishes different columns. The Actor leaves a field empty when the city does not publish it. It never guesses a value.

  • contractorName: Los Angeles, San Francisco, Boston, Nashville, Detroit, Memphis, Norfolk, Corona, College Station, Montgomery County, Pierce County, Philadelphia and Washington, DC do not publish a contractor, or the Actor does not read it because it can hold a person's name. Seattle and Louisville fill it for few permits.
  • valuation: Philadelphia and Washington, DC do not publish one. Austin fills it mainly for building permits. Trade permits often have no value. Pierce County fills it for few permits.
  • appliedDate: New York City and Boston do not publish one.
  • zipCode: Chicago, New Orleans, Miami, Orlando, Mesa, Norfolk and Pierce County do not publish one. The Actor reads a ZIP code from the end of the address when the city puts it there.
  • description: Norfolk, Orlando and Louisville do not publish a work description.
  • latitude and longitude: Orlando leaves recent permits without coordinates.
  • workClass: San Francisco, New Orleans and Baton Rouge do not publish one.
  • status: Baton Rouge, Marin County, Everett, Nashville, Detroit and Memphis do not publish one.
  • latitude and longitude: Cincinnati and Austin leave many permits without coordinates.

Building permits scraper: how to use it

  1. Pick the cities.
  2. Set Days back, or set Issued from and Issued to.
  3. Optional: pick Trade categories, such as Roofing, Solar or HVAC. Or type words under Permit types or trades, such as electrical or demolition.
  4. Optional: add Keywords to search the work description, such as roof, pool or adu.
  5. Optional: set Minimum valuation and Maximum valuation to keep jobs of the size you want.
  6. Optional: add ZIP codes to keep your service area only.
  7. Turn on Monitor mode and schedule the Actor daily to receive only new permits.

Building permits input options

OptionDefaultMeaning
CitiesThe first tenCities and counties to read. Clear the list to read all 28
Days back7Read permits issued in the last N days
Issued from / Issued toEmptyExact date range. Overrides Days back
Permit types or tradesNoneMatch against permit type and work class
Trade categoriesNoneKeep permits in at least one chosen category
KeywordsNoneMatch against description, type, work class and contractor
Minimum valuation (USD)0Drop permits below this value. Permits without a value are dropped when this is above 0
Maximum valuation (USD)0 (none)Drop permits above this value. Permits without a value are dropped when this is above 0
ZIP codesNoneKeep permits whose ZIP code starts with one of these values. Permits without a ZIP code are dropped
Monitor modeOffReturn only permits not returned before
Monitor name (monitorName)defaultName of the monitor memory. Use one key per watch list. The old field name stateKey still works
Maximum permits100Stop after this many permits. Set 0 for no limit
Maximum pages per city0 (all)Each page holds up to 1,000 permits
Your own Socrata permit datasetsNoneRead any Socrata permit dataset on a .gov, .org or .us portal. See below

Your own Socrata permit datasets

Your town may publish permits on a Socrata portal that this Actor does not list. Add it under Your own Socrata permit datasets. Find the dataset ID (four letters, a dash, four letters) in the dataset's address, and the names of its columns on its page. Example:

{
"customSources": [
{
"name": "Austin check",
"state": "TX",
"domain": "data.austintexas.gov",
"dataset": "3syk-w9eu",
"dateField": "issue_date",
"fields": {
"permitNumber": "permit_number",
"permitType": "permit_type_desc",
"description": "description",
"valuation": "total_job_valuation",
"address": "original_address1",
"zipCode": "original_zip"
}
}
]
}

Rows from this dataset get city "custom-austin-check". Columns whose names contain owner, applicant, phone, email, contact or tenant are refused, so the Actor never reads personal contact data. A wrong entry is skipped with a warning in the log.

Words in the two filter lists match the start of a word. For example, roof matches "roofing" and "re-roof".

Maximum permits is shared evenly across the selected cities. With ten cities and a limit of 100, each city gives up to 10 permits. A city with fewer matching permits leaves its share unused. Set 0 to get every matching permit.

Building permits pricing

The Actor uses pay-per-event pricing:

EventFree planGOLD plan and higher
Run start$0.02$0.02
Permit$0.002 ($2.00 per 1,000)$0.0016 ($1.60 per 1,000)
Permits in one runFree planGOLD plan and higher
100$0.22$0.18
1,000$2.02$1.62

Costs include the run start fee.

Permits skipped by your filters or by monitor mode cost nothing. Check the Pricing tab for the current price.

Building permits example: input and output

This input reads the last 7 days of permits from Chicago, Boston and Seattle and stops at 12 permits:

{
"cities": ["chicago", "boston", "seattle"],
"daysBack": 7,
"maxItems": 12
}

One record from that run on 21 October 2026:

{
"id": "boston:G1910419",
"city": "boston",
"cityName": "Boston",
"state": "MA",
"permitNumber": "G1910419",
"issuedDate": "2026-10-20",
"daysSinceIssued": 1,
"appliedDate": null,
"permitType": "Gas Permit",
"workClass": "Gas",
"useCategory": "1-3FAM",
"description": "Relocating gas meter from inside to exterior… adding a new on demand tankless water heater and gas line for a stove",
"valuation": 8000,
"address": "960 Bennington ST, East Boston",
"zipCode": "02128",
"latitude": 42.38626999967974,
"longitude": -71.0087000013072,
"contractorName": null,
"status": "Open",
"sourceUrl": "https://data.boston.gov/api/3/action/datastore_search?resource_id=6ddcd912-32a0-43df-9908-63574f8c7e77&filters=%7B%22permitnumber%22%3A%22G1910419%22%7D",
"datasetUrl": "https://data.boston.gov/dataset/approved-building-permits",
"scrapedAt": "2026-10-21T08:55:41.049Z"
}

Building permits FAQ

Which US cities does it cover?

New York City, Los Angeles, Chicago, San Francisco, Austin, Seattle, Boston, New Orleans, Cincinnati, Baton Rouge, Miami, Nashville, Detroit, Louisville, Memphis, Orlando, Mesa, Norfolk, Everett, Corona and College Station. It also covers Marin County (CA), Montgomery County (MD) and Pierce County (WA), Philadelphia, Raleigh and Washington, DC. You can also add any Socrata permit dataset yourself. The tables above show the source dataset for each one.

Can I use it for roofing, solar or HVAC leads?

Yes. Pick Roofing, Solar or HVAC under Trade categories. Add ZIP codes for your service area. Set Minimum valuation to keep larger jobs only.

How do I get only new permits each day?

Turn on Monitor mode and schedule the Actor daily. The Actor remembers the permits it returned before and skips them. Skipped permits are free.

Does it return owner names or phone numbers?

No. The Actor reads permit facts only. It returns the contractor or permittee business when the city publishes it.

How fresh is the data?

Each city updates its open-data portal on its own schedule. The Actor reads the portal at run time, so each run gets the latest published permits.

Can an AI agent use it?

Yes. Agents can find and run it through the Apify MCP server or the Apify API. All cities share one output schema.

Building permits data sources and use

  • All data comes from official city and county open-data APIs that need no login. They run on Socrata, CKAN, ArcGIS or Carto.
  • The Actor reads up to five portals at a time and sends at most one request per 1.1 seconds to each portal.
  • The Actor does not request owner names, applicant names, contact persons, project names, phone numbers or e-mail addresses.
  • contractorName holds the contractor or permittee as the city publishes it. Some small contractors trade under a personal name.
  • Philadelphia data: City of Philadelphia open data, used under its terms of use. Addresses are back in the data since October 2026.
  • Washington, DC data: District of Columbia open data, licensed under CC BY 4.0.
  • Maricopa County, San Antonio and Pittsburgh are not included. Their terms or robots.txt do not allow this use. Fort Worth and San Diego County are not included: Fort Worth's open table has no issue date, and San Diego County's newest record is from 2023.
  • Miami data: City of Miami, licensed under CC BY 4.0.

City of Chicago notice: 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.

Support

Report a problem in the Issues tab. Include the run link.