Skip to content
Products API & Data Search Coverage Property History Alerts For Contractors Data Exports
Solutions Solar & Energy Roofing HVAC Real Estate Insurance Lenders & CRE Contractors
Pricing Refer & Earn Docs Support Sign In / Dashboard Get Started
115M+ permits from 8,000+ cities in 48 states and DC · most sources refreshed nightly

Building permit data API: 115M+ U.S. permits from 8,000+ cities

Permit data, three ways.

One source of 115M+ U.S. building permits from 8,000+ cities in 48 states and DC — used however you work. Build on the REST API, search and export permits in your browser, download bulk CSVs, or look up who pulled the permits in your area.

Compare all three →

No credit card required. 100 free requests/day to start. Pick the service that fits below.

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

# Response
{
  "total": 10000,
  "total_capped": true,
  "results": [{
    "permit_number": "2026-040187",
    "category": "SOLAR",
    "address_street": "2900 PECAN SPRINGS",
    "address_city": "AUSTIN",
    "estimated_value": 24500
  }]
}
115M+
Permits
8,000+
Cities
20
Categories
871
Jurisdictions

Everything you need from permit data

PermitStack normalizes raw permit data from dozens of municipal portals into a clean, consistent API that developers and data teams can use immediately.

Advanced search

Filter by city, state, ZIP, category, contractor, date range, value range, and full-text search across descriptions.

Auto-classified

Every permit is classified into one of 20 categories — solar, roofing, HVAC, electrical, new construction, demolition, and more.

Geocoded

Permits include latitude and longitude coordinates for mapping, spatial analysis, and location-based queries.

Contractor profiles

Search contractors by name, view their permit history, project types, and activity across multiple cities.

Property history

Pull the complete construction history for any address — every permit ever filed, sorted by date with category breakdowns.

Permit alerts

Webhooks push new matching permits about a minute after each nightly ingest finds them — no polling. Track a competitor by name, or get a daily/weekly email lead feed for your trade and metro.

See alerts & lead feeds →

Bulk CSV export

Download permits as CSV for analysis in Excel, Tableau, or your data warehouse: up to 50,000 rows per call on Developer and 200,000 on Business and Scale.

Nightly updates

Most sources are re-ingested every night from government permit portals and open-data feeds. Every jurisdiction's data-through date is on the status page.

Fast & reliable

PostgreSQL + PostGIS, indexed for spatial and full-corpus queries. Sources are re-ingested nightly.

Up and running in 60 seconds

Get your API key, make your first request, and start building with real permit data. No onboarding calls, no sales process.

Get your API key

Enter your email, verify with a 6-digit code, and get your key instantly. It's also emailed to you for safekeeping.

Make your first request

Use the X-API-Key header with any endpoint. Search permits, look up contractors, pull property history.

Build your product

Integrate permit data into your app, CRM, analytics pipeline, or lead gen workflow. Scale up as you grow.

Built for teams that need construction data

From solar lead gen and door-to-door canvassing to insurance underwriting, permit data powers decisions across the built world.

Solar & Energy

Generate high-intent solar leads

Find homeowners with recent roofing permits — they have brand-new surfaces ideal for solar. Target by ZIP code, filter by permit date, and build lists automatically.

Field Sales & Canvassing

Knock the neighbors of every fresh install

Cut a territory on a map and pull every home that just pulled a solar, roof, or pool permit — then knock the block while the job's still fresh. Filter by trade, date, and radius, with the contractor and the owner of record where the city publishes them. For door-to-door teams →

Real Estate

Spot emerging neighborhoods

Track renovation waves before property values reflect them. Compare permit volume and project values across ZIP codes to find where investment is accelerating.

Insurance

Verify property conditions

Pull the full construction history for any address during underwriting. Confirm claimed renovations, check for unpermitted work, and assess risk accurately.

Building Materials

Target active contractors

Identify contractors pulling the most permits in any metro. See their project types, volumes, and geographic footprint to prioritize outreach.

Clean JSON, clear docs, instant access

