US Building Permits Leads — 71 Jurisdictions, 28 States
Pricing
$1.50 / 1,000 permit results
US Building Permits Leads — 71 Jurisdictions, 28 States
Fresh building permits from 92 official city, county & state open-data feeds (71 jurisdictions, 700+ towns, 28 states). Trade tags (roofing, solar, HVAC, pool, ADU, new construction), project value, address, contractor name/license/phone. Filter by city, town, ZIP, trade, value.
Pricing
$1.50 / 1,000 permit results
Rating
0.0
(0)
Developer
Yuval Gabay
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
US Building Permits Leads — 71 Jurisdictions, 700+ Towns, 28 States
Fresh building permits from 92 official US city, county and state open-data feeds (71 permit-issuing jurisdictions, 310+ towns with fresh data plus 415 New Jersey municipalities) in one clean schema. Every permit comes with issue date, project value, address, ZIP, coordinates, the contractor (and license or phone where the city publishes them), and normalized trade tags — roofing, solar, HVAC, pool, ADU, new construction and 11 more — so you can pull "every roofing permit over $10,000 in Texas and California this week" in one run.
No API key, no login, no proxies, no scraping of fragile web pages: every row comes straight from a government open-data API and links back to its official source.
Who it's for
| You are… | Use it to… |
|---|---|
| Roofers, solar installers, HVAC, pool & remodeling contractors | See who just pulled a permit in your territory — homeowners and GCs about to spend money — and spot which competitors are winning jobs. |
| Lead-gen & marketing agencies | Build a daily, trade-filtered permit feed per client (one memory key per client, new permits only). |
| Building-material suppliers & distributors | Find contractors with active jobs and big projects (new construction ≥ $500k) before they buy materials. |
| Real-estate investors, lenders & insurers | Track new construction, ADUs and renovations by ZIP; spot neighbourhoods that are heating up. |
| Analysts, journalists, proptech builders | One normalized schema across 71 jurisdictions instead of 92 different portal formats. |
What you get (real rows from 2026-10-20)
| Issued | City | Trades | Value (USD) | Address | Contractor |
|---|---|---|---|---|---|
| 2026-10-20 | New York City | roofing, solar | 51,250 | 9521 150 ROAD, Queens | MOMENTUM SOLAR |
| 2026-10-20 | New York City | roofing, hvac, electrical | 114,997 | 1775 GRAND CONCOURSE, Bronx | OCS BUILDERS GROUP LLC |
| 2026-10-20 | Chicago | solar, remodel | 1,007,979 | 5220 S PULASKI RD | CODY LUDWIG |
| 2026-10-20 | Chicago | newConstruction | 94,000,000 | 1331 S WELLS ST | PEPPER CONSTRUCTION COMPANY |
| 2026-10-19 | Mesa | roofing, hvac, electrical | 171,826 | 50 W 7TH ST | ZONA RESTORATION LLC |
| 2026-10-19 | Cambridge | newConstruction | 640,000 | 44 Russell St, Cambridge, MA 02140 | (licensed CS-119631) |
Full record (JSON):
{"permitId": "NYC-B01471149-I1-GC","permitNumber": "B01471149-I1-GC","city": "New York City", "state": "NY", "cityCode": "NYC","issuedDate": "2026-10-20", "appliedDate": null,"permitType": "Initial Permit", "workType": "General Construction","description": "APPLICATION FILED HEREWITH A FOR FACADE RENOVATION AND ROOF REPLACEMENT TO THE REFERENCED2 1/2 STORY BUILDING, TWO (2) FAMILY BUILDING ...","tradeTags": ["roofing", "remodel"], "isNewConstruction": false,"estimatedValue": 17945, "status": "Permit Issued","address": "1183 EAST 12 STREET, Brooklyn", "zip": "11230","latitude": 40.620727, "longitude": -73.963377,"contractorName": "M. INT'L ENGINEERING PLLC", "contractorLicense": "GC 602538","contractorPhone": null, "contractorAddress": "85-18 212TH STREET","ownerName": null, "propertyUse": null, "housingUnits": null,"sourceName": "NYC Department of Buildings — DOB NOW: Build Approved Permits","sourceDataset": "https://data.cityofnewyork.us/d/rbx6-tga4","sourceUrl": "https://a810-bisweb.nyc.gov/bisweb/PropertyProfileOverviewServlet?bin=3180263","scrapedAt": "2026-10-22T07:22:30.210Z"}
The dataset has three ready-made table views: Permits overview, Contractor leads (contractor, license, phone, trades, value) and Locations (for maps / territory routing). Export to CSV, Excel, JSON, or pull it through the API, webhooks, Zapier/Make or the Apify MCP server.
Coverage (measured 2026-10-22)
71 jurisdictions · 92 datasets · 28 states · 727 distinct places (312 with fresh data in 27 states + 415 New Jersey municipalities from the lagged statewide feed).
Every source below was validated on 2026-10-22: newest permit within 60 days, stable public API (Socrata SODA, ArcGIS REST, CKAN or CARTO), and field mapping checked on up to 1,000 permits issued 2026-09-22 … 2026-10-22. Percentages are measured fill rates in that sample — the share of permits where the field is present. "Places in feed" counts the distinct towns appearing in county/state feeds over the last 60 days.
| State | Code | Jurisdiction | Platform | Datasets | Places in feed | Value | Contractor | Address | Lat/lng | Newest permit |
|---|---|---|---|---|---|---|---|---|---|---|
| AZ | MCPA | Maricopa | ArcGIS | 1 | 1 | 0% | 0% | 99% | 100% | 2026-09-14 |
| AZ | MESA | Mesa | Socrata | 1 | 1 | 81% | 47% | 99% | 100% | 2026-10-19 |
| AZ | SCOT | Scottsdale | ArcGIS | 1 | 1 | 75% | 80% | 100% | 40% | 2026-10-16 |
| AZ | TUC | Tucson | ArcGIS | 2 | 1 | 57% | 0% | 100% | 100% | 2026-10-21 |
| CA | ANA | Anaheim | ArcGIS | 1 | 1 | 42% | 82% | 100% | 100% | 2026-10-21 |
| CA | ATAS | Atascadero | ArcGIS | 1 | 1 | 0% | 0% | 100% | 100% | 2026-10-21 |
| CA | CAMP | Campbell | ArcGIS | 1 | 1 | 0% | 0% | 100% | 100% | 2026-10-16 |
| CA | COR | Corona | Socrata | 1 | 1 | 58% | 0% | 100% | 100% | 2026-10-15 |
| CA | LA | Los Angeles | Socrata | 3 | 1 | 33% | 0% | 100% | 100% | 2026-10-17 |
| CA | MARIN | Marin County | Socrata | 1 | 1 | 99% | 98% | 100% | 99% | 2026-10-21 |
| CA | ROSE | Roseville | Socrata | 1 | 1 | 100% | 0% | 0% | 0% | 2026-09-30 |
| CA | SDCO | San Diego County (unincorporated) | Socrata | 1 | 38 | 20% | 88% | 100% | 0% | 2026-10-21 |
| CA | SF | San Francisco | Socrata | 1 | 1 | 100% | 0% | 100% | 100% | 2026-10-20 |
| CA | SJ | San Jose | CKAN | 1 | 1 | 34% | 85% | 100% | 0% | 2026-10-19 |
| CO | DEN | Denver | ArcGIS | 2 | 1 | 88% | 99% | 100% | 100% | 2026-10-20 |
| CT | HFD | Hartford | ArcGIS | 1 | 1 | 98% | 0% | 100% | 0% | 2026-10-21 |
| DC | DC | Washington | ArcGIS | 1 | 1 | 0% | 48% | 100% | 100% | 2026-10-16 |
| FL | MIA | Miami | ArcGIS | 1 | 1 | 93% | 94% | 100% | 100% | 2026-10-20 |
| FL | ORL | Orlando | Socrata | 1 | 1 | 93% | 96% | 100% | 0% | 2026-10-21 |
| FL | PSL | Port St. Lucie | ArcGIS | 1 | 1 | 0% | 0% | 100% | 100% | 2026-10-16 |
| FL | TLH | Tallahassee | ArcGIS | 1 | 1 | 100% | 99% | 100% | 100% | 2026-10-19 |
| FL | TPA | Tampa | ArcGIS | 1 | 1 | 0% | 0% | 100% | 100% | 2026-10-16 |
| IL | CHI | Chicago | Socrata | 1 | 1 | 87% | 97% | 100% | 99% | 2026-10-20 |
| IL | COOK | Cook County (suburban municipalities) | Socrata | 1 | 68 | 66% | 67% | 0% | 0% | 2026-10-14 |
| IL | NRML | Normal | ArcGIS | 1 | 1 | 100% | 96% | 100% | 100% | 2026-09-30 |
| KS | OPKS | Overland Park | ArcGIS | 1 | 1 | 100% | 0% | 100% | 89% | 2026-10-13 |
| KY | LOU | Louisville | ArcGIS | 1 | 52 | 98% | 13% | 100% | 100% | 2026-10-21 |
| LA | BTR | Baton Rouge (East Baton Rouge Parish) | Socrata | 1 | 1 | 66% | 61% | 100% | 99% | 2026-10-20 |
| LA | NOLA | New Orleans | Socrata | 1 | 1 | 57% | 74% | 100% | 0% | 2026-10-22 |
| MA | BOS | Boston | CKAN | 1 | 1 | 99% | 1% | 100% | 98% | 2026-10-20 |
| MA | CAM | Cambridge | Socrata | 4 | 1 | 66% | 98% | 100% | 100% | 2026-10-20 |
| MD | BAL | Baltimore | ArcGIS | 1 | 1 | 87% | 0% | 100% | 100% | 2026-10-21 |
| MD | BACO | Baltimore County | ArcGIS | 3 | 1 | 38% | 1% | 100% | 100% | 2026-10-21 |
| MD | MOCO | Montgomery County | Socrata | 4 | 30 | 28% | 0% | 99% | 97% | 2026-10-22 |
| MI | DET | Detroit | ArcGIS | 2 | 1 | 37% | 57% | 100% | 100% | 2026-10-20 |
| MN | MPLS | Minneapolis | ArcGIS | 1 | 1 | 54% | 100% | 100% | 100% | 2026-10-20 |
| MO | KC | Kansas City | Socrata | 1 | 1 | 1% | 0% | 100% | 96% | 2026-10-16 |
| NC | DUR | Durham (City & County) | ArcGIS | 1 | 1 | 100% | 0% | 0% | 99% | 2026-10-16 |
| NC | MECK | Mecklenburg County (Charlotte & towns) | ArcGIS | 1 | 8 | 100% | 0% | 100% | 100% | 2026-10-20 |
| NC | RAL | Raleigh | ArcGIS | 2 | 1 | 27% | 95% | 100% | 100% | 2026-10-19 |
| NC | WAKE | Wake County (unincorporated & towns) | ArcGIS | 1 | 15 | 99% | 0% | 100% | 100% | 2026-10-20 |
| NJ | NJ | New Jersey (statewide) ⏳ | Socrata | 1 | 415 | 96% | 0% | 0% | 0% | 2026-08-07 |
| NV | HEN | Henderson | ArcGIS | 2 | 1 | 0% | 0% | 96% | 0% | 2026-10-20 |
| NY | NYC | New York City | Socrata | 1 | 1 | 100% | 100% | 100% | 100% | 2026-10-20 |
| OH | CIN | Cincinnati | Socrata | 1 | 1 | 94% | 99% | 100% | 41% | 2026-10-19 |
| OH | CLE | Cleveland | ArcGIS | 1 | 1 | 89% | 91% | 100% | 100% | 2026-10-17 |
| OH | COL | Columbus | ArcGIS | 1 | 1 | 41% | 93% | 100% | 100% | 2026-10-19 |
| OR | MED | Medford | ArcGIS | 1 | 1 | 93% | 99% | 100% | 100% | 2026-10-20 |
| OR | JACO | Phoenix & Talent | ArcGIS | 1 | 1 | 77% | 0% | 100% | 100% | 2026-10-13 |
| OR | PDX | Portland | ArcGIS | 1 | 1 | 100% | 0% | 100% | 100% | 2026-10-01 |
| OR | SLM | Salem | ArcGIS | 1 | 1 | 0% | 0% | 100% | 100% | 2026-10-20 |
| PA | PHL | Philadelphia | CARTO | 1 | 1 | 0% | 88% | 100% | 100% | 2026-10-21 |
| PA | PGH | Pittsburgh | CKAN | 1 | 1 | 96% | 50% | 100% | 100% | 2026-10-20 |
| SC | CHS | Charleston | ArcGIS | 1 | 1 | 100% | 0% | 15% | 75% | 2026-10-14 |
| SC | SUM | Sumter | ArcGIS | 1 | 3 | 0% | 0% | 100% | 100% | 2026-10-16 |
| SD | SXF | Sioux Falls | ArcGIS | 1 | 1 | 100% | 0% | 100% | 100% | 2026-10-17 |
| TN | NASH | Nashville | ArcGIS | 2 | 15 | 99% | 100% | 81% | 99% | 2026-10-20 |
| TX | ARL | Arlington | ArcGIS | 1 | 1 | 66% | 0% | 100% | 100% | 2026-10-21 |
| TX | AUS | Austin | Socrata+ArcGIS | 4 | 1 | 17% | 24% | 100% | 90% | 2026-10-20 |
| TX | CSTX | College Station | Socrata | 1 | 1 | 45% | 0% | 100% | 100% | 2026-10-14 |
| TX | COLLIN | Collin County | Socrata | 1 | 24 | 37% | 98% | 100% | 0% | 2026-10-21 |
| TX | FTW | Fort Worth | ArcGIS | 1 | 1 | 23% | 0% | 100% | 98% | 2026-10-21 |
| TX | SA | San Antonio | ArcGIS | 1 | 1 | 0% | 99% | 100% | 100% | 2026-10-16 |
| TX | SMTX | San Marcos | ArcGIS | 1 | 1 | 0% | 0% | 100% | 100% | 2026-10-21 |
| TX | TYLR | Tyler | ArcGIS | 1 | 1 | 33% | 95% | 100% | 100% | 2026-10-09 |
| VA | NOR | Norfolk | Socrata | 1 | 1 | 90% | 0% | 100% | 94% | 2026-10-20 |
| WA | BELL | Bellevue | ArcGIS | 1 | 1 | 0% | 97% | 100% | 100% | 2026-10-20 |
| WA | EVE | Everett | Socrata | 1 | 1 | 95% | 94% | 100% | 95% | 2026-10-20 |
| WA | PIERCE | Pierce County (unincorporated) | ArcGIS | 1 | 1 | 0% | 0% | 100% | 100% | 2026-10-15 |
| WA | SEA | Seattle | Socrata | 3 | 1 | 59% | 69% | 100% | 100% | 2026-10-20 |
| WA | TAC | Tacoma | ArcGIS | 1 | 1 | 76% | 0% | 99% | 100% | 2026-10-20 |
| ⏳ = lagged feed (New Jersey DCA publishes ~2–3 months behind; included only when you pick NJ or tick Include lagged statewide feeds; measured on 150 days). Maricopa (AZ) refreshes about monthly. |
County & multi-town feeds: Cook County IL (68 suburban towns via the Assessor), Collin County TX (24 cities via the appraisal district), San Diego County CA (38 communities, unincorporated), Montgomery County MD (30), Louisville Metro KY (52 incl. small cities), Nashville-Davidson TN (15), Wake County NC (15), Mecklenburg County NC (8), Sumter SC (3), New Jersey statewide (415). Use the Municipalities input to filter them to a town. Note: a county feed contains only the permits that the county (or its assessor) records — cities that run their own permit office may be partly missing from it.
Feeds are refreshed by the jurisdictions themselves, mostly daily (a few lag 1–3 days).
Input
| Field | What it does |
|---|---|
cities | Jurisdiction codes from the table. API also accepts names: "Boston", "Detroit". |
municipalities | Town names inside county/state feeds, e.g. ["Plano","Bethesda","Hoboken"] (also matches single-city datasets of that name). |
allJurisdictions | With no city/state/municipality chosen the actor queries a fast sample of 20 big datasets; tick this to query all 92. |
includeLaggedSources | Add the New Jersey statewide feed (≈2–3 months behind). |
states | 2-letter states, e.g. ["CA","TX"]. |
zipCodes | 5-digit ZIPs. |
daysBack / issuedFrom / issuedTo | Issue-date window (default: last 7 days). |
trades | Any of: roofing, solar, hvac, electrical, plumbing, pool, adu, newConstruction, demolition, remodel, windowsDoors, siding, signage, fence, masonry, fireProtection, deck. |
minValue | Minimum declared project value (USD). |
newConstructionOnly | New buildings / dwellings only. |
keyword | Text match on description/type (server-side, fast). |
maxResults | Cap (default 100). Shared fairly across datasets; unused share goes to datasets with more. |
newSinceLastRun + stateKey | Daily feed: skip permits already delivered under this memory key. |
sourceTimeoutSecs | Time budget; a slow city portal is cut off and the run still succeeds. |
Example — roofing & solar jobs over $10k in California and Texas, last 14 days:
{ "states": ["CA", "TX"], "trades": ["roofing", "solar"], "minValue": 10000, "daysBack": 14, "maxResults": 500 }
Example — daily new-construction feed for a supplier in Boston/Cambridge:
{ "cities": ["BOS", "CAM"], "newConstructionOnly": true, "daysBack": 3, "newSinceLastRun": true, "stateKey": "boston-supplier" }
Output fields
| Field | Type | Description |
|---|---|---|
| permitId | string | Unique, stable ID (CITY-permitNumber) — use it to dedupe in your CRM |
| permitNumber | string | Permit number as published |
| city, state | string | Municipality of the permit (for county/state feeds: the town on the record) |
| cityCode, jurisdiction | string | Permit-issuing jurisdiction code and name (e.g. COOK, "Cook County (suburban municipalities)") |
| issuedDate, appliedDate | date | YYYY-MM-DD |
| permitType, workType | string | As published by the city |
| description | string | Work description |
| tradeTags | string[] | Normalized trades (see list above) |
| isNewConstruction | boolean | New building / dwelling (city's own new-work class + text, minor items like decks and fences excluded) |
| estimatedValue | number | Declared project value, USD |
| status | string | Permit status |
| address, zip, latitude, longitude | Site location (coordinates validated) | |
| contractorName, contractorLicense, contractorPhone, contractorAddress | string | Where the city publishes them |
| ownerName | string | Property owner only when it is an organisation (LLC, Inc, trust, church, city…). Private individuals are never output. |
| propertyUse, housingUnits | Use / occupancy and units added | |
| sourceName, sourceDataset, sourceUrl | string | Official source; sourceUrl is the permit's own page where the city has one |
| scrapedAt | datetime | When this run fetched it |
The run's key-value store also holds OUTPUT_SUMMARY: per-city status (ok / partial / failed), rows scanned, results, seconds, and duplicates removed.
Pricing
$1.50 per 1,000 permits (pay per result — you pay only for permits delivered; no start fee). 100 permits = $0.15. A daily feed of 200 new permits ≈ $9/month.
How that compares (prices read on 2026-10-22):
| Option | Price per 1,000 permits | Notes |
|---|---|---|
| This actor | $1.50 | 71 jurisdictions / 727 places, trade tags, contractors, per-source status |
| Most-used Apify permit actors | $2.00 – $10.00 (+ start fees up to $0.05/run) | e.g. $2 (pink_comic, paxiq, civic-data-tools), $3 (owlabee, + $0.01 per jurisdiction), $5 (intelscrape), $8, $10 |
| Shovels | $599/month for 25,000 records (≈ $24 / 1,000) | National coverage, subscription |
| Gryd by BuildZoom | from $125–150/month; API only on custom Premium | Subscription |
| ConstructConnect | from $129/month per market | Commercial bid projects |
Why this one
- Official sources only — government open-data APIs, every row links back. No scraping that breaks next week.
- Trade tags that actually work — 17 normalized trades matched on type, work class and description (85%+ of permits tagged), with a smart new-construction flag that ignores "new deck" and "new fence".
- Contractor leads view — contractor name, license and phone where published (NYC, Austin, Orlando, Mesa, Raleigh, Tallahassee, San Diego County, Anaheim, Nashville, Cleveland, Miami, Denver…).
- Real breadth, honestly counted — 71 permit-issuing jurisdictions in 28 states. Some Store actors advertise "248 cities" while most runs fail; every source here passed a freshness and field check on 2026-10-22, and the table shows the measured fill rates.
- Never fails because one city is down — each portal is isolated with retries and a time budget; you still get every other city, and the summary tells you exactly which one had a problem.
- Fair results — your
maxResultsis shared across cities, so one huge city (NYC, LA) can't crowd out the rest. - Built for daily feeds —
newSinceLastRunmemory per saved search, stablepermitId, dedup across datasets. - Fast — filters (date, value, keyword) run on the city servers; a default run (fast 20-dataset sample) finishes in seconds; all 92 datasets in about a minute.
FAQ
How fresh is the data? As fresh as each city publishes — most update daily; set daysBack to 3–7 for a daily feed.
Why is value / contractor empty for some cities? The city does not publish it (see the coverage table). We never guess or fill in data.
Does it include homeowner names or phone numbers? No. Only organisation owner names (companies, trusts, institutions) and contractor contact details exactly as the city publishes them.
Can I get history? Yes — set issuedFrom / issuedTo (most feeds go back years) and raise maxResults.
A city I need is missing. Open an issue on the Issues tab with the city name; cities with an official open-data permit feed are added first (each source is one config entry).
Why not every US city? There are ~19,000 US municipalities, but only a few hundred publish permit-level records through a public API, and only New Jersey publishes a statewide permit-level file. We searched the Socrata catalog, ArcGIS Online/Hub, CKAN and OpenDataSoft portals exhaustively (2026-10-22) and include every fresh, stable, US building-permit feed we found. Examples of big-city feeds we checked and had to reject: Phoenix (open-data file last updated 2023), Dallas (stale since 2020), Las Vegas (only 3 permits in the last 30 days), Honolulu (ends June 2025), Gainesville and Somerville (stale). Nationwide coverage beyond this needs paid aggregators or scraping login-protected permit portals, which this actor deliberately does not do.
Is this legal to use? The data is published by the governments as open data. You are responsible for complying with marketing laws (e.g. TCPA, CAN-SPAM, do-not-call) when you contact anyone.
Changelog
See ./CHANGELOG.md. v1.1 (2026-10-22): 17 → 71 jurisdictions (92 datasets, 28 states), generic ArcGIS/Socrata/CKAN adapters, municipality filter, county & statewide feeds. v1.0: 6 → 17 jurisdictions, new schema, filters, per-source isolation.
Data source: official open-data portals of the jurisdictions listed above. This actor is not affiliated with any government agency. Data is provided as published; check the official record (sourceUrl) before relying on it.