US Building Permits Leads: Solar, Roofing, New Construction
Pricing
Pay per event
US Building Permits Leads: Solar, Roofing, New Construction
New US building permits from official city open-data portals (Los Angeles, New York, Chicago, San Francisco, Austin, Seattle + more) in one schema: permit type, work description, address, valuation, contractor, owner, lat/lon. Filter by keyword (solar, roof, pool, ADU) and value. $0.003/permit.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Jo
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
40 minutes ago
Last modified
Categories
Share
US Building Permits Leads Scraper – 10 Cities: LA, NYC, Chicago, SF, Austin, Seattle & more
Building permit leads at $3 per 1,000. That's cheaper than most permit scrapers on Apify, and it pulls official open data from LA, NYC, Chicago, Austin, Seattle, SF and 4 more cities. Contractor name, phone (Austin and Seattle), valuation and address, for solar, roofing, HVAC and construction sales.
Quick start: click Start. The prefilled input returns real results in about a minute and costs at most about $0.31 (up to 100 results at $0.003 each, plus the $0.005 start fee). Lower maxItems for a cheaper test. New Apify accounts include free monthly credits, so your first runs are effectively free.
Get newly issued building permits from 10 US cities and counties (Los Angeles, New York City, Chicago, San Francisco, Austin, Seattle, Cincinnati, Mesa AZ, Baton Rouge, Marin County) in one clean, normalized dataset. Each record includes permit type, work description, address, ZIP, job valuation, contractor, owner and coordinates. Use it to find construction leads for roofing, solar, pool, ADU, HVAC, remodeling, demolition, building-supply and insurance businesses.
The data comes from each city's official open-data portal (Socrata API). It is public data published for reuse. No logins, no CAPTCHAs, no proxies.
Use this Actor from an AI agent (MCP)
One-line: New US building permits from official city open-data portals (Los Angeles, New York, Chicago, San Francisco, Austin, Seattle + more) in one schema: permit type, work description, address, valuation, contractor, owner, lat/lon. Filter by keyword (solar, roof, pool, ADU) and value. $0.003/permit.
Questions this answers:
- Find solar permits issued in Los Angeles this week
- New construction permits over $1M in Chicago
- Roofing contractor leads from Austin permits
Example input (fast, cheap, ~20 rows):
{"cities": ["los-angeles"],"daysBack": 7,"keywords": ["solar"],"maxItems": 25}
Connect in Claude / Cursor / any MCP client: https://mcp.apify.com/?tools=johto.data/us-city-building-permits-leads
Agent pays with USDC (x402), no Apify account: https://mcp.apify.com/?tools=johto.data/us-city-building-permits-leads&payment=x402
Runs finish in seconds and return flat JSON rows (no nested HTML), so results fit straight into an LLM context window. You pay only per row returned.
Why use this building permit scraper?
- 10 cities, 1 schema. LA, NYC (DOB NOW), Chicago, San Francisco, Austin, Seattle, Cincinnati, Mesa, Baton Rouge and Marin County all come out in the same fields.
- Lead filters. Filter by keyword (pool, solar, ADU, roof, demolition...), minimum project valuation, and days back.
- Contractor & owner names where the city publishes them (NYC and Chicago: ~97–100%, Austin contractors 91% with phone numbers).
- Fast and cheap. About 9,500 permits across 10 cities in under a minute.
- Schedule it daily or weekly to get a fresh lead list in your inbox, Google Sheets or CRM.
Input
| Field | Description |
|---|---|
cities | los-angeles, new-york, chicago, san-francisco, austin, seattle, cincinnati, mesa, baton-rouge, marin-county |
daysBack | Permits issued in the last N days (default 7) |
keywords | Match any keyword in permit type or description (e.g. ["solar","pool"]) |
minValuation | Minimum declared job value in USD |
maxItems | Max results per city |
Output example
{ "city": "new-york", "permitNumber": "X01472603-I1-PL", "issueDate": "2026-10-14T00:00:00.000","permitType": "Plumbing", "workDescription": "...", "address": "2234 ADAMS PLACE Bronx", "zip": "10457","valuation": 25000, "status": "Permit Issued", "contractorName": "ACME PLUMBING INC", "contractorLicense": "MP 1234","ownerName": "...", "lat": 40.85, "lon": -73.88, "sourceUrl": "https://data.cityofnewyork.us/d/rbx6-tga4" }
Field coverage (test run, Oct 2026)
| City | Valuation | Contractor | Owner |
|---|---|---|---|
| New York | 100% | 100% | 99% |
| Chicago | 86% | 97% | 97% |
| Los Angeles | 100% | – | – |
| Austin | 24% | 91% (plus phone 90%) | – |
| San Francisco | 100% | – | – |
| Cincinnati | 94% | 99% | – |
| Mesa, AZ | 81% | 45% | – |
| Baton Rouge (lags ~1 wk) | 73% | 69% | – |
| Marin County | 95% | – | – |
| Seattle | 100% | 9% | – |
Pricing
$0.003 per permit returned ($3 per 1,000), plus a $0.005 run start fee. You pay only for the permits you get.
Use cases
Construction lead generation · solar installer leads · pool builder leads · roofing leads · contractor market research · real-estate development tracking · building-supply sales prospecting.
Legal
Every record comes from an official government open-data portal. Use contact data in line with applicable laws (for example, CAN-SPAM and TCPA) when you do outreach.
FAQ
How fresh is the data? About as fresh as each city's portal, which usually updates daily. LA updates weekly. Can you add my city? Open an issue. More Socrata/ArcGIS cities are planned.
Scheduled alerts and only-new mode
onlyNew: trueremembers what earlier runs returned (stored in your own Apify account) and returns only new records, so a daily or hourly schedule charges you only for fresh data.webhookUrlPOSTs every new batch as JSON with a ready-to-posttextandcontentsummary. It works with Slack and Discord incoming webhooks, Zapier, Make and n8n.
Use from AI agents and code
- Apify MCP server: add
johto.data/us-city-building-permits-leadsas a tool. Every input field is documented in the input schema. - REST, one call, returns JSON:
curl -X POST "https://api.apify.com/v2/acts/johto.data~us-city-building-permits-leads/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H 'Content-Type: application/json' -d '{"maxItems": 50, "onlyNew": true}'
- Python:
ApifyClient(token).actor("johto.data/us-city-building-permits-leads").call(run_input={...})