NYC HPD Violation Status & Correction Date Alerts avatar

NYC HPD Violation Status & Correction Date Alerts

Pricing

$3.00 / 1,000 delivered nyc hpd building alerts

Go to Apify Store
NYC HPD Violation Status & Correction Date Alerts

NYC HPD Violation Status & Correction Date Alerts

Watch your NYC buildings for new HPD violations, official status changes, and Class C correction-date windows. Supply BBLs or BINs; receive building-level alerts only when something changes.

Pricing

$3.00 / 1,000 delivered nyc hpd building alerts

Rating

0.0

(0)

Developer

Nathaniel Standridge

Nathaniel Standridge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Security

Limited permissions

Share

Property managers and housing operations teams need a short alert feed for the buildings they already manage. Supply NYC BBL or BIN identifiers, run this Actor daily or weekly, and receive building-level rows when an HPD violation first appears as open, its published status or correction date changes, or an open Class C notice crosses a selected correction-date window. The first run delivers the current open inventory; later unchanged runs deliver no rows.

This Actor reads the official NYC HPD Housing Maintenance Code Violations dataset through its public SODA API. It does not search for properties to sell or append owners, phone numbers, apartment numbers, tenant details, or raw violation descriptions. orderNumber, noticeType, class, and the exact official row link help distinguish notices at one building.

Try one building

Paste this input into the Actor's Input tab. BBL 1007780075 is a public HPD building key; on November 6, 2026, the official feed showed seven open notices at that BBL. The hard alert cap keeps this example at at most 20 charged rows ($0.06 at $0.003 each); if the building grows beyond that cap, the run fails before any alert is billed or state is advanced. Use a unique monitorName for each independent test or portfolio.

{
"bbls": ["1007780075"],
"bins": [],
"monitorName": "example-370-8th",
"maxResults": 20
}

An alert row looks like this (building-level fields from a real HPD notice; observation time and hash are illustrative):

{
"schemaVersion": 1,
"observationId": "74c9e5c37a83258dca0f66fa1227aa96576ee7e9d9ee0a2cdb45badb5855a347",
"violationId": "19241376",
"bbl": "1007780075",
"bin": "1014276",
"buildingAddress": "370 8 AVENUE, MANHATTAN, 10001",
"violationClass": "C",
"orderNumber": "568",
"noticeType": "Original",
"issuedDate": "2026-09-25",
"violationStatus": "Open",
"currentStatus": "INVALID CERTIFICATION",
"currentStatusDate": "2026-10-14",
"previousViolationStatus": null,
"previousCurrentStatus": null,
"correctionDate": "2026-10-21",
"correctionDateSource": "originalcorrectbydate",
"dateBand": "past_source_date",
"reasons": ["new_open", "correction_date_past_source_date"],
"observedAt": "2026-11-06T17:00:00Z",
"sourceUpdatedAt": "2026-11-06T15:53:52Z",
"sourceUrl": "https://data.cityofnewyork.us/resource/wvxf-dwi5.json?violationid=19241376"
}

Rows are in the default dataset for CSV, Excel, JSON, API, or webhook use. The free OUTPUT record reports the publisher update timestamp, source rows checked, alert count, and whether the run completed. An empty dataset with OUTPUT.complete = true means no tracked change was found. A failed or stale-source run does not mean there were no changes.

Alert rules

ReasonWhen it appears
new_openA currently open violation was not in this monitor's prior snapshot, including the first run.
source_status_changedHPD's violationstatus or currentstatus changed since the previous completed run.
source_correction_date_changedHPD changed newcorrectbydate or originalcorrectbydate.
correction_date_within_windowAn open Class C notice entered the selected window before the published correction date.
correction_date_past_source_dateAn open Class C notice's published correction date is earlier than the current New York date.

One violation generates at most one billed alert row in a run, even if several reasons apply. The date bands are mechanical comparisons with HPD's published fields. They do not determine legal deadlines, compliance, repairs, or whether a correction is accepted. Check the official record and your own counsel or agency process before acting.

The Actor reads all currently open notices at your selected BBLs/BINs, recent status updates within lookbackDays, and any previously tracked open notice by ID. A completed run stores a snapshot in a named key-value store under the running Apify user's account and monitorName. Use the same input and name on later runs. Changing the building scope or date-window settings with the same name is rejected; start a new name. Do not overlap runs of the same monitor.

Inputs and boundaries

  • bbls: 10-digit NYC borough-block-lot identifiers; bins: 7-digit building identifiers. Supply at least one and at most 20 total. A BBL can include multiple buildings, while a BIN identifies one building.
  • monitorName: 1–20 letters, digits, underscores, or hyphens. Separate names keep independent state.
  • lookbackDays: 7–180 days, default 90. The source query still includes current open rows and previously tracked open IDs.
  • dateWindowDays: 1–30 days, default 7.
  • maxSourceRows: 50–2,000, default 1,000. maxResults: 1–500, default 200. Exceeding either cap stops before billing or state advancement.
  • maxRunSeconds: 60–240, default 180. Set the platform timeout to at least 300 seconds.

No arbitrary URL is accepted. Requests go only to the official data.cityofnewyork.us API, with redirects disabled and bounded retries. The Actor never sends an operator deployment credential to NYC.

Price and freshness

Proposed price: $0.003 per delivered alert dataset row under Apify Pay Per Event. There is no Actor-start event and no charge for source rows, unchanged notices, or the OUTPUT summary. A first run with seven alerts would be $0.021; actual rows may change. Platform prices and the deployed listing must be read back before treating this as a live price.

HPD's publisher timestamp is included in each alert and OUTPUT. The Actor stops without billing when the dataset timestamp is more than 96 hours old or invalid. HPD status updates can lag real-world inspections and corrections. A source API error, a building with more rows than the cap, or an exhausted charge limit stops the run instead of presenting a misleading empty success.

The dataset contains historical notices and may change fields or status values. This Actor recognizes HPD Open and Close values and fails on unknown values. It does not monitor DOB violations, infer an owner, send outreach, verify repair completion, or supply legal compliance advice.