CourtListener Scraper — Opinions, Dockets & Courts
Pricing
from $1.50 / 1,000 results
CourtListener Scraper — Opinions, Dockets & Courts
Scrape US court opinions, dockets, and court info from CourtListener. Extract case names, judges, citations, rulings, docket numbers and full URLs. No API key required.
CourtListener Scraper — US Court Opinions, Dockets & Case Law Data
Extract US federal and state court opinions, dockets, and court records from CourtListener without any API key or login. Covers over 4 million opinions and millions of PACER dockets across all US courts — scraped clean with full citations, judge names, case names, and direct document links.
What does CourtListener Scraper do?
CourtListener Scraper connects directly to the CourtListener REST API v4 — a free, keyless public API maintained by the Free Law Project. The actor supports three modes:
- Opinions mode — full-text search across over 4 million court opinions using CourtListener's relevance engine. Returns case names, citations, judges, filed dates, docket numbers, opinion snippets, and download links.
- Dockets mode — search PACER-sourced federal docket records by keyword with party names, attorneys, cause of action, jurisdiction type, and court metadata.
- Courts mode — enumerate all ~3,300 courts in the CourtListener database with jurisdiction type, citation strings, active status, and official URLs.
Pagination is handled automatically via the API's cursor-based system for opinions/dockets and page-based for courts. No proxy rotation required for basic usage; datacenter proxy is included for reliability. Bulk runs of hundreds to thousands of records are fully supported.
Who is it for?
- Legal researchers and scholars who need bulk opinion data for citation analysis, legal trend research, or computational law studies.
- Law firms and attorneys building litigation databases, tracking opposing counsel precedents, or monitoring case law in specific areas.
- LegalTech and AI developers who need structured court data to train legal AI models, build case outcome predictors, or power legal document search.
- Data journalists investigating court activity, judge behavior patterns, or legal outcomes across demographics and jurisdictions.
- Compliance and risk teams tracking regulatory enforcement actions, specific statutes, or case law relevant to their industry.
Use cases
- Collect all Supreme Court opinions mentioning "Fourth Amendment" since 2010 for constitutional law analysis.
- Pull 1,000 copyright infringement dockets from federal district courts to map litigation hotspots by jurisdiction.
- Build a judge-opinion database to analyze how specific judges rule on antitrust matters.
- Extract all bankruptcy dockets in a specific district for financial risk monitoring.
- Enumerate all active federal courts to build a jurisdiction lookup tool for a legal SaaS product.
Why use CourtListener Scraper?
- No API key, no login: CourtListener's public API is fully open — no registration, no credentials, no rate-limit walls for standard usage.
- 18+ structured output fields: case name, court, judge, citation, docket number, date filed, snippet, status, URL, download URL, attorney, cause of action, and more.
- Bulk data collection: paginate across thousands of results in a single run using cursor-based pagination.
- Multi-mode flexibility: switch between opinions, dockets, and courts from the same actor with a single input parameter.
- Date and court filters: narrow results by filing date range and specific court IDs to focus your dataset.
- Export to CSV, JSON, Excel, or Google Sheets via Apify's native dataset exports — no extra tooling required.
What data can you extract?
The actor outputs structured records for each court opinion, docket, or court entry. Here is the complete field list:
| Field | Type | Description |
|---|---|---|
| caseName | string | Short case name (e.g. "Sony Corp. v. Universal City Studios") |
| caseNameFull | string | Full formal case name |
| court | string | Full court name (e.g. "Court of Appeals for the Ninth Circuit") |
| courtId | string | CourtListener court ID (e.g. "ca9", "scotus", "dcd") |
| dateFiled | string | Date the case was filed (YYYY-MM-DD) |
| docketNumber | string | Official docket number |
| citation | string | Legal citation string (e.g. "464 U.S. 417") |
| judge | string | Judge or panel assigned to the case |
| status | string | Opinion status (Published, Unpublished, etc.) |
| snippet | string | Text excerpt from the opinion or party list for dockets |
| url | string | Full URL to the CourtListener case page |
| downloadUrl | string | Direct download URL to the opinion document (if available) |
| clusterId | string | CourtListener cluster ID for opinions |
| docketId | string | CourtListener docket ID |
| type | string | Record type: "opinion", "docket", or "court" |
| attorney | string | Attorney names associated with the case |
| cause | string | Cause of action (dockets only) |
| jurisdictionType | string | Jurisdiction type (e.g. "Federal Question") |
Sample JSON output (opinions mode):
{"caseName": "Sony Corp. of America v. Universal City Studios","caseNameFull": "SONY CORP. OF AMERICA v. UNIVERSAL CITY STUDIOS, INC.","court": "Supreme Court of the United States","courtId": "scotus","dateFiled": "1984-01-17","docketNumber": "82-1073","citation": "464 U.S. 417","judge": "Stevens","status": "Published","snippet": "Petitioners manufacture and sell home video tape recorders. Respondents own the copyrights on some of the television programs that are broadcast on the public airwaves...","url": "https://www.courtlistener.com/opinion/111351/sony-corp-of-america-v-universal-city-studios-inc/","downloadUrl": "","clusterId": "111351","docketId": "64318628","type": "opinion","attorney": "Louis Nizer, New York City, for petitioners...","cause": "","jurisdictionType": ""}
How to use
Option A: Search opinions by keyword
Search for court opinions using legal concepts, case names, statutes, or legal phrases.
Step-by-step:
- Set Mode to
opinions - Enter your Query (e.g.
fourth amendment warrantless search) - Optionally set a Court ID (e.g.
scotusfor Supreme Court only) - Set a Date From/To to narrow the time window
- Set Max Results to the number of opinions you want
Input example:
{"mode": "opinions","query": "fair use copyright","court": "ca9","dateFrom": "2015-01-01","dateTo": "2024-12-31","maxResults": 500}
Option B: Search dockets by keyword
Search PACER docket records for cases matching your query, with party names, attorneys, and cause of action data.
Step-by-step:
- Set Mode to
dockets - Enter your Query (e.g.
antitrust monopoly) - Optionally filter by Court ID or Date From/To
- Set Max Results
Input example:
{"mode": "dockets","query": "antitrust monopoly tech","dateFrom": "2018-01-01","maxResults": 300}
Option C: List all courts
Enumerate all courts in the CourtListener database — useful for building a court ID reference or jurisdiction lookup.
{"mode": "courts","maxResults": 500}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| mode | string | opinions | Scrape mode: opinions, dockets, or courts |
| query | string | — | Search query text. Required for opinions and dockets |
| court | string | — | Filter by court ID (e.g. scotus, ca9, dcd) |
| dateFrom | string | — | Filed on or after this date (YYYY-MM-DD) |
| dateTo | string | — | Filed on or before this date (YYYY-MM-DD) |
| maxResults | integer | 100 | Maximum number of results. Range: 1–5000 |
| proxyConfiguration | object | Datacenter | Apify proxy configuration object |
Full input JSON:
{"mode": "opinions","query": "copyright fair use","court": "","dateFrom": "2010-01-01","dateTo": "2024-12-31","maxResults": 200,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["DATACENTER"]}}
Output example
{"caseName": "Authors Guild v. Google, Inc.","caseNameFull": "AUTHORS GUILD v. GOOGLE, INC.","court": "Court of Appeals for the Second Circuit","courtId": "ca2","dateFiled": "2015-10-16","docketNumber": "13-4829-cv","citation": "804 F.3d 202","judge": "Leval","status": "Published","snippet": "Google has made digital copies of tens of millions of books. Google's stated purpose is to make the information in those books more widely accessible...","url": "https://www.courtlistener.com/opinion/3137282/authors-guild-v-google-inc/","downloadUrl": "","clusterId": "3137282","docketId": "4879456","type": "opinion","attorney": "Edward H. Rosenthal, Frankfurt Kurnit Klein & Selz...","cause": "","jurisdictionType": ""}
Tips for best results
- Use specific legal phrases: queries like
"reasonable expectation of privacy"(with quotes) tend to return more relevant results than single words. - Filter by court ID to focus on a single jurisdiction — use the
courtsmode first to find the right court ID. - Date filters speed up runs: narrowing to a 2–3 year window with
dateFrom/dateToreturns results faster and more precisely. - Dockets mode returns more volume: with 260k+ dockets matching most legal topics, it yields high row counts for broad queries.
- Opinions mode has richer text: citation strings, judge names, and opinion snippets are far more complete in opinions mode.
- Max 5,000 results per run: for larger datasets, break your date range into yearly windows and run the actor multiple times.
- Common court IDs:
scotus(Supreme Court),ca1–ca11(Circuit Courts),cadc(DC Circuit),cafc(Federal Circuit),dcd(DC District). - Export to CSV from the Apify dataset view for immediate use in Excel, R, or Python pandas workflows.
- Combine with AI tools: pipe the output into an LLM via Apify's MCP integration to automatically classify, summarize, or extract legal holdings from opinions.
Integrations
CourtListener Scraper outputs to Apify datasets which connect natively to:
- Google Sheets — use the Apify Google Sheets integration to export case data directly into spreadsheets for team collaboration.
- Slack — get notified via Apify webhooks when a scrape finishes, with a summary of results collected.
- Zapier / Make — trigger downstream workflows (e.g. add new opinions to a Notion database, send to a CRM) via Apify's webhook integration.
- Scheduled runs — set the actor to run on a schedule (daily, weekly) to monitor new opinions filed on a specific topic or court.
- API access — retrieve results programmatically via the Apify dataset API in JSON, CSV, XLSX, or JSONL format.
API usage
cURL:
curl -X POST \"https://api.apify.com/v2/acts/logiover~courtlistener-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"mode":"opinions","query":"copyright fair use","maxResults":200}'
Node.js:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('logiover/courtlistener-scraper').call({mode: 'opinions',query: 'fourth amendment',court: 'scotus',maxResults: 100,});const dataset = await client.dataset(run.defaultDatasetId).listItems();console.log(dataset.items);
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("logiover/courtlistener-scraper").call(run_input={"mode": "opinions","query": "antitrust monopoly","dateFrom": "2020-01-01","maxResults": 500,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["caseName"], item["citation"], item["dateFiled"])
Use with AI agents (MCP)
CourtListener Scraper is available as an MCP tool via Apify's Model Context Protocol integration. Connect it to Claude, GPT-4, or any MCP-compatible AI agent to enable on-demand legal research. For example: "Find all Ninth Circuit opinions about fair use in music copyright filed after 2018 and summarize the key holdings." The agent calls the actor, retrieves the dataset, and synthesizes the legal landscape — no manual searching required.
FAQ
Does this require an API key or login?
No. CourtListener's REST API v4 is fully public and keyless. The actor accesses it without any credentials or registration. You only need your Apify account to run the actor.
What courts are covered?
CourtListener covers all US federal courts (Supreme Court, all Circuit Courts of Appeals, all Federal District Courts, Bankruptcy Courts, and specialty courts) plus many state courts. The courts mode returns the full list of ~3,300 available courts.
How many results can I get in one run?
The actor supports up to 5,000 results per run. For larger datasets, use date filtering (e.g. one year per run) to stay within the limit while collecting complete coverage.
Why did my search return zero results?
Check that your query is not too specific or misspelled. Try broader terms. Also verify that the court ID you provided is valid — use courts mode to look up valid court IDs. CourtListener's search engine is BM25-based and works best with legal terminology.
Some fields are empty — is that normal?
Yes. Not all opinions have citations, download links, or judge names in the database. Older opinions and some state court records have partial data. The actor outputs whatever CourtListener provides for each record.
Can I export the data to Excel?
Yes. From the Apify dataset view, click "Export" and select XLSX. You can also export to CSV, JSON, or JSONL directly from the dataset API.
How fast does the actor run?
The actor processes approximately 20 results per API request. A run of 200 opinions takes roughly 30–60 seconds. Larger runs of 1,000+ results may take 3–5 minutes depending on CourtListener server response times.
Is this legal to use?
CourtListener is operated by the Free Law Project, a 501(c)(3) nonprofit with an explicit mission to make US court data publicly accessible. Their API is designed for programmatic access. Court opinions are public records with no copyright. See the "Is it legal?" section below.
How current is the data?
CourtListener updates its opinion database continuously. Federal courts are updated daily via automated scrapers and PACER sync. The data is typically 1–3 days behind real-time filings.
What is the difference between opinions and dockets?
Opinions are the actual written decisions issued by courts — they contain legal reasoning, rulings, and citations. Dockets are the procedural records of a case — they track filings, party names, attorneys, and case status but may not contain full opinion text.
Can I search for specific statutes or case names?
Yes. You can search for anything — statute references like "17 U.S.C. 107", case names like "v. Google", judge names, legal doctrines, or any text that appears in CourtListener's indexed opinions.
What related actors are available?
See the Related scrapers section below for complementary legal and government data actors from the logiover collection.
Is it legal?
Court opinions, dockets, and court records are public records created by US government entities. They are not subject to copyright and are legally accessible to anyone. CourtListener's API is operated by the Free Law Project, a nonprofit that explicitly provides programmatic access to this data. This actor respects CourtListener's public API terms, uses reasonable request rates, and does not bypass any access controls. Users are responsible for ensuring their downstream use of the data complies with applicable laws and regulations in their jurisdiction.
Related scrapers
- SEC EDGAR Full-Text Scraper — Search all SEC filings by keyword, form type, and date. Pairs well with CourtListener for regulatory and enforcement research.
- Company Dossier Generator — AI-generated company intelligence from public sources; enrich litigation research with business context.
- LinkedIn Company Scraper — Extract company profiles to cross-reference with parties in court cases.
- CVE Advisory Scraper — Monitor security advisories referenced in technology-related litigation.