Solar Permit Data API: Find Every Solar Installation by ZIP Code
The U.S. residential solar market is worth over $30 billion annually. Every installation requires a building permit. Those permits are public records. If you can access them programmatically, you have a real-time view of solar adoption across the country.
Why solar companies need permit data
Traditional solar lead generation costs $50 to $200 or more per lead through platforms like EnergySage or Google Ads. Most of those leads are cold — homeowners casually browsing who may never convert.
Permit data flips that model. A homeowner who just filed a roofing permit has already committed $10,000 to $30,000 to their home. They have a brand-new roof surface ideal for solar panels. They're in a construction mindset and open to adjacent improvements. These are the highest-intent prospects in the market.
Beyond roofing permits, you can also identify homeowners who recently installed EV chargers (likely environmentally conscious), upgraded electrical panels (may need panel upgrades for solar anyway), or already installed solar (upsell battery storage).
Finding solar permits with PermitStack
PermitStack automatically classifies every permit into one of 19 categories, including SOLAR. You can search for solar permits by city, state, ZIP code, or date range with a single API call.
All solar permits in a ZIP code
curl "https://api.permit-stack.com/v1/permits/search?zip_code=78723&category=solar" \
-H "X-API-Key: pk_your_key_here"
Recent roofing permits (solar lead targets)
curl "https://api.permit-stack.com/v1/permits/search?city=Austin&state=TX&category=roofing&filed_after=2025-01-01" \
-H "X-API-Key: pk_your_key_here"
Python: building a solar lead pipeline
import requests
API_KEY = "pk_your_key_here"
headers = {"X-API-Key": API_KEY}
# Step 1: Find recent roofing permits (great solar candidates)
response = requests.get(
"https://api.permit-stack.com/v1/permits/search",
headers=headers,
params={
"city": "Austin",
"state": "TX",
"category": "roofing",
"filed_after": "2025-06-01",
"per_page": 100
}
)
leads = response.json()["results"]
print(f"Found {len(leads)} recent roofing permits")
# Step 2: Filter to residential properties
residential = [p for p in leads if p.get("property_type") == "RESIDENTIAL"]
print(f"{len(residential)} are residential")
# Step 3: These are your solar leads
for lead in residential[:10]:
print(f" {lead['address_street']}, {lead['address_zip']}")
What solar permit records contain
Each permit in PermitStack includes the full street address with GPS coordinates, the permit category (SOLAR, ROOFING, ELECTRICAL, EV_CHARGER, etc.), property type (residential, commercial), a description of the work (often including system size in kW), the filing and issue dates, and estimated project value where available.
The description field is particularly valuable for solar. Many cities require installers to specify the system size, inverter type, and whether battery storage is included — giving you precise intelligence about what's being installed and where.
Covered cities with strong solar data
Austin stands out with over 13,000 solar permits alone. Los Angeles, San Francisco, Honolulu, and San Diego County all have significant solar permit volumes due to strong state incentives and high solar irradiance. Chicago, Boston, and Seattle show growing adoption despite less favorable climates.
Beyond lead gen: solar market intelligence
Solar companies also use permit data for market analysis (which ZIP codes have the highest solar adoption rates), competitive intelligence (which installers are pulling the most permits), pricing insights (estimated project values by region), and forecasting (filing trends as a leading indicator of installation volume).
Start finding solar leads today
Get your free API key and query 13,000+ solar permits in minutes.
Get Free API Key