US Building Permits: 10 cities, one schema (open data) avatar

US Building Permits: 10 cities, one schema (open data)

Pricing

from $2.00 / 1,000 permit records

Go to Apify Store
US Building Permits: 10 cities, one schema (open data)

US Building Permits: 10 cities, one schema (open data)

Returns recently issued building permits from the open-data portals of New York City, Chicago, San Francisco, Los Angeles, Austin, Seattle, New Orleans, Montgomery County MD, Cincinnati and Baton Rouge in one normalized schema: permit number, type, description, status, address, coordinates...

Pricing

from $2.00 / 1,000 permit records

Rating

0.0

(0)

Developer

Akshay Irudayaraj

Akshay Irudayaraj

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

US Building Permits (10 cities, one schema)

Recently issued building permits from ten US open-data portals, returned in a single normalized table. Pick the cities, a date range and optional keywords such as solar, roof, demolition or pool, and get permit number, type, work description, status, address with coordinates, applied/issued/expiry dates, estimated project cost and the contractor company where the city publishes it.

Sources (all official open-data portals, no login, no browser):

KeySourceUpdated
nycNYC DOB NOW: Build – Approved Permitsdaily
chicagoCity of Chicago Building Permitsdaily
san-franciscoSan Francisco Building Permitsdaily
los-angelesLADBS Building Permitsdaily
austinCity of Austin Issued Construction Permitsdaily
seattleSeattle Building Permitsdaily
new-orleansCity of New Orleans Building Permitsdaily
montgomery-county-mdMontgomery County MD Residential and Commercial Permitsdaily
cincinnatiCity of Cincinnati Building Permitsdaily
baton-rougeEast Baton Rouge Parish Building Permitsdaily

Each city publishes different columns; this Actor maps them onto the same fields so you can build one pipeline for all of them. Need another city? Open an issue with a link to its open-data permit dataset.

What you get

{
"source": "austin",
"sourceName": "City of Austin Issued Construction Permits",
"state": "TX",
"city": "AUSTIN",
"permitNumber": "2026-133771 PP",
"permitType": "Plumbing Permit",
"permitSubtype": "C-1000 Commercial Remodel / Remodel",
"description": "Interior renovation of a two-story multi-family building...",
"status": "Active",
"address": "1105 CLAYTON LN UNIT 207",
"zip": "78723",
"latitude": 30.3043,
"longitude": -97.7013,
"appliedDate": "2026-09-29T00:00:00",
"issuedDate": "2026-10-22T00:00:00",
"expiresDate": "2027-04-20T00:00:00",
"estimatedCost": 185000,
"contractorCompany": "ABC Plumbing LLC",
"recordUrl": "https://abc.austintexas.gov/web/permit/public-search-other?t_detail=1&t_selected_folderrsn=...",
"datasetUrl": "https://data.austintexas.gov/d/3syk-w9eu",
"scrapedAt": "2026-10-22T19:04:11+00:00"
}

Columns a city does not publish are null. Names of individuals (owners, applicants, contacts) are never included in the normalized fields; contractorCompany is filled only from columns that hold a business name.

Input

FieldTypeNotes
citiesarraySource keys from the table above. Empty = all.
issuedAfterYYYY-MM-DDDefault: 7 days ago.
issuedBeforeYYYY-MM-DDExclusive upper bound.
keywordsarrayWork description contains any keyword (case-insensitive).
minEstimatedCostintegerSkip small jobs. Ignored by sources without a cost column.
includeRawRecordbooleanAttach the original row under raw.
maxPermitsPerCity / maxPermitsintegerCaps (0 = unlimited).
socrataAppTokenstringOptional; only needed for very large pulls.

Example – solar and roofing leads from the last 30 days, three cities:

{
"cities": ["chicago", "austin", "seattle"],
"issuedAfter": "2026-09-22",
"keywords": ["solar", "roof", "reroof"],
"minEstimatedCost": 5000
}

Pricing

Pay per event: $0.002 per permit saved ($2 per 1,000), plus Apify's standard Actor start fee. Filters are applied server-side at the portal, so you are not charged for permits you filtered out. A daily run over all ten cities with a 1-day window is typically 1,000–3,000 permits, i.e. $2–6; narrow it with keywords or minEstimatedCost to pay cents.

Use cases

  • Contractor and supplier lead generation: new roofs, HVAC, solar, pools, demolitions, with the address and project value.
  • Real-estate and construction analytics: permit volume and value by city, ZIP or type over time.
  • Property research: what work was permitted at an address.
  • Proptech and insurance data pipelines: a single schema instead of ten.

How it works

Each source is a Socrata SODA endpoint (https://<portal>/resource/<id>.json). The Actor sends one SoQL query per page ($where on the issued-date column, keyword like filters, $order newest first, 1,000 rows per page) with polite rate limiting and retries, then maps the rows to the shared schema. Open-data portals occasionally lag a day or two behind the city's permit system.

FAQ

Why is status or estimatedCost missing for a city? That portal does not publish the column (for example Baton Rouge has no status field).

Can I get owner or applicant names? No. The normalized output excludes personal names by design; use includeRawRecord only if you need other city-specific columns and have a lawful basis for processing whatever the city publishes.

Dates look like 2026-10-22T00:00:00 without a timezone. They are local civil dates as published by each city.