WA Seattle Building Permits avatar

WA Seattle Building Permits

Pricing

$0.10 / 1,000 wa seattle building permit records

Go to Apify Store
WA Seattle Building Permits

WA Seattle Building Permits

Seattle, WA building permits (public open data, 193k records): the city's construction-permit register - estimated project cost, housing units added/removed + housing-category labels, permit class, and plan-review cycle depth. Filter by type/status/category/cost or aggregate.

Pricing

$0.10 / 1,000 wa seattle building permit records

Rating

0.0

(0)

Developer

Wenhao Yang

Wenhao Yang

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

WA Seattle Building Permits - The City's Construction-Permit Register

The City of Seattle publishes its construction-permit register - every permit the city's construction-permit system has processed since 1986, active and historical - as open data. This actor turns that register into a charged-per-record lookup and filter tool that carries the depth the national building-permit aggregators don't: the housing change each permit creates, the estimated project cost, and how long the city's plan review actually took.

Built for: construction & development research (where Seattle's housing is being built, at what density, and at what scale), property diligence, contractor / permit-activity lookups by address or zoning, and project-cost benchmarking.

What it covers

192,845 permits - the full register since 1986, live through this week:

StatusPermits
Completed133,900
Expired13,625
Additional Info Requested10,139
Closed8,967
Issued8,378
Withdrawn5,161
... plus the in-progress pipeline (Reviews In Process / Ready for Issuance / Scheduled)

Each permit carries:

  • estimated project cost - filled on 82% of the file and a real numeric column, so you can range-filter it server-side: 70,008 permits at $100k+, 11,040 at $1M+
  • the housing change the permit creates - housing units / units added / units removed, plus the city's own program labels: Middle Housing (19,039), Large Multifamily (1,646), Pre-Approved DADU Plans, and the dwelling-unit type (detached single-family, townhouse, accessory dwelling, apartment...) where the city records it
  • permit class - Residential (134,017) vs Non-Residential (51,913), plus the finer class (Single Family/Duplex, Commercial, Multifamily, Institutional, Industrial)
  • the plan-review cycle depth - number of plan-review cycles (filled on 94% of the file), and - for the ~33k permits whose application went through a full plan review - total plan-review days, the review-complete and ready-to-issue dates. Seattle is the only city feed we've seen that publishes this review-timeline; it's a real signal for how long a permit will sit in review
  • the applied / issued / expires / completed date chain, permit type (building / demolition / ECA-and-shoreline / roof / grading), zoning designation, street address + latitude/longitude, and the work description

Status & live work

Statuses are the city's own clean words. Completed (133,900) is the done pile; the genuinely live lane is the in-progress family - Reviews In Process, Ready for Issuance, Scheduled, Issued - plus Additional Info Requested (10,139, the city waiting on the applicant).

Live work has its own lane: the recent mode hands you every permit issued in the last 30 days, and the default pull is the most recently filed permits, so you're watching the live pipeline (this week's new filings are mostly Addition/Alteration and New work sitting in review) rather than digging through a 193k-row archive.

Typical questions

  • "What's Seattle issuing this month - how many permits, and what's the mix?"
  • "Every Middle Housing / Large Multifamily permit in the register - where is the city adding density?"
  • "Show recent permits valued over $1M still in review."
  • "How long did plan review take on that 12-unit building - how many review cycles?"
  • "What's been pulled on this address / in this zoning?"
  • "Aggregate the register by housing category or permit class."

Inputs

InputWhat it does
moderows (default) / recent (issued last 30 days) / aggregate
permitTypebuilding / demolition / roof / grading / ECA-shoreline
statusCompleted / Issued / Reviews In Process / Ready for Issuance / ... Blank = any
permitClass / housingCategoryResidential/non-residential + the city's housing labels
address / zoning / contractorwhere the work is (contractor is filled on ~17% of the file)
costMin/Toestimated project cost range (numeric, filtered server-side)
housingUnitsMinminimum housing units carried by the permit (multifamily finder)
issuedFrom/To / appliedFrom/Todate-range filters
planReviewedOnlyonly permits that ran a full plan review (so the review-days fields are populated)
groupByaggregate over type / class / status / housing category
maxResultscap records (default 200)

Default run = the 200 most recently filed permits - fast for the daily auto-test. For a targeted query add a filter; for a broad view use aggregate (a handful of summary rows, not a 193k-row dump).

Low cost

From $0.0001 per record - billed only for the rows you use, at the platform floor. Cost scales with what you pull, not with the size of the register - and because each record is metered individually there's no per-run charge cap to hit on a big pull.

Seattle's register is a "just download the CSV" dataset that hides real traps: the filing date is missing on 27% of rows, and Seattle's engine sorts empty dates first, so a naive "newest first" pull hands you a pile of date-less archive rows instead of live work; the contractor field is filled on only 17% of the file and there is no honest way to know which rows carry it without counting every column; the housing density labels and the plan-review timeline each live on only part of the file, so claiming them as whole-corpus columns over-sells what's there. Normalizing that into a register where a cost / housingUnitsMin / recent / planReviewedOnly query returns exactly the permits you mean - newest filings first - is the actual product. Every pull is integrity-checked against the feed's known shape, so a degraded source fails loudly instead of returning bad rows.

Source