Building Permits Scraper - 12 US Cities Open Data
Pricing
from $1.00 / 1,000 permit extracteds
Building Permits Scraper - 12 US Cities Open Data
Scrape building & construction permits from 12 US cities' open-data portals (Socrata + ArcGIS) into one clean schema: permit number, type, status, issue date, address, work description, valuation, contractor & applicant. Free JSON APIs, no key. Filter by city, date & permit type.
Pricing
from $1.00 / 1,000 permit extracteds
Rating
0.0
(0)
Developer
Oaida Adrian
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Building Permits Scraper — 12 US Cities Open Data
Pull building & construction permits from 12 US cities into one clean, normalized schema — no API key, no account, no anti-bot. Every city publishes permits on its own open-data portal with its own column names; this actor translates all of them into the same record, so you can query a dozen jurisdictions as one feed.
Built for contractors, roofers, solar & HVAC installers, remodelers, suppliers and real-estate investors who want fresh permit leads and market intelligence — and for analysts tracking construction activity.
Why this actor
- No API keys, no login, no proxy budget — every source is an official government open-data API (Socrata or ArcGIS FeatureServer).
- 12 cities, one schema —
city,permit_number,permit_type,status,issue_date,application_date,address,work_description,valuation,contractor_name,applicant,latitude,longitude,source,source_type,source_url,scraped_at. - Server-side filtering — date and permit-type filters are applied by the source APIs, so runs are fast and cheap.
- Honest nulls — not every city publishes every field (e.g. Chicago has no status column, Cincinnati has no coordinates). Missing values come back as
null, never faked. - Pay per permit — a single low per-result price, plus a one-time start fee.
Supported cities
| City | Source | Portal |
|---|---|---|
| Chicago, IL | Socrata | data.cityofchicago.org |
| New York, NY | Socrata | data.cityofnewyork.us (DOB NOW) |
| Los Angeles, CA | Socrata | data.lacity.org |
| San Francisco, CA | Socrata | data.sfgov.org |
| Austin, TX | Socrata | data.austintexas.gov |
| Seattle, WA | Socrata | data.seattle.gov |
| Cincinnati, OH | Socrata | data.cincinnati-oh.gov |
| Mesa, AZ | Socrata | citydata.mesaaz.gov |
| Montgomery County, MD | Socrata | data.montgomerycountymd.gov |
| Baton Rouge, LA | Socrata | data.brla.gov |
| Washington, DC | ArcGIS | maps2.dcgis.dc.gov |
| West Sacramento, CA | ArcGIS | gis.cityofwestsacramento.org |
Input
{"cities": ["austin", "los_angeles", "baton_rouge"],"dateFrom": "2025-01-01","permitType": "roof","maxItems": 500}
| Field | Type | Description |
|---|---|---|
cities | array | City keys to scrape (multi-select). Leave empty to scrape all supported cities. |
dateFrom | date | Only permits issued on/after this date (YYYY-MM-DD). Applied server-side per city. |
permitType | string | Keyword filter matched against permit type and work description — e.g. roof, solar, pool, electrical, demolition, new construction. |
maxItems | integer | Max permits per city (3 cities × 500 = up to 1,500 rows). Default 1,000. |
Output (one item per permit)
{"city": "Austin, TX","cityKey": "austin","permit_number": "2026-104132 BP","permit_type": "Building Permit - New","status": "Active","issue_date": "2026-07-10","application_date": "2026-04-20","address": "4102 CAT HOLLOW DR AUSTIN TX 78731","work_description": "New construction in-ground pool and spa.","valuation": 0.0,"contractor_name": "LOHR Homes","applicant": "Gil Lohr","latitude": 30.3623778,"longitude": -97.76570347,"source": "data.austintexas.gov","source_type": "socrata","source_url": "https://data.austintexas.gov/d/3syk-w9eu","scraped_at": "2026-07-10T21:56:20Z"}
Use cases
- 📈 Lead generation — a roofing company pulls every roofing permit issued since January across Austin, LA and Baton Rouge: a ready-made call list.
- 🏗️ Market intelligence — track construction activity and valuations by city, type and time.
- 🕵️ Property research — enrich addresses with permit history for due diligence.
- ⏰ Automation — run on a schedule (e.g. weekly) to watch new permits in your territory, pipe results into a CRM or a Telegram alert.
Run it from your code
Python (Apify SDK):
from apify_client import ApifyClientclient = ApifyClient("YOUR-APIFY-TOKEN")run_input = {"cities": ["austin", "baton_rouge"],"dateFrom": "2026-01-01","permitType": "roof",}run = client.actor("darknezz/building-permits-scraper").call(run_input=run_input)for permit in client.dataset(run["defaultDatasetId"]).iterate_items():print(permit["permit_number"], permit["address"], permit["contractor_name"])
cURL (one-liner, sync):
curl -X POST "https://api.apify.com/v2/acts/darknezz~building-permits-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"cities":["austin"],"dateFrom":"2026-06-01","permitType":"solar"}'
Worked example — a real run for permitType: "pool" in Austin returns rows such as 2026-104132 BP — "New construction in-ground pool and spa." at 4102 Cat Hollow Dr, contractor LOHR Homes, valuation $0.0 (city-reported), issued 2026-07-10. Every row carries the source portal URL so you can verify it in one click.
FAQ
Do I need an API key? No. All 12 sources are public government open-data APIs.
Why is a field null? That city does not publish it in a machine-readable form (e.g. Cincinnati has no coordinates, Chicago no status column). Nothing is invented.
How fresh is the data? Each city refreshes its own portal on its own schedule — most are daily. scraped_at on every row tells you exactly when the record was pulled.
Can I add a city? Yes — the actor is built as a config table. Point a new city at its Socrata dataset or ArcGIS FeatureServer, list the date field and map columns; no fetch-layer changes needed.
Which permit types can I filter by? Any text that appears in the city's permit-type or work-description columns — roof, solar, pool, electrical, demolition, new construction, alteration, etc. Filtering is a keyword match, so combine it with dateFrom to scope tightly.
Is this a consumer report? No. This data is aggregated from public government records for market research and lead generation. It must not be used for any FCRA-covered purpose (credit, employment, insurance, or tenant screening).
Limitations
- Not every city is covered — the actor ships with 12 cities; other jurisdictions need a config entry (see "Can I add a city?").
- Some old ArcGIS servers are slow — a few cities respond best with lighter query parameters; the actor automatically falls back to a simpler query when a server rejects the first form.
- Placeholder permits — some cities pre-issue "not yet issued" placeholder rows; these are detected and skipped.
- Empty results are free — if your filter matches nothing, the run succeeds with zero items and you are charged nothing beyond the start fee.
Pricing
Pay per permit extracted (permit-extracted event) + a one-time start fee. No charge for empty results.