NYC APIa836-acris.nyc.gov ↗
Search NYC ACRIS recorded documents by party name. Retrieve deeds, mortgages, liens, UCC filings, and full document details including parties, parcels, and amounts.
What is the NYC API?
The NYC ACRIS API gives developers programmatic access to New York City's official recorded document registry through 2 endpoints. Use search_by_party_name to find deeds, mortgages, liens, judgments, and UCC filings associated with any individual or business, then call get_document_detail to retrieve the full record including all parties with addresses, parcel legal descriptions, cross-references, and document amounts.
curl -X GET 'https://api.parse.bot/scraper/03ecec11-1d0c-415f-a573-560b39686f66/search_by_party_name?name=TRUMP' \ -H 'X-API-Key: $PARSE_API_KEY'
Search ACRIS recorded documents by party (business or person) name. Returns paginated results with document ID, type, parties, borough/block/lot, dates, and amounts. Supports optional filters for borough, document class, party type, and date range. Results are returned in pages; use the page parameter and has_next/has_previous flags to paginate. Each page returns up to max_rows results (default 25, max 99). The search uses prefix matching on the name.
| Param | Type | Description |
|---|---|---|
| namerequired | string | Party name to search. For businesses, provide the business name. For individuals, provide the last name (optionally followed by first name). The search uses prefix matching. |
| page | integer | Page number for pagination. |
| borough | string | Filter by NYC borough. Omitted returns all boroughs. |
| date_to | string | End date for custom date range in YYYY-MM-DD format. Must be used together with date_from. |
| max_rows | integer | Maximum results per page. Accepted values: 10, 25, 50, 99. |
| date_from | string | Start date for custom date range in YYYY-MM-DD format. Must be used together with date_to. Overrides date_range when both date_from and date_to are provided. |
| doc_class | string | Filter by document class. Omitted returns all classes. |
| date_range | string | Preset date range filter. Ignored when date_from and date_to are both provided. Omitted searches all dates. |
| party_type | string | Filter by party role. Omitted searches all parties. |
{
"type": "object",
"fields": {
"records": "array of matching document records, each with document_id, party_type (1/2/3), party_name, borough, block, lot, reel_page_file, crfn, partial, doc_date, recorded_filed, document_type, pages, corrected_remarks, doc_amount",
"pagination": "object with page number, records_shown range string, has_next and has_previous booleans"
},
"sample": {
"data": {
"records": [
{
"lot": "5",
"crfn": "2020000210422",
"block": "1364",
"pages": "4",
"borough": "MANHATTAN",
"partial": "ENTIRE LOT",
"doc_date": "7/24/2020",
"doc_amount": "0",
"party_name": "TRUMP FINANCIAL, LLC",
"party_type": "2",
"document_id": "2020072400550001",
"document_type": "UCC3 TERMINATION",
"recorded_filed": "7/24/2020 2:17:35 PM",
"reel_page_file": "",
"corrected_remarks": ""
}
],
"pagination": {
"page": 1,
"has_next": false,
"has_previous": false,
"records_shown": "1 - 25"
}
},
"status": "success"
}
}About the NYC API
Search Recorded Documents by Party
The search_by_party_name endpoint accepts a name parameter for any individual or business and returns paginated document records. Each record includes document_id, doc_type, party_name, party_type (1, 2, or 3), borough, block, lot, recorded dates, and amounts. You can narrow results with optional filters: borough (Manhattan, Brooklyn, Queens, Bronx, Staten Island), doc_class (e.g., deeds, mortgages, UCC), party_type, and a date range via either the date_range preset or a custom date_from/date_to pair in YYYY-MM-DD format. The max_rows parameter controls page size (10, 25, 50, or 99), and the pagination object in every response exposes has_next and has_previous booleans plus a readable records_shown range string.
Full Document Detail
Once you have a document_id from search results, pass it to get_document_detail to pull the complete record. The response contains a document_info object with doc_type, doc_date, recorded_filed, doc_amount, crfn, pages, reel_page, collateral, and expiration_date. The parties array lists every named party with their role (PARTY 1, PARTY 2, PARTY 3, or Other), full address fields (address_1, address_2, city, state, zip, country). The parcels array includes each associated lot with borough, block, lot, property_type, property_address, and rights flags (easement, air_rights, subterranean_rights, partial). Additional fields include remarks (an array of free-text annotation strings) and references (cross-reference documents by crfn, document_id, borough, reel, page, and file_nbr).
Coverage and Source
ACRIS (Automated City Register Information System) is maintained by the NYC Department of Finance and covers recorded documents for Manhattan, Brooklyn, Queens, and the Bronx. Staten Island property records are maintained separately by the Richmond County Clerk. ACRIS does not publish an official developer API; this Parse API provides structured, queryable access to the same records available through the ACRIS document search portal.
The NYC API is a managed, monitored endpoint for a836-acris.nyc.gov — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when a836-acris.nyc.gov changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official a836-acris.nyc.gov API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Screen a business entity for recorded liens or judgments in New York City before entering a transaction.
- Build a due diligence tool that pulls all mortgages and UCC filings associated with a property owner by name.
- Automate title search workflows by querying deeds and encumbrances for a given party across all five boroughs.
- Track recorded documents against a counterparty across a custom date range using
date_fromanddate_tofilters. - Resolve parcel details — block, lot, property type, air rights — for properties referenced in a recorded document.
- Aggregate cross-referenced documents via the
referencesarray to map chains of title or related mortgage instruments. - Monitor a landlord's or developer's recorded activity by periodically searching their entity name and filtering by
doc_class.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does NYC ACRIS have an official developer API?+
What does `get_document_detail` return beyond what the search results include?+
remarks, and a references array of cross-linked documents. The search_by_party_name endpoint returns only a summary row per document without addresses, parcels, or remarks.Does the API cover Staten Island property records?+
Can I retrieve a list of all documents recorded against a specific block and lot rather than a party name?+
How does pagination work in `search_by_party_name`?+
pagination object with has_next and has_previous booleans and a records_shown range string. Pass an incremented page integer to retrieve subsequent pages. The max_rows parameter (accepted values: 10, 25, 50, 99) controls how many records appear per page.