April 9, 2026Guide8 min read

How to Get Building Permit Data via API in 2026

Building permit data has been locked away in thousands of municipal portals, each with different formats, schemas, and access methods. Until now, getting permit data programmatically meant scraping government websites or paying enterprise prices. Here's the easier way.

Why building permit data matters

Every time someone builds, renovates, installs solar panels, or replaces a roof in the United States, they need a building permit. That permit becomes a public record containing the property address, work description, estimated value, contractor name, and project timeline.

This data is a goldmine for solar companies (finding homeowners with new roofs), real estate investors (spotting renovation waves), insurance underwriters (verifying property conditions), contractors (generating leads), and proptech startups (enriching property profiles). The problem has always been access.

The old way: scraping 20,000 municipal portals

The U.S. has over 20,000 permitting jurisdictions. Each city publishes permit data differently. New York uses Socrata. Some cities use ArcGIS. Others publish CSVs. Many still require phone calls to the county clerk. Even the cities with APIs have completely different field names, date formats, and permit type taxonomies.

Building a permit data pipeline from scratch means writing custom connectors for each city, normalizing wildly inconsistent schemas, classifying free-text descriptions into usable categories, and maintaining it all as city portals change. It's months of engineering work before you get a single useful query.

The new way: one API, 4 million permits

PermitStack aggregates building permit data from 22 major U.S. cities into a single, normalized REST API. Every permit is classified into one of 19 categories (solar, roofing, HVAC, electrical, new construction, etc.), geocoded with latitude and longitude, and searchable by dozens of filters.

Get an API key in 30 seconds and start querying immediately.

Quick start: your first API call

Step 1: Get your free API key

Visit permit-stack.com and click "Get API Key." Enter your name and email, verify with the code we send, and you'll have a key instantly. The free tier gives you 1,000 requests per day.

Step 2: Search permits with curl

# Find solar permits in Austin, TX
curl "https://api.permit-stack.com/v1/permits/search?city=Austin&state=TX&category=solar" \
  -H "X-API-Key: pk_your_key_here"

Step 3: Parse the response

{
  "total": 13604,
  "page": 1,
  "per_page": 20,
  "results": [{
    "permit_number": "2026-040187 EP",
    "category": "SOLAR",
    "address_street": "2900 PECAN SPRINGS RD",
    "address_city": "AUSTIN",
    "address_zip": "78723",
    "description_raw": "Install new 5.76 kW rooftop solar system...",
    "latitude": 30.3009,
    "longitude": -97.6846
  }]
}

Python example

import requests

API_KEY = "pk_your_key_here"
headers = {"X-API-Key": API_KEY}

# Search for new construction permits in Chicago
response = requests.get(
    "https://api.permit-stack.com/v1/permits/search",
    headers=headers,
    params={
        "city": "Chicago",
        "category": "new_construction",
        "min_value": 500000,
        "per_page": 50
    }
)

data = response.json()
print(f"Found {data['total']} permits")

for permit in data["results"]:
    print(f"  {permit['address_street']} - ${permit.get('estimated_value', 'N/A')}")

JavaScript example

const API_KEY = "pk_your_key_here";

const response = await fetch(
  "https://api.permit-stack.com/v1/permits/search?city=Seattle&category=roofing",
  { headers: { "X-API-Key": API_KEY } }
);

const data = await response.json();
console.log(`Found ${data.total} roofing permits in Seattle`);

Available filters

PermitStack supports filtering by city, state, ZIP code, permit category (19 types including solar, roofing, HVAC, electrical, plumbing, new construction, demolition, and more), status, date ranges (filed after/before, issued after/before), estimated value range, contractor name, and full-text search across descriptions.

You can also look up individual permits by ID, search by street address, and query contractor profiles with their permit history.

Which cities are covered?

PermitStack currently covers 22 U.S. cities with over 5.7 million permits: New York City, Chicago, Los Angeles, Austin, San Francisco, Honolulu, Boston, Fort Worth, San Diego County, Seattle, New Orleans, Baton Rouge, Dallas, Nashville, and Santa Rosa. Data is refreshed daily from official city open data portals, and new cities are added regularly.

Pricing

The free tier includes 1,000 requests per day with access to all endpoints. Starter ($49/month) gives you 10,000 requests per day. Pro ($149/month) gives you 100,000 requests per day with bulk export access. Enterprise plans are available for unlimited access and custom integrations.

Start building with permit data today

Get your free API key in 30 seconds. No credit card required.

Get Free API Key