Standard REST API with full OpenAPI reference docs, a typed Python SDK, and copy-paste curl examples for every endpoint.

Install pip install permitstack
Python SDK
from permitstack import Permitstack

# Fully typed, sync + async, with retries built in
with Permitstack(api_key="pk_your_key") as client:
    result = client.permits.search_permits(
        city="Chicago",
        category="new_construction",
        min_value=500000,
    )

    for permit in result.results:
        print(permit.address, permit.estimated_value)
Python on PyPI → Python on GitHub → TypeScript on npm → TypeScript on GitHub → API Docs →

Built for developers and AI agents

Pydantic-typed Python SDK with async support, automatic retries, and pagination, plus a typed TypeScript SDK on npm. Or connect Claude and other AI agents directly via our MCP server. Raw HTTP works too — every endpoint is authenticated with the X-API-Key header.

New

Claude Desktop & AI agent ready

Add the PermitStack MCP server to Claude Desktop or any agent that speaks the Model Context Protocol. Claude can then search permits, look up a property's permit history, pull contractor records, and read monthly permit counts and trends natively — nine tools, no scraping.

Install npx permitstack-mcp
GET/v1/permits/search
GET/v1/property/history
GET/v1/contractors/search
GET/v1/permits/export
GET/v1/metrics/monthly
POST/v1/webhooks/
View full API docs →

8,000+ U.S. cities across 48 states and DC — and growing

Data sourced from 871 active government data sources — including counties and statewide feeds that each cover many cities. New cities added regularly. Most sources refresh nightly.

Austin, TX2.3M+
Los Angeles City & County3.3M+
Orlando, FL1.09M+
Chicago, IL840K+
New Jersey2.6M+
Philadelphia, PA920K+
Columbus, OH670K+
Portland, OR1.1M+
San Francisco, CA1.1M+
New York City, NY5.8M+
Honolulu, HI (archive)373K+
Boston, MA650K+
Baltimore, MD284K+
Buffalo, NY272K+
Miami-Dade, FL276K+
Fort Worth, TX1.5M+
San Diego, CA1M+
Seattle, WA980K+
Raleigh, NC1M+
Cincinnati, OH157K+
+ 8,000 more cities

Simple, transparent pricing

Start free, upgrade when you grow. No credit card to start — the free tier (100 requests/day) is your trial. Paid plans are simple monthly subscriptions you can cancel anytime. Enterprise permit platforms put their first paid plan around $599/mo; PermitStack's paid plans run $29 to $499/mo, all self-serve.

Developers: API plans below. Contractors: start here

Which service is right for you?

Data Exports API Access
Best forOne-time bulk data pullsDevelopers & teams building on permit data
You getCSV zip of the jurisdictions you choose, emailedLive REST API + no-code web search & export
Technical?NoAPI: yes · Web search: no
Owner mailing addressNoBusiness plan, where the county publishes it
Price$39–349 per city$29–499/mo
Browse exports See API plans
Check your market first Free, no signup. See how many permits we hold for your city in the last 12 months and how current each source is.
Monthly Annual Save 17%
API & Data Live REST API & no-code web search & export
Free
For testing & side projects
$0/mo
 
  • 100 requests / day
  • 30 requests / minute
  • Last 30 days of permits
  • All 8,000+ cities
  • Daily data refresh
  • Community support
  • Webhooks
  • Bulk export
Indie
For solo builders & weekend projects
$29/mo
 
  • 1,000 requests / day
  • 30 requests / minute
  • Everything in Free
  • Full historical data
  • CSV export (1,000 rows)
  • Webhooks
Hobbyist
For solo devs & small projects
$39/mo
 
  • 2,500 requests / day
  • 30 requests / minute
  • Everything in Indie
  • CSV export (5,000 rows)
  • Email support
  • Webhooks
Business
Alerts, big exports & priority support for teams
$149/mo
 
  • Property-owner mailing address, where the county publishes it
  • 100,000 requests / day
  • 200 requests / minute
  • Everything in Developer
  • CSV export (200,000 rows)
  • Incremental sync feed (cursor-based change data)
  • 100 saved searches
  • Priority support
