Detroit BSEED Permits, Inspections & Blight Tickets avatar

Detroit BSEED Permits, Inspections & Blight Tickets

Pricing

from $0.03 / 1,000 detroit bseed records

Go to Apify Store
Detroit BSEED Permits, Inspections & Blight Tickets

Detroit BSEED Permits, Inspections & Blight Tickets

Fifteen Detroit BSEED datasets in one actor: permits, inspections, rental registrations, compliance certificates, business licences and 909k blight tickets. Filter by date, ZIP, council district, parcel, address, type or status; aggregate by the same dimensions.

Pricing

from $0.03 / 1,000 detroit bseed 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

Fifteen public datasets from Detroit's Buildings, Safety Engineering and Environmental Department (BSEED) in one actor - 1.31 million records covering permits, inspections, rental registrations, compliance certificates, business licences and blight enforcement.

Low cost

From $0.00005 per record, down to $0.00003 at Gold

Pay only for the records you receive. A 50-record search costs $0.0025 at the entry tier.

Datasets

corpusRecordsDate field
blight-tickets909,816ticket issued
trades-permits121,233issued
building-permits47,741issued
rental-registrations44,510issued
demolition-inspections40,146inspection
plan-reviews39,870submitted
commercial-compliance27,776latest inspection
rental-compliance23,341current registration issued
demolition-permits16,281issued
presale-inspections15,597inspection
residential-compliance12,609issued
commercial-certs2,948issued
occupancy-certificates1,960issued
vacant-property1,536issued
business-licenses1,475expiration

Counts measured 2026-10-21.

{
"corpus": "blight-tickets",
"dateFrom": "2025-01-01",
"dateTo": "2025-12-31",
"zip": "48207",
"maxResults": 500
}

Filters: dateFrom / dateTo (the dataset's own date field), zip, councilDistrict, neighborhood, parcelId, address (case-insensitive substring), type and status. Filters that a dataset does not carry are rejected with a message naming the field, never silently ignored.

Where the dataset carries them, records include the property address, parcel, neighbourhood, council district, ZIP, coordinates, the party of record and the type/status. A details object carries the remaining non-contact source columns for that dataset.

Aggregate

{
"corpus": "building-permits",
"dateFrom": "2025-01-01",
"mode": "aggregate",
"groupBy": "zip"
}

One row per group with groupCount and totalMatched. Dimensions: zip, councilDistrict, neighborhood, type, status, parcelId. Rollups above 5,000 groups fail loudly.

Data notes

  • Impossible dates are flagged, not dropped. The city source contains a small number of impossible event dates (blight tickets range from 1824 to 8535). Those records are delivered with dateSuspect: true so a date filter or downstream model can decide what to do with them.
  • Public records only. Personal contact details and owner mailing addresses are not emitted. Property-owner names and contractor names of record are public and stay.
  • Freshness is checked against each layer's last data edit before any record is delivered; a stale layer fails the run instead of returning quietly old data.
  • bseed_lead_clearance_reports is frozen at 2022-01-07 at the source and is not included.