NYC HPD Housing Violations - Building Code Enforcement
Pricing
from $0.03 / 1,000 nyc hpd violation records
NYC HPD Housing Violations - Building Code Enforcement
New York City housing code violations from HPD (public open data, 11.3M records): building and apartment, violation class A/B/C/I, inspection and compliance dates, the notice text and current status. Screen a building by HPD id, or filter by class, borough, ZIP, street, status or date.
Pricing
from $0.03 / 1,000 nyc hpd violation records
Rating
0.0
(0)
Developer
Wenhao Yang
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Every housing code violation issued by New York City's Department of Housing Preservation and Development, straight from the City's open data. 11.3 million violations - what was wrong, in which building and apartment, how serious, and whether it is still open.
Low cost
From $0.00005 per record, down to $0.00003 at Gold. Pay only for the records you actually receive - the whole register stays queryable, you are never billed for the scan behind it.
What you get
One row per violation:
- Where - the borough, house number, street, ZIP, apartment, story, block and lot, plus the BBL, BIN and community board
- How serious - the violation class: A (non-hazardous), B (hazardous), C (immediately hazardous) or I (informational)
- What - the notice-of-violation text describing the condition
- When - the inspection date, the notice issue date, the compliance deadline and the certification date
- Where it stands - the current status, the Open/Close flag, the notice type (original or reissued) and whether the violation impairs the rent
The building id joins the HPD complaint table, and the BBL joins the City's property records.
Filter it
- Class -
class="C"for immediately-hazardous violations. - Status -
violationStatus="Open"for violations not yet cleared. - Rent impairing -
rentImpairing="Y"for the rent-abatement tier. - Place -
boro="BROOKLYN",zip="11206",street="BROADWAY". - One building -
buildingId="375411"for that building's most recent violations (up to 2,000 per run). - Period -
dateFrom="2026-01-01", orrecentDays=30for the last month.
Example inputs
The serious, still-open violations - class C, not yet cleared.
{ "class": "C", "violationStatus": "Open", "maxResults": 50 }
One building's record - buildingId is the HPD key.
{ "buildingId": "375411", "maxResults": 100 }
Recent Brooklyn cases - a borough and a window.
{ "boro": "BROOKLYN", "class": "C", "recentDays": 90, "maxResults": 50 }
How the violations break down - mode=aggregate counts per class.
{ "mode": "aggregate", "groupBy": "class" }
Or roll it up
Set mode=aggregate and get a count by class, status, borough,
notice type or current status. Every group comes back - this mode is not
cut off by maxResults.
Then use it
- Tenant / legal diligence - a building's open class-C violations and rent-impairing findings.
- Underwriting - violation density and open-case load as a property risk signal.
- Watch a building - pull its violations by
buildingIdand track new ones.
Example output
One open class-C violation - a lead-paint hazard, as captured on 2026-10-17:
{"platform": "nyc-hpd-violations","source": "nyc-hpd-housing-violations","mode": "rows","groupKey": "","groupCount": "","groupBy": "","violationId": "19287708","buildingId": "557821","registrationId": "412403","boro": "QUEENS","houseNumber": "79-05","streetName": "147 STREET","zip": "11367","apartment": "E1","story": "1","block": "6691","lot": "1","class": "C","inspectionDate": "2026-10-06T00:00:00.000","approvedDate": "2026-10-06T00:00:00.000","originalCertifyByDate": "2026-11-05T00:00:00.000","originalCorrectByDate": "2026-10-31T00:00:00.000","certifiedDate": "","orderNumber": "624","novId": "10696081","novDescription": " 27-2056.6 ADM CODE - CORRECT THE LEAD-BASED PAINT HAZARD-PAINT THAT IS PEELING OR ON A DETERIORATED SUBSURFACE AND EITHER TESTED INCONCLUSIVE FOR LEAD CONTENT AT 0.5MG/CM2 OR TESTED POSITIVE FOR LEAD CONTENT ON A METAL OR CERAMIC SUBSTRATE AS SET FORTH IN (28 RCNY 11-07(b)) USING WORK PRACTICES SET FORTH IN 28 RCNY 11-06(b)(2). 1st DOOR FROM SOUTH AT WEST WALL IN THE FOYER LOCATED AT APT E1, 1st STORY, 1st APARTMENT FROM NORTH AT EAST , SECTION ''79-19''","novIssuedDate": "2026-10-07T00:00:00.000","currentStatus": "NOV SENT OUT","currentStatusDate": "2026-10-07T00:00:00.000","novType": "Original","violationStatus": "Open","rentImpairing": "N","communityBoard": "8","councilDistrict": "24","bbl": "4066910001","bin": "4144769","nta": "Kew Gardens Hills","sourceUpdatedAt": "2026-10-17"}
mode=aggregate, groupBy=class - one count row per class:
B 5,312,252C 2,615,952A 2,585,034I 806,060
Notes on the data, from the source
-
Counts in this section are a 2026-10-18 snapshot. The register refreshes daily, so the live figures differ slightly.
-
Class C is the one that matters. A = non-hazardous, B = hazardous, C = immediately hazardous (2.6M records, 585k still open), I = informational. Filter on
classto find it. -
Open vs closed.
violationStatusisOpen(2.87M) orClose(8.43M);currentStatusgives the finer workflow state.rentImpairing="Y"marks the 775,900 violations that impair an apartment's rent. -
The listing is keyed by
buildingIdand BBL. OnebuildingIdlookup returns the most recent violations, up to 2,000 per run (192 buildings have more than 2,000 rows in the register); the BBL joins the City's CAMA records. -
buildingIdis exact, not a name. It is the HPD numeric id, not an address - look it up from the building, then pull its violations here. -
The register refreshes daily;
sourceUpdatedAtcarries the dataset's own refresh date.