optional-skills/research/osint-investigation/references/sources/nyc-acris.md
The Automated City Register Information System (ACRIS) is NYC's index of recorded property documents: deeds, mortgages, satisfactions, liens, UCC filings. Covers Manhattan, Bronx, Brooklyn, Queens, Staten Island. Published as 4 linked Socrata datasets on the NYC Open Data portal.
https://data.cityofnewyork.us/resource/636b-3b5g.json (Parties)bnx9-e6tj (Master), 8h5j-fqxa (Legal), uqqa-hym2 (References)$app_token raises rate limits if needed)Key fields emitted by fetch_nyc_acris.py (Parties joined to Master):
| Column | Type | Description |
|---|---|---|
document_id | str | ACRIS document ID |
name | str | Party name as recorded (often "LAST, FIRST" but varies) |
party_type | str | 1=grantor, 2=grantee, 3=other |
party_role | str | Human-readable role label |
address_1 | str | Property or party address line 1 |
city, state, zip, country | str | Address parts |
doc_type | str | DEED, MTGE (mortgage), SAT (satisfaction), AGMT, etc. |
doc_date, recorded_date | str | YYYY-MM-DD |
borough | str | Manhattan / Bronx / Brooklyn / Queens / Staten Island |
amount | str | Document amount (USD, when applicable) |
filing_url | str | Direct ACRIS DocumentImageView link |
name (insider filers with NYC property)name (federal contractors with NYC property)name (lobbyists / clients with NYC property)name (NYC properties owned via offshore vehicles)Join key: normalized party name. NYC property records typically store names
as "LAST, FIRST" or full LLC names — use entity_resolution.py.
Path: scripts/fetch_nyc_acris.py
# By party name
python3 SKILL_DIR/scripts/fetch_nyc_acris.py --name "ROLNICK" --out data/acris.csv
# By address (useful when you know the property but not the names)
python3 SKILL_DIR/scripts/fetch_nyc_acris.py --address "571 HUDSON" --out data/acris.csv
# Restrict to grantees (buyers / mortgagees)
python3 SKILL_DIR/scripts/fetch_nyc_acris.py --name "ROLNICK" --party-type 2 \
--out data/acris_buyers.csv
The script joins Parties → Master to populate doc_type, dates, borough, and
amount. Pass --no-enrich to skip the join (faster, fewer columns).