Building Permit Data API

Scored, de-duplicated building permits from 19 US markets — San Francisco, Los Angeles, Chicago, Seattle, Austin, New York City, Philadelphia, Miami-Dade, Nashville, Detroit, Las Vegas, Mesa, Marin County, Northern Kentucky, Cincinnati, New Orleans, Montgomery County MD, Louisville, and Orlando — refreshed daily from each jurisdiction's public records. Every record carries the address, work description, estimated value, status, filed and issued dates, a 0–100 lead score, and, where the city publishes it, the contractor and owner named on the permit.

Get API access

Included with your $20/month subscription. Cancel anytime. Your key is a bearer token.

Endpoints

GET https://pingpermit.com/api/leads
    ?city=<slug>   (see /api/leads/coverage for every live slug)
    &tier=hot|warm|cool
    &trade=<slug>  (roofing, demolition, hvac … see "trades" on each record)
    &search=<text>
    &minValue=<usd>&maxValue=<usd>
    &limit=100&offset=0
Authorization: Bearer <your-key>

GET https://pingpermit.com/api/leads/:id
Authorization: Bearer <your-key>

GET https://pingpermit.com/api/leads/demo-stats?city=chicago   (public, aggregate only)
GET https://pingpermit.com/api/leads/coverage                    (public, per-city status)

Example

curl -H "Authorization: Bearer $PINGPERMIT_KEY" \
  "https://pingpermit.com/api/leads?city=austin&tier=hot&limit=25"

Record shape

{
  "id": "…", "city": "Austin", "citySlug": "austin", "permitNumber": "…",
  "address": "…", "neighborhood": "…", "description": "…", "permitType": "…",
  "status": "issued", "filedDate": "2026-09-08", "issuedDate": "2026-09-09",
  "estimatedCost": 125000, "leadScore": 84, "tier": "hot",
  "reasons": ["Remodel or renovation — tear-out and rebuild", "…"],
  "trades": ["roofing", "framing"],
  "contacts": [
    { "role": "General Contractor · Lic. 1012345", "name": "…",
      "phone": "(512) …", "location": "Austin, TX" }
  ]
}

Coverage & freshness

  • San Francisco, CA — DBI permits with contractor, owner, and architect contacts, nightly
  • Los Angeles, CA — LADBS issued permits with scope and valuation, nightly
  • Chicago, IL — Dept. of Buildings permits with up to 15 named contacts, nightly
  • Seattle, WA — SDCI permits, with the contractor company where the city recorded one, nightly
  • Austin, TX — Issued permits with contractor company, trade, and phone, nightly
  • New York City, NY — DOB NOW approved permits with the permittee business and license, nightly
  • Philadelphia, PA — Licenses & Inspections permits with the contractor named on each, nightly
  • Miami-Dade, FL — County permits with contractor name, license, and phone, nightly
  • Nashville, TN — Metro building permits with construction cost and permit contact, nightly
  • Detroit, MI — BSEED building permits with estimated contractor cost and neighborhood, nightly
  • Las Vegas, NV — City permits with declared valuation and the applicant contractor, nightly
  • Mesa, AZ — City permits with description of work, valuation, and contractor, nightly
  • Marin County, CA — County permits with construction value and licensed contractor, nightly
  • Northern Kentucky, KY — Kenton County permits plus every Cincinnati filing across the river — one Greater Cincinnati feed, nightly
  • Cincinnati, OH — City permits with the neighborhood and the company that pulled them, plus Northern Kentucky, nightly
  • New Orleans, LA — City permits with work description, status and project cost, nightly
  • Montgomery County, MD — Residential and commercial permits with the scope the applicant wrote, nightly
  • Louisville, KY — Metro construction permits with the address, permit type and project cost on nearly every filing, nightly
  • Orlando, FL — City permits naming the contractor on 96% of filings, with a phone on more than half, nightly

Rolling 45-day window per city, 500 most recent permits per fetch, JSON only. Rate limits are generous for single-tenant use.

What each city publishes — free, no key

Permit records are not standardised: two cities can both publish “building permits” and disagree about whether anyone is named on them, whether the job carries a price, or whether a finished permit can be told from an open one. We measure that per market over current filings and publish it — the coverage table, and the same table as JSON, free to use with attribution (CC BY 4.0).

Building on top of an assistant rather than the API? /llms.txt is the same set of entry points in the llmstxt.org format — every market, every per-property index and every trade hub, generated from the filings in hand rather than hand-kept.