New Building Permit Leads: Roofing, Solar, HVAC & Contractors avatar

New Building Permit Leads: Roofing, Solar, HVAC & Contractors

Pricing

from $7.00 / 1,000 scored permit leads

Go to Apify Store
New Building Permit Leads: Roofing, Solar, HVAC & Contractors

New Building Permit Leads: Roofing, Solar, HVAC & Contractors

New building permits from 7 US city open data portals (NYC, LA, Chicago, SF, Austin, Seattle, New Orleans), sorted by trade (roofing, solar, HVAC, pool, new build) and scored 0 to 100 with job value and contractor. $0.01 per permit. Agent-ready: MCP.

Pricing

from $7.00 / 1,000 scored permit leads

Rating

0.0

(0)

Developer

Adam Pearce

Adam Pearce

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Share

Who just got a permit to build, re-roof, add solar or replace a boiler in your city? This actor reads the official building permit feeds of 7 big US cities (New York City, Los Angeles, Chicago, San Francisco, Austin, Seattle and New Orleans) and returns the permits issued in the last few days as scored sales leads, all in one clean format: address, job value, what the work is, the trade it belongs to, the contractor on the job (and their phone where the city publishes it) and the owner where published.

Roofers, solar installers, HVAC and plumbing firms, pool builders, window and door companies, building material suppliers, equipment rental, dumpster and portable toilet hire, insurance agents and subcontractors chasing work all want the same thing: the job, the address and the contractor, the week the permit is issued. Each city publishes its permits in a different shape. This actor puts them in one shape, sorts every permit by trade and ranks them 0 to 100 so the biggest, freshest jobs come first.

What you get for each permit

  • Lead score 0 to 100 with plain reasons: job value, job size (new build, addition, remodel, roof, solar), how many days since it was issued, contractor named, phone on file, housing units added.
  • Trade: mainTrade plus every trade the job touches, from 19: new construction, ADU, addition or remodel, roofing, solar, HVAC, plumbing and gas, electrical, EV charger, generator, pool and spa, demolition, windows and doors, foundation, fire sprinkler, elevator, fence, signs, scaffold and sidewalk shed. It reads the permit type first (an Austin "Mechanical Permit" is HVAC) and the work description second.
  • The job: permit number, issue date, permit type, work class, full work description, declared job value in USD, residential or commercial, housing units added.
  • Where: street address, ZIP (where the city gives one), latitude and longitude.
  • Who: contractor company, contractor name, contractor phone and licence trade (Austin publishes phones; NYC, Chicago, Seattle and New Orleans publish contractor names), owner name (NYC, Chicago, New Orleans).
  • Link to the city's permit record where one exists.

The run summary (free, in the SUMMARY record) counts matches per city and per trade and lists the 25 busiest contractors in your results with their permit count and total job value: a ready target list for suppliers.

Sample row (shortened)

{
"leadScore": 85,
"leadReasons": "Job value $2,113,470. New construction: many trades and suppliers needed. Issued this week. Contractor named on the permit.",
"mainTrade": "new_construction",
"trades": ["new_construction", "addition_remodel"],
"city": "New York City",
"state": "NY",
"permitNumber": "B00000000-I1-GC",
"issuedDate": "2026-11-02",
"daysSinceIssued": 2,
"permitType": "General Construction",
"description": "New 10 story, cellar and sub cellar, community facility development",
"jobValueUsd": 2113470,
"address": "105-31 65 Road, Queens",
"zip": "11375",
"contractorCompany": "EXAMPLE CONSTRUCTION GROUP",
"contractorName": "Jane Example",
"ownerName": "Example Owner LLC",
"contractorNamed": true
}

How to use it

  1. Pick your cities (empty means all 7) and how many days to look back (withinDays, 1 to 90).
  2. Pick your trades, for example ["roofing", "solar"] for a solar installer or ["new_construction", "addition_remodel"] for a lumber yard.
  3. Narrow it: residential or commercial, minimum and maximum job value, ZIP codes, words the work must mention ("tankless", "metal roof", "restaurant") or must not mention.
  4. Sell to contractors? Turn on requireContractor and upload your customer list as a CSV or Google Sheet (excludeListUrl, first column = contractor names or permit numbers) so existing customers are skipped and never charged.
  5. Turn on monitor mode and schedule it daily: each run returns only permits you have not seen, a fresh lead feed every morning. Add a webhook to push the summary into Zapier, Make, n8n or Slack.

Examples:

  • Solar installer in LA and San Francisco: {"cities": ["los_angeles", "san_francisco"], "trades": ["roofing", "addition_remodel"], "propertyType": "residential", "withinDays": 2, "monitorMode": true} (a new roof is the best time to add panels)
  • Building supplier in Chicago: {"cities": ["chicago"], "trades": ["new_construction"], "minJobValue": 250000, "requireContractor": true}
  • Pool builder in Austin: {"cities": ["austin"], "trades": ["pool"], "withinDays": 30}
  • HVAC firm in NYC: {"cities": ["nyc"], "trades": ["hvac"], "keywords": ["boiler"], "withinDays": 7}

Pricing

Pay per event: $0.01 per scored permit returned (lower on higher Apify plans), plus a tiny actor start fee. You are charged only for permits that pass your filters; permits skipped by your customer list, monitor mode or filters cost nothing, and the summary is free. 1,000 fresh permit leads cost about $10. Use maxLeads or a maximum charge per run to cap spend.

Cities, sources and limits

CitySource (official open data portal)ContractorPhoneOwner
New York CityNYC DOB NOW: Build Approved Permitsyesnoyes
Los AngelesLADBS Building Permits Issuednonono
ChicagoCity of Chicago Building Permitsyesnoyes
San FranciscoDataSF Building Permitsnonono
AustinAustin Issued Construction Permitsyesyesno
SeattleSeattle Building Permitssometimesnono
New OrleansNew Orleans Permitsyesnoyes
  • Every feed is the city's own published open data; nothing is scraped. Cities update daily or weekly, so the newest one or two days can still be filling in (Chicago often lags a few days).
  • Some cities leave the job value blank or put 1 (Austin trade permits often do); those show as null and are dropped only when you set minJobValue.
  • NYC issues one permit per trade on a job (general construction, plumbing, mechanical), so a big job can appear once per trade.
  • At most 15,000 permits per city per run are read (newest first); shorten withinDays if a warning says so.
  • Names are public record as published by each city. Use them for business outreach only and follow the rules where you sell (TCPA for calls and texts, CAN-SPAM for email, do-not-call lists).
  • City of Chicago: "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."

More cities are added only when their feed is checked fresh. Ask in the Issues tab for yours.

For AI agents

Call it through the Apify MCP server (nerolabs/building-permit-leads). Inputs are plain fields (cities, withinDays, trades, minJobValue, maxLeads); output is one JSON row per permit with the fields above and a SUMMARY record (counts per city and trade, busiest contractors) in the default key-value store.