Scale
For data teams running national pulls
$499/mo
 
  • 500,000 requests / day
  • 500 requests / minute
  • Everything in Business
  • 500 saved searches
  • Same-business-day support
  • Up to 2 prioritised coverage requests per quarter (best effort)

Prices changed on 5 August 2026. If you already subscribe, your price does not change — every existing plan stays at the rate you signed up on, for as long as you keep it. These prices apply to new subscriptions only.

Bulk Data Export CSV zip download — one-time, per city, no code. The annual toggle changes API pricing only.
Small
Under 25,000 records
$39/city
One-time · recurring refresh available
  • Full CSV export of one jurisdiction
  • All permit fields we hold
  • Emailed as a downloadable zip
  • Under 25,000 records
Medium
25,000 – 150,000 records
$99/city
One-time · recurring refresh available
  • Everything in Small
  • 25,000 – 150,000 records
  • Mid-size metro coverage
  • Delivered within 1 business day
Large
150,000 – 500,000 records
$199/city
One-time · recurring refresh available
  • Everything in Medium
  • 150,000 – 500,000 records
  • Major metro coverage
  • Delivered within 1 business day
XL
500,000+ records
$349/city
One-time · recurring refresh available
  • Everything in Large
  • 500,000+ records
  • Largest jurisdictions & statewide sets
  • Delivered within 1 business day

Enterprise

Custom volume, white-glove onboarding, custom SLAs, dedicated infrastructure, and procurement support. Snowflake / BigQuery / data warehouse integrations available.

Contact sales →

Pricing FAQ

Is there really a free tier with no credit card?

Yes. Sign up with your email, verify with a 6-digit code, and get an API key. You can make up to 100 requests per day forever. No credit card required.

I lost my API key, or it was exposed. How do I get a new one?

Click Forgot API Key in the footer under Account, or POST your email to /v1/auth/keys/recover. We send a 6-digit code to the address on the account; enter it and we immediately revoke your old key and email you a new one. Your tier, rate limits and billing carry over, so there is no interruption to your subscription and nothing to re-purchase. The old key stops working the moment the new one is issued, so have the replacement ready to paste in. If a key was exposed, do this first, then email support and we will check the request log for that key so you can judge the exposure.

What happens if I exceed my rate limit?

You'll get an HTTP 429 response once you hit the daily or per-minute limit. Upgrade anytime from the dashboard or cancel from the Stripe Customer Portal. Limits reset at midnight UTC.

How fresh is the data?

Most sources are re-ingested every night, starting at 3 AM UTC. Statewide solar feeds such as California's refresh monthly, and some sources are behind vendor blocks or have stopped publishing, so we publish a data-through date for every jurisdiction on the status page. Webhooks fire about a minute after the nightly ingest picks up a matching permit.

Do you offer annual pricing?

Yes — pay annually and get ~17% off (2 months free) on every paid tier. Developer is $790/year.

Can I cancel anytime?

Yes. Sign in to your dashboard and click Manage Subscription (also in the site footer) to open the Stripe Customer Portal. No cancellation fees, no retention calls, no email jujitsu.

What if I need more than 500,000 requests per day?

500,000 a day is the Scale plan. Beyond that, or for licensing, redistribution or bulk delivery, reach out to support@permit-stack.com — we'll put together a custom Enterprise plan with volume pricing, dedicated infrastructure, and a custom SLA.

How do I authenticate API requests?

Pass your API key in the X-API-Key header on every request. Keys are tied to your account; each key has its own rate limits matching your plan.

Do you have contractor phone numbers or contact info?

Contractor name, license number, and trade classification are on every plan, including free. We also carry a business phone for 300,000+ contractors, plus email and mailing address where available — pulled from official permit records and joined to public state license-board rosters. Those contact fields are on the Developer plan ($79/mo) and up, via the /v1/contractors endpoint. We publish only what the source records provide, so contact isn't on every contractor, and we never buy or append third-party data.

Ready to ship?

Get an API key in 2 minutes. Build with 100 free requests per day.

View API docs