US Code Violations Tracker: NYC, Chicago, LA, Detroit avatar

US Code Violations Tracker: NYC, Chicago, LA, Detroit

Pricing

Pay per usage

Go to Apify Store
US Code Violations Tracker: NYC, Chicago, LA, Detroit

US Code Violations Tracker: NYC, Chicago, LA, Detroit

Housing and building code violations from official open data (NYC HPD and DOB, Chicago, Los Angeles, Detroit blight tickets). Filter by keyword, ZIP and status, with a new-since-last-run mode for property investor, pest control and remediation leads.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Open Registry Data

Open Registry Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

22 days ago

Last modified

Categories

Share

US Code Violations Scraper: NYC, Chicago, Los Angeles, Detroit

Pull building, housing and blight code violations from official city open-data portals into one normalized schema: NYC HPD housing violations, NYC DOB violations, Chicago Department of Buildings violations, Los Angeles (LADBS) code enforcement cases, and Detroit blight tickets. No login, no API key, no browser. Filter by keyword (mold, rodent, lead, heat, fire escape...), ZIP code, status and date range. Diff mode returns only violations that are new since the last run.

Keywords: code violations scraper, building violations, housing code violations, HPD violations, DOB violations, Chicago building violations, LADBS code enforcement, Detroit blight tickets, distressed property leads, motivated seller leads, real estate investor leads, property compliance data, open data API.

Use cases

  • Real estate investors and wholesalers: build distressed / motivated-seller lead lists from fresh violations and unpaid blight fines (Detroit includes the fine and balance due).
  • Contractors and service companies: pest control (rodent/mice), mold remediation, roofing, windows, boilers, elevators, and fire-escape repair, each targeted at the exact address that was just cited.
  • Property managers, lenders and insurers: monitor a portfolio for new violations (filter by ZIP, run in diff mode).
  • Tenant advocates, journalists and researchers: track enforcement trends across cities.

Datasets (datasets)

keyCityOfficial source
nyc-hpdNew YorkHPD Housing Maintenance Code Violations (data.cityofnewyork.us wvxf-dwi5)
nyc-dobNew YorkDOB Violations (3h2n-5cm9)
chicagoChicagoBuilding Violations (data.cityofchicago.org 22u3-xenr)
la-open / la-closedLos AngelesLADBS Code Enforcement Cases, open / closed (data.lacity.org u82d-eh7z, rken-a55j)
detroitDetroitBlight Tickets (City of Detroit ArcGIS open data)
customSocrataanyPoint it at another city's Socrata dataset (advanced)

Input example

{ "datasets": ["chicago", "nyc-hpd"], "keywords": ["mold", "rodent", "mice"], "lookbackDays": 7 }
{ "mode": "diff", "datasets": ["detroit"], "zipCodes": ["48227"], "stateKey": "detroit-48227" }

Output (normalized, one item per violation)

dataset, city, violationId, date, address, borough (or LA area / Detroit neighborhood), zip, category, code, description, status, statusDetail, statusDate, parcelId, buildingId, latitude, longitude, source (+ fineAmount, balanceDue for Detroit; raw when includeRaw is on; changeType, firstSeenAt in diff mode).

Example output (real records, Oct 2026 test run):

[
{
"dataset": "nyc-hpd",
"city": "New York, NY",
"violationId": "19281631",
"date": "2026-10-05",
"address": "179 EAST 54 STREET Apt 1R",
"borough": "BROOKLYN",
"zip": "11203",
"category": "Class A",
"code": "556",
"description": "§ 27-2013 ADM CODE PAINT WITH LIGHT COLORED PAINT TO THE SATISFACTION OF THIS DEPARTMENT ALL PEELING PAINT SURFACES IN THE BATHROOM , THE KITCHEN LOCATED AT APT 1R, 1st STORY, 1st APARTMENT FROM NORTH AT EAST",
"status": "Open",
"statusDetail": "VIOLATION OPEN",
"statusDate": "2026-10-05",
"parcelId": "3046600039",
"buildingId": "3101545",
"latitude": 40.654619,
"longitude": -73.926774
},
{
"dataset": "chicago",
"city": "Chicago, IL",
"violationId": "7554231",
"date": "2026-10-06",
"address": "739 W BELMONT AVE",
"borough": null,
"zip": null,
"category": "CONSERVATION",
"code": "CN104015",
"description": "REPLCE WINDOW PANES, PLEXGLAS — SOUTH ELEVATION AT GRADE / PANES - BROKEN LOUVERED WINDOWS. 14X-3-303.13",
"status": "OPEN",
"statusDetail": "FAILED",
"statusDate": "2026-10-06",
"parcelId": null,
"buildingId": "7945",
"latitude": 41.9398831797,
"longitude": -87.6483880441
},
{
"dataset": "detroit",
"city": "Detroit, MI",
"violationId": "26073643DAH",
"date": "2026-10-06",
"address": "15261 FORRER",
"borough": "Grand River-St Marys",
"zip": "48227",
"category": "Buildings, Safety Engineering & Env Department",
"code": "8-15-472",
"description": "Failure to maintain or properly install electrical equipment, wiring, or appliance in a safe or approved manner one- or two- family dwelling or building",
"status": null,
"statusDetail": "NO PAYMENT APPLIED",
"statusDate": "2026-10-23",
"parcelId": "22054455.",
"buildingId": null,
"fineAmount": 50.0,
"balanceDue": 80.0,
"latitude": 42.401276967,
"longitude": -83.201938682
}
]

"New since last run" (diff mode)

Set Mode = diff and schedule the actor daily or weekly. Each run looks at a rolling date window and returns only records it has never returned before, tagged changeType: "new" and firstSeenAt. Seen IDs are stored in a named key-value store (stateStoreName, separate stateKey per saved search), so the state survives between scheduled runs. On the first run you can output the whole window (flagged baselineRun: true) or store a silent baseline (firstRunBehaviour: baselineOnly). Pair it with an Apify integration (Slack, email, Google Sheets, Zapier, Make, webhook) to get a lead alert feed.

Notes

  • The LA datasets only publish a case type code (e.g. PACE, GENERAL, FRP), not free-text descriptions, so keyword filters don't match LA rows. NYC DOB doesn't publish coordinates.
  • Respect each portal's terms. Violations concern addresses and owners, so use the data lawfully (e.g. follow FCRA/TCPA rules when you contact owners).

Source and licence

Public records from NYC Open Data, the City of Chicago Data Portal, Los Angeles Open Data, and City of Detroit Open Data, used under each portal's open-data terms. Every item carries a source block (publisher, dataset URL, retrieval time). Not affiliated with or endorsed by any city.

Row cap and failure handling

  • maxRowsPerSource (default 5000, 0 = unlimited): per-source cap on raw rows fetched, with automatic pagination. Sources that hit the cap are listed under cappedSources in the OUTPUT record and in the run's status message.
  • Failures are loud: if any source fails (HTTP error, ArcGIS error, timeout), the run is marked FAILED, the status message names the failed source(s) and error, and the OUTPUT key-value record contains ok: false and failedSources. Rows from a failed source are never returned partially.