Docs / US building permits leads
Building Permit Leads API (8 US cities, one schema)
Newly issued building permits from official city portals in 8 US cities, including Austin, Seattle, San Francisco, Cincinnati, Baton Rouge and Marin County, normalized to one schema: permit type, work description, address, ZIP, valuation, contractor, owner (where published), lat/lon.
Run it on Apify ↗ API tab ↗ Compare alternatives
Facts on this page were checked against the live Apify listing on 2026-10-22. The Apify Store page is the source of truth for price.
Who it is for
Solar, roofing, pool, ADU, HVAC, remodeling and building-supply sales teams, insurers, and AI agents answering permit questions.
Pricing (pay per event)
| Event | Charged | Price (USD) |
|---|---|---|
permit | per permit returned | $0.0018 |
apify-actor-start | per run | $0.00005 |
The prefilled input (up to 100 permits) costs at most about $0.31. No subscription. Paid Apify plans get Store tier discounts automatically, and you can set a maximum total charge per run.
Data sources
- City of Austin – Issued Construction Permits (public domain)
- City of Seattle – Building Permits (public domain)
- DataSF – Building Permits (PDDL)
- City of Cincinnati – Building Permits (public domain)
- City of Baton Rouge / Parish of East Baton Rouge – Building Permits (public domain)
- County of Marin, CA – Building Permits (ODbL; attribution: County of Marin, CA)
Freshness: As fresh as each city's portal at run time. Baton Rouge lags about a week.
Coverage: 8 cities/counties. Field coverage varies by city; not every city publishes contractor names.
Inputs
| Field | Type | Default | What it does |
|---|---|---|---|
cities | array | ["austin"] | City slugs to pull: ["austin","seattle","san-francisco","cincinnati","baton-rouge","marin-county"]. |
daysBack | integer | 7 | Only permits issued within this many days. |
keywords | array | | Match in permit type or work description, e.g. ["solar","roof","pool","ADU","demolition"]. Empty = all permits. |
minValuation | integer | 0 | Skip permits below this declared job value (where the city reports one). |
maxItems | integer | 100 | Maximum permits per city; each is one charged result ($0.0018). Use 10-50 for a quick answer. |
onlyNew | boolean | false | Remember results across runs (per account) and return only items not seen before. Ideal for scheduled runs: you pay only for new records. |
webhookUrl | string | | Optional. POSTs the new items as JSON with a 'text'/'content' summary (Slack, Discord, Zapier, Make, n8n compatible). |
Output fields
city, permitNumber, issueDate, permitType, workDescription, address, zip, valuation, status, contractorName, contractorLicense, lat, lon, sourceUrl.
Example input
{
"cities": ["austin"],
"daysBack": 7,
"keywords": ["solar"],
"maxItems": 25
}
Example output row
{ "city": "austin", "permitNumber": "2026-135600 BP", "issueDate": "2026-10-20T00:00:00.000",
"permitType": "Building Permit / Addition and Remodel", "workDescription": "Interior remodel and addition...",
"address": "10015 ESTANCIA LN", "zip": "78739", "status": "Active", "contractorName": "CROSSROADS CONSTRUCTION",
"contractorTrade": "General Contractor", "sourceUrl": "https://abc.austintexas.gov/..." }
Sample row.
Call it from code or an AI agent
REST (one call, returns JSON rows):
curl -X POST "https://api.apify.com/v2/acts/johto.data~us-city-building-permits-leads/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
-d '{"cities":["austin"],"daysBack":7,"keywords":["solar"],"maxItems":25}'
Python: ApifyClient(token).actor("johto.data/us-city-building-permits-leads").call(run_input={...})
MCP (any MCP client): https://mcp.apify.com/?tools=johto.data/us-city-building-permits-leads
Limits and notes
- Only the 6 listed jurisdictions; not nationwide.
- Marin County rows are ODbL: keep the attribution "County of Marin, CA".
- Use contact data in line with CAN-SPAM and TCPA.
FAQ
Which cities are covered?
8 US cities, including Austin, Seattle, San Francisco, Cincinnati, Baton Rouge and Marin County.
Can I filter to solar or roofing permits?
Yes. keywords matches permit type or work description, e.g. ["solar","roof","pool","ADU"]; minValuation filters by declared job value.
Where is the data from?
Each city's official permit portal (mostly Socrata APIs), published for reuse.
Apify Store listing: https://apify.com/johto.data/us-city-building-permits-leads. Questions: [email protected].