NYC Property Profile - Owner, Value & Violations
Pricing
from $3.00 / 1,000 nyc property profiles
NYC Property Profile - Owner, Value & Violations
One NYC property by BBL, joined across nine city datasets on the exact key: PLUTO owner and land use, DOF valuation, HPD violations and complaints, DOB permits, OATH hearings, ACRIS documents, tax abatements and tax-lien notices. Profile returns a summary; events returns the records.
Pricing
from $3.00 / 1,000 nyc property profiles
Rating
0.0
(0)
Developer
Wenhao Yang
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
NYC Property Profile
One New York City property, one call. Give a 10-digit BBL and get back the owner and land-use record, the DOF valuation and assessment, the housing violations and complaints, the building permits and building-code violations, the ECB enforcement records, the administrative-hearing cases, the recorded legal documents, the tax abatements - current detail and history - and the tax-lien notices, joined on the exact key the city uses.
Low cost
Property profiles: $0.005 per profile, down to $0.003 at Gold.
Underlying event records: from $0.00005 per record, down to $0.00003 at Gold.
Change monitoring (from 2026-11-15) is charged at $0.0001 per changed field.
What you get
mode=profile (default) returns one row per BBL:
- Identity -
bbl,bin,borough,boroughName,block,lot,condoNumber - PLUTO land use -
address,zip,ownerName,ownerType,yearBuilt,unitsResidential,unitsTotal,numBuildings,numFloors,buildingClass,buildingArea,lotArea,zoning,plutoAssessedTotal,plutoExemptTotal,latitude,longitude,plutoMatched - DOF valuation -
valuationYear,valuationPeriod,marketValue,assessedValue,taxableValue,taxClass,valuationOwner,valuationBuildingClass,valuationYearBuilt,valuationUnits,valuationBuildings,valuationLandArea,valuationZoning,valuationAddress,valuationZip - HPD -
hpdViolationsTotal/hpdViolationsOpen/hpdViolationsLatest,hpdComplaintsTotal/hpdComplaintsOpen/hpdComplaintsLatest - DOB -
dobPermitsTotal/dobPermitsLatest,dobViolationsTotal/dobViolationsOpen/dobViolationsHazardous/dobViolationsEcbReferred/dobViolationsLatest,dobEcbTotal/dobEcbOpen/dobEcbBalanceDue/dobEcbPenalty/dobEcbLatest - Hearings and legal -
oathCasesTotal/oathCasesLatest,acrisDocumentsTotal - Abatements -
abatementsTotal/abatementAppliedTotal/abatementLatestYear/abatementPrograms(current city snapshot) plusabatementSnapshots/abatementFirstYear/abatementYears/abatementHistoryRecords/abatementHistoryApplied/abatementHistoryTruncated(history across the snapshots the city publishes, de-duplicated) - Tax lien -
taxLienRecords/taxLienLatestCycle - Status -
registersMissing(a register that could not be queried, or answered but holds nothing for this lot),found,complete,sourceErrors,asOf
mode=events returns the underlying records, newest first, with eventSource, eventDate, eventId, eventStatus, eventDescription, eventAmount and eventDetail (the source-specific fields, kept as text). Event sources: HPD violations, HPD complaints, DOB permits, DOB building violations, ECB violations, OATH hearings and abatement applications.
mode=changes (from 2026-11-15) compares the profile with the baseline this monitor stored for the property and returns one row per field that moved: changeField, oldValue, newValue, changedAt. The first run stores the baseline and returns nothing to charge; later runs return the delta.
Examples
The default property (BBL 2028820229 - 16 Richman Plaza, Bronx):
{ "bbl": "2028820229" }
Any property (240 1 Avenue, Manhattan):
{ "bbl": "1009720001", "mode": "profile" }
The underlying HPD violations, complaints, DOB permits and violations, ECB violations, OATH hearings and abatements for one property:
{ "bbl": "2028820229", "mode": "events", "maxEvents": 50 }
Monitor what moved since the last baseline:
{ "bbl": "1009720001", "mode": "changes" }
A portfolio: up to 12 properties in one run, one profile row each:
{"bbls": ["2028820229", "1009720001", "4087860042", "4087980002"],"mode": "profile"}
Coverage and honest limits
- Eleven city corpora, joined on the exact key - PLUTO, DOF valuation, HPD violations, HPD complaints, DOB permits, DOB building violations, DOB ECB violations, OATH/ECB hearings, ACRIS legal documents, DOF abatement detail (current snapshot and full history) and the tax-lien sale list.
- 🔴 Every corpus keys differently. PLUTO keys on the 10-digit BBL as a number; HPD violations stores it as text; HPD complaints and DOB permits store it as a number; OATH uses a borough name plus zero-padded block/lot text (lots appear at both four and five digits, and both are matched); ACRIS and the tax-lien list use a numeric borough plus block/lot. The two DOB violation corpora key on the 7-digit BIN, not the BBL: the BINs carried by the lot's HPD violations and DOB NOW permits are collected first, so a multi-building or condo lot joins its buildings. When no BIN is published the building-violations corpus is still reachable by borough plus zero-padded block/lot; ECB is BIN-only and is then reported in
registersMissing. - 🔴 A profile is a summary of what the city publishes for that BBL, not a title search. It does not replace a title report, a survey or a lien search. ACRIS counts are legal-document records for the block/lot; the tax-lien list is a notice list with no amount or owner.
- The counts are record counts, not necessarily distinct events. HPD complaints are published one row per complaint problem; DOB permits are one row per work permit (one job can hold several); abatements are one row per application/tax-year record; OATH is one row per ticket; DOB violations and ECB violations are one row per violation.
- Abatement history is de-duplicated, not stacked. The city appends a whole snapshot each cycle, so the same application appears once per snapshot in the raw table. History keeps each record's newest copy;
abatementHistoryAppliedis therefore a sum of distinct records, not a sum multiplied by the number of snapshots.abatementSnapshotsreports how many snapshots the records came from. A lot with more than 2,000 raw snapshot rows reportsabatementHistoryTruncated=truerather than claiming a complete history (measured worst case is 1,000). - A source that fails does not kill the profile. Its error is reported in
sourceErrorsandcompletebecomesfalse; every other corpus is still delivered. If both anchor corpora (PLUTO and the DOF valuation roll) fail outright, the run fails instead of returning a half-empty property. - PLUTO lists tax lots, not every BBL. Condo billing lots and special parcels can come back
plutoMatched=false; the other corpora still answer. ownerNameandvaluationOwnerare the published owner of record from city open data - not a mailing list and not a person-level profile.- Each corpus refreshes on its own schedule;
asOfis the date the profile was assembled, and the per-corpus dates in the summary fields are the city's own. - One BBL or a batch of up to 12.
bblsreturns one profile row per BBL in a single run (each metered as one profile); larger lists need several runs or the dedicated bulk actors listed below. If the run's time budget cannot finish the batch, the run fails rather than delivering a short batch - split the list and re-run. - A BBL with no records still costs one profile charge - the run still queries all eleven corpora.
foundis true when any property-level corpus (PLUTO, the valuation roll, HPD, DOB, ECB, OATH, abatements or the lien list) answers; ACRIS-only block/lot records do not make a property "found", so a block-level legal document alone will not. maxEventsis a per-source cap:maxEvents=50returns up to 50 records from each of the seven event corpora (at most 700 rows per run). A corpus with no records for this property contributes none.- Change monitoring is per caller. The baseline is stored per API user (falling back to a shared baseline where no user identity is available), so two customers never share a diff window. A baseline is kept when you run
mode=profile;mode=changesrefreshes it after each diff. Only published fields are compared - there is no scoring, ranking or inference. - For bulk event history, the dedicated NYC HPD Violations, NYC DOB Permits and NYC Property Abatements actors cost from $0.00005 per row, $0.00003 at Gold - the same ladder as this actor's event mode.
Related
Also available in this account: NYC Property Valuation & Assessment (tax-lot rolls), NYC HPD Violations (housing-code violations by building), NYC DOB Permits (DOB NOW job filings) and NYC Property Abatements (full abatement detail).