NY APIiapps.courts.state.ny.us ↗
Access New York State court case details and document lists from NYSCEF by docket ID. Returns parties, attorneys, filing dates, case status, and more.
What is the NY API?
The NYSCEF API provides access to New York State Courts Electronic Filing System data across 2 endpoints, returning case metadata, party information, and document filing records by docket ID. The get_case_documents endpoint returns paginated document lists with fields like doc_index, filed_date, and status, while get_case_details returns full party rosters including plaintiff and defendant attorney representation.
curl -X GET 'https://api.parse.bot/scraper/a979870e-708b-4dee-9bc1-b4a4df100a04/get_case_documents?page=1&docket_id=xhwNitK4b0a7bpiT40gnwg%3D%3D&court_type=Livingston+County+Supreme+Court' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace iapps-courts-state-ny-us-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""
NYSCEF Case Lookup API - Usage Example
Look up New York State court case details and documents by docket ID.
"""
from parse_apis.nyscef_case_lookup_api import Nyscef, Case, Document, CaseNotFound
nyscef = Nyscef()
# Fetch case details by docket ID
case = nyscef.cases.get(docket_id="xhwNitK4b0a7bpiT40gnwg==")
print(case.case_number, case.short_caption)
print(case.court, case.case_type, case.case_status)
# List documents filed in the case via sub-resource navigation
for doc in case.documents.list(court_type="Livingston County Supreme Court"):
print(doc.document_number, doc.document_name, doc.filed_by, doc.filed_date)
Get the list of documents filed in a NYSCEF case. Returns case metadata (caption, type, status) and all documents with their filing information including document name, filer, dates, and processing status. Paginated when the case has many filings. Each document carries a doc_index identifier referencing the specific filing.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for paginated document lists. |
| docket_idrequired | string | The NYSCEF docket identifier for the case, a Base64-encoded string (e.g. 'xhwNitK4b0a7bpiT40gnwg=='). Found in NYSCEF case URLs as the docketId parameter. |
| court_type | string | The court name (e.g. 'Livingston County Supreme Court', 'Nassau County Supreme Court'). Optional but may improve result accuracy. |
{
"type": "object",
"fields": {
"court": "string - court name",
"case_type": "string - type of case",
"documents": "array of document objects with document_number, document_name, doc_index, filed_by, filed_date, received_date, status",
"case_number": "string - case index number",
"case_status": "string - current status of the case",
"total_pages": "integer - total number of pages",
"current_page": "integer - current page number",
"short_caption": "string - abbreviated case caption",
"efiling_status": "string - electronic filing participation status"
},
"sample": {
"data": {
"court": "Livingston County Supreme Court",
"case_type": "Other Matters - Consumer Credit (Non-Card) Transaction",
"documents": [
{
"status": "Processed Confirmation Notice",
"filed_by": "MAIDA, STEPHANIE MARIE",
"doc_index": "174ojFo3ITbbTFBFBHIQoQ==",
"filed_date": "01/06/2023",
"document_name": "SUMMONS + COMPLAINT",
"received_date": "01/06/2023",
"document_number": "1"
}
],
"case_number": "000015-2023",
"case_status": "Pre-RJI",
"total_pages": 1,
"current_page": 1,
"short_caption": "GOLDMAN SACHS BANK USA v. KASSIDY RYAN",
"efiling_status": "Partial Participation Recorded"
},
"status": "success"
}
}About the NY API
Case Documents
The get_case_documents endpoint accepts a required docket_id parameter — a Base64-encoded string identifying the NYSCEF case — and returns the case's full document list. Each document object in the documents array includes document_number, document_name, doc_index, filed_by, filed_date, received_date, and status. Top-level response fields cover court, case_type, case_number, case_status, short_caption, and efiling_status. The total_pages and current_page fields support pagination via the optional page parameter. The optional court_type parameter (e.g. 'Nassau County Supreme Court') may improve retrieval accuracy when provided.
Case Details and Parties
The get_case_details endpoint takes the same docket_id and returns structured party data. The plaintiffs and defendants arrays each contain objects with name and represented_by, making it straightforward to identify attorney-of-record relationships for every named party. The response also includes full_caption, short_caption, case_type, case_status, case_number, court, and efiling_status.
Docket ID Format
Both endpoints require a Base64-encoded docket_id. These identifiers appear in NYSCEF case URLs and must be passed as-is. A case index number alone is not sufficient — the Base64 docket ID is the required key for both endpoints. There is no search-by-party-name or search-by-case-number functionality in the current API.
The NY API is a managed, monitored endpoint for iapps.courts.state.ny.us — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when iapps.courts.state.ny.us 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 iapps.courts.state.ny.us 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?+
- Pull all documents filed in a specific NYSCEF case to track litigation activity by
filed_dateandstatus. - Identify plaintiff and defendant attorneys in a case using
represented_byfields fromget_case_details. - Monitor
case_statusandefiling_statuschanges across a portfolio of tracked docket IDs. - Build a case docket viewer that renders
short_caption,case_type, and paginated document lists. - Extract
doc_indexvalues fromget_case_documentsto catalog specific filings by type and date. - Aggregate party data across multiple cases to map law firm involvement in New York State litigation.
- Cross-reference
case_numberandcourtfields with other public records databases for due diligence research.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does NYSCEF have an official developer API?+
What does `get_case_details` return that `get_case_documents` does not?+
get_case_details returns the plaintiffs and defendants arrays, each with name and represented_by fields for attorney representation. It also returns full_caption. The get_case_documents endpoint focuses on the document list — individual filings with doc_index, filed_by, filed_date, received_date, and status — plus pagination fields (total_pages, current_page) that get_case_details does not include.Can I search for cases by party name or case number rather than docket ID?+
docket_id; there is no search-by-name or search-by-case-number parameter. You can fork this API on Parse and revise it to add a search endpoint that resolves party names or index numbers to docket IDs.Does the API return the actual document files (PDFs) from NYSCEF?+
get_case_documents returns document metadata — document_name, doc_index, filed_date, status, and related fields — but not the binary document content. Document retrieval is not covered by the current endpoints. You can fork this API on Parse and revise it to add an endpoint that fetches document content by doc_index.Is coverage limited to a specific court or region within New York State?+
court_type parameter (e.g. 'Livingston County Supreme Court') can be supplied to improve retrieval for specific courts. Courts that do not participate in NYSCEF e-filing will not have cases accessible through this API.