Permitline republishes public open-data records from the DC Department of Buildings, ingested nightly at 07:00 UTC from the District's ArcGIS Open Data DC feed. DC publishes issued permits only — no application date and no project valuation. This page documents what we ingest, how the timestamps are defined, and the limits of our current coverage.
What we ingest
Each nightly run pulls the whole "Building Permits - Last 30 Days" layer from the DCRA feed service on the District government's ArcGIS open-data infrastructure. The layer is the source of record; we map selected fields onto Permitline's Permit model.
The upstream catalog is opendata.dc.gov.
| Upstream (ArcGIS) | Permitline field |
|---|---|
| PERMIT_ID | sourceId / id (prefixed "DC-" on store) |
| PERMIT_SUBTYPE_NAME (fallback PERMIT_TYPE_NAME, then PERMIT_CATEGORY_NAME) | workType |
| ISSUE_DATE | filedAt (with dateBasis "issued") |
| APPLICATION_STATUS_NAME | status (verbatim; "UNKNOWN" fallback when blank) |
| FULL_ADDRESS | address |
| WARD | jurisdiction ("DC — Ward N", or "Washington DC" when blank) |
| DESC_OF_WORK | scopeText (contact details scrubbed; present on some records only) |
| (nothing — DC publishes no valuation) | valueCents (always null for DC; FEES_PAID is a permit fee, not a project value, and is deliberately not stored here) |
| (cron's fetchedAt) | dataAsOf |
Data-as-of semantics
dataAsOf is our ingest timestamp.Every Permit row carries a dataAsOf timestamp. This is the moment our ingest job parsed the row from the upstream ArcGIS response — not the ArcGIS ISSUE_DATE (that becomes filedAt), and not any upstream last-updated metadata.
The dataAsOf stamp is rendered per record on /permits and on the detail page for each permit.
ISSUE_DATE). DC publishes no application date anywhere in its open data, so DC records carry dateBasis: "issued".sourceId is idempotent: we update the existing row and refresh dataAsOf.Listing window
The nightly cron (07:00 UTC) pulls the entire DCRA "Building Permits - Last 30 Days" layer and upserts it. The public listing on /permits defaults to the last 30 days, with a 7 / 30 / 90-day switcher.
Whole-layer pull, one cron run per night. The layer is already scoped to 30 days, so there is no date arithmetic and no timezone handling. Paged at the layer's 2,000-record cap; upserts are idempotent.
Last 30 days by default. Switch to 7 or 90 days from the listing header. The filter is applied server-side in the /api/permits handler.
What is NOT covered
We publish Washington DC and Montgomery County building permits nightly. Prince George's County, Fairfax, and Arlington remain on the Phase 2 roadmap and are not yet ingested or listed.
Disclaimer
Permitline republishes public open-data records from the issuing jurisdictions. Records are provided "as-of" the date stamped on each entry and are not authoritative. Always verify scope, valuation where the jurisdiction publishes one (DC publishes none), contractor information, and status with the issuing jurisdiction (DC Department of Buildings or Montgomery County Department of Permitting Services, depending on the record) before bidding, quoting, or performing work. Permitline never contacts permit applicants; all marketing flows go only to opted-in subscribers, with unsubscribe and physical address per CAN-SPAM.