NYC ACRIS Property Records Scraper
Pricing
from $1.68 / 1,000 acris property records
NYC ACRIS Property Records Scraper
Search and export official NYC ACRIS deeds, mortgages, assignments, parties, recorded amounts, parcels, and source links for title research.
Pricing
from $1.68 / 1,000 acris property records
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Search and export NYC ACRIS property records from the official NYC Open Data ACRIS datasets. Find deeds, mortgages, assignments, and other recorded documents by parcel, address, party name, document ID, document type, or recording date.
Each result is a normalized property-document record with its document ID, CRFN, recording date, amount, transfer percentage, parcels, parties, references, and canonical source links. This is useful for title research, transaction research, real-estate intelligence, and repeatable data pipelines.
What does this Actor do?
The Actor joins four official ACRIS data surfaces:
- Real Property Master records
- Real Property Legals and parcel addresses
- Real Property Parties
- Real Property References
It turns those separate tables into one dataset row per ACRIS document. You do not need to download and join large citywide files yourself.
Supported searches include:
- borough, block, and lot (BBL)
- street name and optional exact street number
- recorded party name or leading-name prefix
- one or more current or legacy ACRIS document IDs
- recording-date range
- document-type codes such as
DEED,MTGE,ASST, andSAT
Who is it for?
Title researchers can retrieve the document chain, parties, parcel references, and source links for a known property.
Real-estate analysts can export deeds or mortgages recorded during a selected period and compare transaction amounts.
Proptech teams can feed normalized ACRIS documents into warehouses, enrichment jobs, and internal search tools.
Brokerage and investment teams can research recorded parties and connect documents back to BBLs and addresses.
Legal and compliance teams can preserve source-attributed public-record extracts for a defined research question.
Why use this Actor?
- Uses official NYC Open Data rather than scraping a rendered search page.
- Joins documents, parcels, parties, and references into one usable record.
- Supports precise parcel and document-ID workflows as well as date searches.
- Returns stable identifiers and both ACRIS and NYC Open Data source URLs.
- Applies bounded retries for transient NYC Open Data rate limits or server errors.
- Charges only for dataset rows actually produced; joined parties and parcels have no separate event charge.
What data can I extract?
| Field | Description |
|---|---|
documentId | Current 16-digit or legacy ACRIS document identifier |
crfn | City Register File Number, when assigned |
documentType | ACRIS document-type code, such as DEED or MTGE |
documentDate | Date stated on the document |
recordedDate | Date recorded or filed |
recordedAmount | Document amount reported by ACRIS |
percentTransferred | Transfer percentage when available |
recordedBoroughName | Human-readable master-record borough |
parcels | BBL, address, unit, property type, and partial-lot status |
parties | Party role, name, and public mailing-address fields |
references | Referenced CRFN, document ID, or legacy reel/page |
acrisDocumentUrl | Canonical ACRIS document-view link |
sourceUrl | Official NYC Open Data API link for the record |
sourceGoodThroughDate | Freshness date reported by the source |
scrapedAt | UTC extraction timestamp |
Null values mean the official source did not provide that value for the document. Empty parties or references arrays can also result when those joins are disabled.
How to search ACRIS by borough, block, and lot
Use borough code 1 through 5 with both block and lot:
{"borough": 4,"block": 12992,"lot": 42,"documentTypes": ["DEED", "MTGE"],"includeParties": true,"includeReferences": true,"maxItems": 10}
Borough codes are:
- Manhattan
- Bronx
- Brooklyn
- Queens
- Staten Island
The Actor searches the legal/parcel table first and then joins matching master documents and parties.
How to search ACRIS by party name
Supply a full recorded name or a leading-name prefix:
{"partyName": "HILLSIDE BUYERS LLC","includeParties": true,"includeReferences": true,"maxItems": 20}
Party matching follows the text recorded in ACRIS. Corporate suffixes, punctuation, initials, and name order can affect results. Start with the exact recorded name when possible, then shorten from the end if needed.
How to export recent deeds and mortgages
Use a recording-date range with document types:
{"borough": 1,"documentTypes": ["DEED", "MTGE"],"recordedFrom": "2026-07-01","recordedTo": "2026-07-31","includeParties": true,"includeReferences": true,"maxItems": 100}
Dates use YYYY-MM-DD. recordedFrom is inclusive and recordedTo includes the complete selected day.
Input parameters
| Input | Type | Default | Notes |
|---|---|---|---|
borough | integer | none | Optional borough code from 1 to 5 |
block | integer | none | Must be supplied together with lot |
lot | integer | none | Must be supplied together with block |
streetNumber | string | none | Exact house number; requires streetName |
streetName | string | none | Leading street-name text |
partyName | string | none | Full party name or leading-name prefix |
documentIds | string array | none | Current 16-digit or legacy FT_/BK_ IDs |
documentTypes | string array | none | ACRIS document-type codes |
recordedFrom | date string | none | Inclusive recording-date lower bound |
recordedTo | date string | none | Inclusive recording-date upper bound |
includeParties | boolean | true | Include joined party rows |
includeReferences | boolean | true | Include referenced document/reel rows |
maxItems | integer | 20 | From 1 to 10,000 result documents |
Provide at least one search selector: document IDs, party name, street name, block and lot, or a recording-date bound.
Output example
The default dataset contains one object per matched document:
{"documentId": "2026072400844001","crfn": "2026000215302","recordType": "A","documentType": "DEED","documentDate": "2026-07-16","recordedDate": "2026-07-31","modifiedDate": "2026-07-31","recordedAmount": 570220,"percentTransferred": 100,"recordedBorough": 1,"recordedBoroughName": "Manhattan","reelYear": 0,"reelNumber": 0,"reelPage": 0,"parcels": [{"borough": 4,"boroughName": "Queens","block": 12992,"lot": 42,"bbl": "4129920042","streetNumber": "178-35","streetName": "137 AVENUE","unit": null,"propertyType": "D1","partialLot": false}],"parties": [{"partyType": "2","name": "HILLSIDE BUYERS LLC","address": "147-20 HILLSIDE AVENUE","city": "JAMAICA","state": "NY","zip": "11435","country": "US"}],"references": [],"acrisDocumentUrl": "https://a836-acris.nyc.gov/DS/DocumentSearch/DocumentImageView?doc_id=2026072400844001","sourceUrl": "https://data.cityofnewyork.us/resource/bnx9-e6tj.json?document_id=2026072400844001","sourceDataset": "NYC Open Data — ACRIS Real Property","sourceGoodThroughDate": "2026-07-31","scrapedAt": "2026-09-01T06:20:00.000Z"}
This is a public-record example. Mailing-address fields come from ACRIS and may be absent or historical.
How much does it cost to export NYC ACRIS property records?
Pay-per-event pricing consists of:
- $0.005 per run for the start event
- $0.0028 per property record on the BRONZE plan
The per-record rate decreases on higher Apify plans. Parties, parcels, and references included inside a property-record row do not trigger separate events.
Example BRONZE costs:
| Useful records | Estimated Actor charge |
|---|---|
| 1 | $0.0078 |
| 10 | $0.033 |
| 100 | $0.285 |
| 1,000 | $2.805 |
These examples cover Actor events, not any separate Apify platform usage charged under your account plan. A no-result run normally incurs only the start event.
Getting started
- Open the Actor in Apify Console.
- Choose a parcel, party, document, address, or recording-date search.
- Keep
maxItemssmall for the first run. - Decide whether party and reference joins are needed.
- Click Start.
- Inspect the Dataset tab.
- Export results as JSON, CSV, Excel, XML, or RSS through Apify dataset tools.
- Save the configuration as an Apify Task if you will run it repeatedly.
Useful workflows
Parcel title research
Start with a known BBL. Export all matching documents, sort by recordedDate, and follow references and acrisDocumentUrl for source review.
Recent transaction feed
Schedule a Task with a narrow recording-date window and selected document types. Load the dataset into a warehouse and deduplicate by documentId.
Party-to-property research
Search a recorded business or person name, then expand each result's parcels array to obtain BBL and address context.
Document enrichment
Supply known documentIds from another system. The Actor returns normalized master, parcel, party, and reference fields for downstream processing.
Scheduling and integrations
Apify Tasks can run on a schedule. Common destinations include:
- Google Sheets through Make or Zapier
- webhooks for internal automation
- Amazon S3, Google Drive, or Dropbox exports
- SQL warehouses and BI pipelines
- Python or JavaScript data-processing jobs
For incremental pipelines, persist the last accepted recordedDate and documentId. Advance the checkpoint only after downstream storage succeeds.
Run with the Apify API using cURL
Replace APIFY_TOKEN with your token:
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~nyc-acris-property-records-scraper/runs?token=APIFY_TOKEN&waitForFinish=300" \-H "Content-Type: application/json" \-d '{"borough": 1,"documentTypes": ["DEED", "MTGE"],"recordedFrom": "2026-07-01","recordedTo": "2026-07-31","maxItems": 25}'
The run response includes defaultDatasetId. Fetch its records from /v2/datasets/{datasetId}/items.
Run with JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/nyc-acris-property-records-scraper').call({borough: 4,block: 12992,lot: 42,documentTypes: ['DEED', 'MTGE'],includeParties: true,maxItems: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Run with Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/nyc-acris-property-records-scraper').call(run_input={'partyName': 'HILLSIDE BUYERS LLC','includeParties': True,'includeReferences': True,'maxItems': 20,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Use with MCP and AI assistants
Add the Actor to Claude Code through Apify MCP:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/nyc-acris-property-records-scraper"
Claude Desktop, Cursor, and VS Code setup
Desktop and editor clients can use this Apify MCP server configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/nyc-acris-property-records-scraper"}}}
Example prompts:
- "Export Manhattan deeds and mortgages recorded in July 2026, maximum 25 records."
- "Find ACRIS documents for Queens block 12992 lot 42 and include parties."
- "Research documents recorded under HILLSIDE BUYERS LLC and summarize the parcels."
Verify source links before relying on an AI-generated legal or financial conclusion.
Reliability and retries
The Actor uses the official public Socrata JSON API and does not require a browser, login, or proxy. Each API call has a timeout and up to three attempts for transient failures.
A deterministic invalid query fails immediately. HTTP 429 and server errors receive bounded exponential backoff. If all attempts fail, the run exits as failed rather than returning a misleading partial success.
Use narrower filters when a broad party or street prefix scans too many source records. For repeat runs, keep each date interval bounded.
Limits and source freshness
- ACRIS covers recorded property documents, not every fact about a property.
- Party names and addresses reflect recorded source text and can be historical.
- Document-type codes are ACRIS codes, not expanded legal interpretations.
- A master record can reference parcels in a different borough than its master
recordedBorough; inspectparcelsfor property location. - The Actor returns up to 10,000 documents per run.
- Source updates are controlled by NYC, and
sourceGoodThroughDatereports the available freshness boundary. - Naturally empty queries produce no dataset items.
- This Actor does not download document images or PDFs.
- This Actor does not provide title insurance, legal advice, ownership certification, or a complete title opinion.
Responsible use and legality
ACRIS and NYC Open Data are public government-record sources. Public availability does not remove your obligations.
Use the data for lawful research. Respect applicable privacy, fair-housing, consumer-reporting, marketing, and data-retention rules. Do not use public mailing addresses for harassment, unlawful discrimination, or unsupported identity conclusions.
Names can collide, entities can use variants, and recordings can be corrected. Confirm material decisions against the canonical source document and consult a qualified professional for legal title work.
FAQ
Does this Actor certify legal ownership or title?
No. It exports public ACRIS records for research. Confirm material conclusions against source documents and use a qualified title or legal professional when needed.
Can I schedule an incremental ACRIS feed?
Yes. Save the input as an Apify Task, use narrow recording-date windows, schedule the Task, and deduplicate downstream by documentId.
Troubleshooting
The run says I must provide a selector
Add at least one of: documentIds, partyName, streetName, block plus lot, recordedFrom, or recordedTo.
My block search fails
Supply both block and lot. Add the correct borough code for a precise BBL.
A party search returns no results
Use the recorded name spelling and remove words from the end. The search supports full names and leading prefixes, not arbitrary middle-of-name substrings.
I received zero records
Check date bounds, borough, document-type codes, and source freshness. Remove one optional filter at a time. A zero-result search is not retried because it can be a valid source response.
The source timed out
Retry after a short interval or narrow a broad search. The Actor already retries transient requests three times, so repeated failures usually indicate a temporary NYC Open Data problem or an expensive unindexed query.
Why are parties or references empty?
The document may have no matching rows, or the relevant include option may be disabled. Empty joined arrays are not charged separately.
Related Automation Lab Actors
- NYC DOB NOW Building Permits Scraper — complement recorded-property research with permit activity.
- NYC Restaurant Inspection Results Scraper — research public inspection records for NYC food-service locations.
Use ACRIS for recorded deeds, mortgages, parties, and parcels. Use the related Actors only when the buyer job also needs those separate public-record domains.
Data provenance
Primary datasets:
- ACRIS - Real Property Master (
bnx9-e6tj) - ACRIS - Real Property Parties (
636b-3b5g) - ACRIS - Real Property Legals (
8h5j-fqxa) - ACRIS - Real Property References (
pwkr-dpni)
Every dataset item retains official source URLs, source freshness, and the extraction timestamp so downstream users can audit where the record came from.