NY Court Decisions Scraper - Official Reports & Slip Opinions
parseforge/ny-court-decisions-scraper
News & mediaOther
Reads New York State court decisions from the Law Reporting Bureau: Court of Appeals, all four Appellate Divisions, both Appellate Terms, the Supreme Court Commercial Division and the trial courts, with full opinion text, judge, counsel and index numbers, back to 2003.
- Total runs
- 8
- Bookmarked
- 0
- Last modified
- 29 hours ago
This scraper was last updated on .
What does the NY Court Decisions Scraper - Official Reports & Slip Opinions return?
NY Court Decisions Scraper - Official Reports & Slip Opinions
Scrape New York State court decisions straight from the Law Reporting Bureau, the official publisher, across all nine court families and back to 2003. Each row carries the case title, court, county, decision date, judge, slip opinion number, docket and index numbers, and on request the full text of the opinion, the parties, counsel of record and the Bureau's own subject classification. No login, no API key. Export to CSV, JSON, Excel or XML.
New York publishes its decisions as static monthly index pages, one per court per month, with the opinions behind them. There is no search API on the public site. This Actor walks those indexes, reads the opinions, and hands back one flat row per decision, with a keyword filter that can run against the full opinion text so you can build a subject feed the site itself does not offer.
| Who uses it | What they scrape New York decisions for |
|---|---|
| Litigation finance and specialty lenders | Merchant cash advance, factoring and confession of judgment rulings as they land |
| Law firms and legal research teams | Every decision by a named judge, or on a named subject, across the Commercial Division |
| Insurers and claims analysts | Trial level rulings by county on coverage, premises and no fault disputes |
| Legal tech and AI teams | A clean, licensed, official corpus of state court opinions with full text |
| Journalists and policy researchers | What the trial courts of a county actually decided, month by month |
What it does
This Actor reads the New York State Law Reporting Bureau's slip opinion service on www.nycourts.gov and returns each decision as a flat row. Every decision carries:
- โ๏ธ Case identity: case title, slip opinion number, decision date, the month it was posted and the batch caption it appeared under.
- ๐๏ธ Court: the deciding court and county as printed, plus the court family it belongs to and its key.
- ๐ค Judge and numbers: the judge or panel, and the docket number where the index table publishes one.
- ๐ Links: the decision page and the monthly index it was listed on.
- ๐ Optional blocks: full opinion text, parties split into plaintiff and defendant, counsel of record, the Bureau's digest classification, every index and indictment number printed on the decision, the footnotes, and the publication note that says whether the opinion is final or still subject to revision.
- ๐๏ธ A second output: the directory of every archived month the Bureau publishes for the courts you picked, so you can see what exists before you pay to read it. Pick it with
outputs.
Results export to CSV, JSON, Excel or XML, or stream from the API.
The nine court families
| Court | Archive reaches back to |
|---|---|
| Court of Appeals | 2003 |
| Appellate Division, First Department | 2003 |
| Appellate Division, Second Department | 2003 |
| Appellate Division, Third Department | 2003 |
| Appellate Division, Fourth Department | 2003 |
| Appellate Term, First Department | 2003 |
| Appellate Term, Second Department | 2003 |
| Supreme Court, Commercial Division | 2013 |
| Other Courts (trial level) | 2003 |
That is 274 archived monthly indexes for most families and 157 for the Commercial Division, plus the month in progress. monthsBack decides how far back a run walks.
What you can do with New York decision data
๐ Build a subject feed the courts do not publish.
Set keywords to ["merchant cash advance"] and keywordScope to fullText, point it at the Commercial Division and Other Courts, and you get every trial level ruling that mentions the subject, with the full opinion attached. The Bureau publishes no such feed and its own search sits on a host that forbids crawling.
๐ค Follow a judge.
Filter by judges and get every decision that judge issued, in order, with the text.
๐ Read one county.
Filter by counties with "New York County" or "Kings" and get the trial court output of that county alone.
๐ Build a training or research corpus.
Set monthsBack to 274 with includeFullText, and the run walks the whole published archive of a court family, one flat row per opinion.
๐๏ธ Scope the job first.
Run with "outputs": ["months"] to get the directory of available months, then decide what to read.
Why choose this scraper
| What you get | |
|---|---|
| The official source | The Law Reporting Bureau is the publisher of record under Judiciary Law ยง 431. This reads it directly, not a third party mirror with its own gaps and its own terms. |
| All nine families, one shape | The nine index families do not share a column layout, and the opinion pages come in two different templates. The parser is header driven and covers both, so a run that reaches back across the 2015 template change does not change shape halfway through. |
| Full text keyword filtering | The one thing the public site cannot do. Matching against the opinion body is what turns a court calendar into a subject feed. |
| Optional blocks, billed only when they return | Full text, parties, counsel, digest classification, case numbers, footnotes and the publication note are each a checkbox. Untouched blocks are neither fetched nor billed. |
| No proxy, no browser | Measured from the Apify container: the site serves this Actor without either. That cost saving is in the price. |
| The crawlable surface only | The Bureau's own case search lives on iapps.courts.state.ny.us, whose robots file is Disallow: / for every agent. This Actor never touches that host. It reads www.nycourts.gov, which permits crawling, and nothing else. |
How it compares
There is no other New York Official Reports scraper on Apify. The closest actors are general case law tools that cover federal or aggregator sources.
| Feature | ParseForge NY Court Decisions | pink_comic/courtlistener-legal-opinions | johnvc/google-scholar-case-law | moving_beacon-owner1/findlaw-case-law-scraper |
|---|---|---|---|---|
| New York state trial courts | Yes, Commercial Division and Other Courts | Appellate only | Appellate only | Appellate only |
| Official publisher as the source | Yes | No, aggregator | No, aggregator | No, aggregator |
| Full text keyword filter | Yes | No | Search only | No |
| Judge, county and date filters | Yes | Partial | No | No |
| Digest classification and counsel | Yes | No | No | No |
| Archived month directory | Yes | No | No | No |
| Price per row | $0.005 | $0.002 | Per search | $0.00999 |
What a New York decision looks like
{
"rowType": "decision",
"court": "Supreme Court, New York County",
"courtFamily": "Supreme Court, Commercial Division",
"courtKey": "commercial-division",
"caseTitle": "A & L 444 LLC v Ankura Trust Co., LLC",
"slipOpinionNumber": "2026 NY Slip Op 51347(U)",
"decisionDate": "August 20, 2026",
"judge": "Robert R. Reed, J.",
"docketNumber": "Not Disclosed",
"postedLabel": "Cases Posted August 31st",
"monthLabel": "Current month",
"decisionUrl": "https://www.nycourts.gov/reporter/current/3dseries/2026/2026_51347.shtml",
"indexUrl": "https://www.nycourts.gov/reporter/current/index/com_div_idxtable.shtml",
"wordCount": 1266,
"parties": "A & L 444 LLC, 444 PARK AVENUE SOUTH ASSOCIATES LLC, DAVID MOIN MOINIAN, Plaintiff, v Ankura Trust Company, LLC, FEOH CAPITAL, LLC, ROYAL ABSTRACT OF NEW YORK LLC, 444 PARK AVE SOUTH OWNER LLC, Defendant.",
"plaintiff": "A & L 444 LLC, 444 PARK AVENUE SOUTH ASSOCIATES LLC, DAVID MOIN MOINIAN, Plaintiff,",
"defendant": "Ankura Trust Company, LLC, FEOH CAPITAL, LLC, ROYAL ABSTRACT OF NEW YORK LLC, 444 PARK AVE SOUTH OWNER LLC, Defendant.",
"digestClassification": "Attorney and Client: Withdrawal from Representation: Failure to Pay Fees-Application for Stay",
"caseNumbers": ["Index No. 653212/2023"],
"scrapedAt": "2026-09-02T19:59:40.348Z"
}
A field the source does not publish for a given decision comes back as Not Disclosed, never as null and never missing. docketNumber above is empty because the Commercial Division index table has no Docket column; the Court of Appeals and Appellate Division tables do.
Configure the run
| Input | What it does |
|---|---|
courts |
Which of the nine index families to read. Default: Commercial Division. |
monthsBack |
How many archived months to walk after the current one, newest first. 0 is the month in progress only; 274 is the whole archive. |
maxItems |
Stop after this many rows. |
keywords |
Keep only decisions containing these. |
keywordScope |
title matches the case name and costs nothing extra. fullText opens every decision in range to test it. |
matchAllKeywords |
Off keeps any match, on requires all of them. |
counties |
Substring match on the court line, for example New York County, Kings, Westchester. |
judges |
Substring match on the judge line. |
decidedAfter, decidedBefore |
ISO dates. |
startUrls |
Specific decision pages or monthly index pages to read instead of walking the courts. |
outputs |
decisions, months, or both. |
includeFullText, includeParties, includeCounsel, includeDigest, includeCaseNumbers, includeFootnotes, includePublicationNote |
The optional blocks. Each one opens the decision page. |
proxyMode, countryCode |
Off by default. The site geo-filters, so a run from outside the United States needs datacenter. |
Free users
Apify free plan runs are capped at 10 rows so the plan limit is never the surprise. Paid plans run to maxItems.
Run it
{
"courts": ["commercial-division", "other-courts"],
"monthsBack": 6,
"keywords": ["merchant cash advance"],
"keywordScope": "fullText",
"includeFullText": true,
"includeParties": true,
"maxItems": 50
}
Use with AI agents (MCP)
The Actor is exposed over Apify's MCP server, so an agent can call it as a tool. Point the agent at https://mcp.apify.com with this Actor enabled and it can ask for, say, every Commercial Division decision mentioning a lender in the last six months and get structured rows back.
Troubleshooting
Zero rows and a 403 in the log. The site geo-filters and reads the TLS handshake, not the headers. On the Apify platform it serves this Actor directly. Running the code outside the United States needs proxyMode: "datacenter".
A month came back empty. The archive pages list months the Bureau never posted, for example a court's summer recess. The run logs it and moves on.
The full text scan is slow. It is one page read per decision in range, paced so the site is not hammered. Narrow courts and monthsBack, or filter by counties and dates first, which happens off the index table and costs no page reads.
docketNumber is empty. Only the Court of Appeals and the four Appellate Divisions publish a Docket column in their index tables. Tick includeCaseNumbers to get every number printed on the decision itself.
FAQ
Where does the data come from? www.nycourts.gov/reporter, the New York State Law Reporting Bureau, which publishes these decisions under Judiciary Law ยง 431.
Does it touch the case search? No. NYSCEF and WebCivil live on iapps.courts.state.ny.us, whose robots file forbids all crawling. This Actor reads only www.nycourts.gov, which permits it.
How far back does it go? 2003 for eight of the nine families, 2013 for the Commercial Division.
Are the opinions final? Tick includePublicationNote. Slip opinions marked uncorrected are subject to revision before they appear in the printed Official Reports.
Can I get one specific decision? Yes, put its URL in startUrls.
What input does the NY Court Decisions Scraper - Official Reports & Slip Opinions accept?
| Field | Type | What it does | Default |
|---|---|---|---|
| courts | array | Which of the nine index families published by the New York State Law Reporting Bureau to read. Commercial Division and Other Courts are the trial level, where contract, lending and merchant cash advance disputes are decided; the Appellate Divisions and the Court of Appeals are the appeals above them. | ["commercial-division"] |
| monthsBack | integer | How many archived monthly indexes to walk after the current month, newest first. 0 reads only the month in progress. The archive reaches back to 2003 for most courts and to 2013 for the Commercial Division, so 274 is the whole record. | 1 |
| maxItems | integer | Stop after this many rows. | 20 |
| keywords | array | Keep only decisions whose text contains these. Matching against the case title is free; matching against the full opinion opens every decision page and costs a page read each, which is what makes a subject feed such as "merchant cash advance" possible. | [] |
| keywordScope | string (2 options) | Case title only, or the full text of the opinion. | title |
| matchAllKeywords | boolean | Off keeps a decision that matches any keyword; on requires all of them. | false |
| counties | array | Keep only decisions whose court line contains one of these, for example "New York County", "Kings", "Westchester". | [] |
| judges | array | Keep only decisions by these judges. Matched as a substring of the judge line. | [] |
| decidedAfter | string | ISO date, for example 2026-01-01. | not set |
| decidedBefore | string | ISO date, for example 2026-12-31. | not set |
| startUrls | array | Specific decision pages or monthly index pages on www.nycourts.gov to read instead of walking the courts above. | [] |
| outputs | array | Decisions is the case rows. Months is the directory of every archived monthly index the Bureau publishes for the selected courts, which is how you find out what is available before asking for it. | ["decisions"] |
| includeFullText | boolean | The complete text of the decision, opens the decision page. | false |
| includeParties | boolean | The caption split into plaintiff and defendant sides. | false |
| includeCounsel | boolean | The attorneys and firms of record, as the opinion lists them. | false |
| includeDigest | boolean | The Bureau's own subject classification for the decision. | false |
| includeCaseNumbers | boolean | Every index, indictment, docket, motion and appeal number printed on the decision. | false |
| includeFootnotes | boolean | The numbered footnotes of the opinion. | false |
| includePublicationNote | boolean | Whether the opinion is uncorrected, subject to revision, or final in the printed Official Reports. | false |
| includePdfText | boolean | About three quarters of the archived trial court decisions are published as PDF rather than HTML. Tick this to download and read those PDFs for the rows a run keeps. It cannot be used to search: one opinion PDF measured 10.4 MB, so scanning them is not practical and the full text keyword filter skips them. | false |
| proxyMode | string (3 options) | The site answers this actor without a proxy from Apify, which is why none is the default. Datacenter exists for running from outside the United States, where the site geo-filters. | none |
| countryCode | string | Two letter country code used when a proxy is on. | US |
How much does the NY Court Decisions Scraper - Official Reports & Slip Opinions cost?
from $0.36 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| Actor Start | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). | $0.00178 to $0.002 |
| Court decision | One decision delivered, with the case title, court, county, decision date, judge, slip opinion number, docket number, the month index it was listed on and the link to the opinion. | $0.00445 to $0.005 |
| Decision page opened | One opinion page read. Charged on the read and not on the row, because a full text keyword search opens every decision in range to find out whether it matches and keeps only the matches. A run that keeps five rows out of four hundred pages is billed four hundred reads and five rows. | $0.000712 to $0.0008 |
| Monthly index read | One monthly index page of a court, read and parsed. Charged only when that page produced at least one row you kept. | $0.001335 to $0.0015 |
| Archive directory read | One court's archive page, which lists every monthly index back to 2003. Read once per court per run. | $0.001335 to $0.0015 |
| Archived month | One row of the archived month directory output: the court, the month and the index URL. | $0.000534 to $0.0006 |
| Full opinion text | The complete text of the decision as published, plus its word count. | $0.00089 to $0.001 |
| Parties | The caption split into the plaintiff and defendant sides, plus the caption as printed. | $0.000712 to $0.0008 |
| Counsel of record | The attorneys and firms the opinion names, with their addresses where it gives them. Charged only when the decision lists counsel. | $0.000712 to $0.0008 |
| Digest classification | The Law Reporting Bureau's own subject classification for the decision. Charged only when the decision carries one. | $0.000534 to $0.0006 |
| Index and docket numbers | Every index, indictment, docket, motion, appeal and claim number printed on the decision. Charged only when at least one was found. | $0.000534 to $0.0006 |
| Footnotes | The numbered footnotes of the opinion. Charged only when the decision has them. | $0.000445 to $0.0005 |
| Publication note | Whether the slip opinion is uncorrected and subject to revision, or final in the printed Official Reports. | $0.000356 to $0.0004 |
| Text of a PDF decision | About three quarters of the archived trial court decisions are published as PDF rather than HTML. This downloads and reads one of them: an opinion PDF measured 10.4 MB, which is why it costs more than an HTML page and why the keyword search does not scan them. | $0.00356 to $0.004 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
How do I call the NY Court Decisions Scraper - Official Reports & Slip Opinions API?
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~ny-court-decisions-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"courts": [
"commercial-division"
],
"monthsBack": 1,
"maxItems": 20,
"keywords": [],
"keywordScope": "title"
}' What example inputs can I use?
Use these inputs to see how a run is configured.
{
"courts": [
"commercial-division"
],
"monthsBack": 1,
"maxItems": 20,
"keywords": [],
"keywordScope": "title"
} What do users say about the NY Court Decisions Scraper - Official Reports & Slip Opinions?
No reviews yet. Be the first.
How do I report an issue with the NY Court Decisions Scraper - Official Reports & Slip Opinions?
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
What related scrapers can I use?
Run NY Court Decisions Scraper - Official Reports & Slip Opinions on Apify All scrapers
