CourtListener Scraper — Opinions, Dockets & Courts avatar

CourtListener Scraper — Opinions, Dockets & Courts

Pricing

from $1.50 / 1,000 results

Go to Apify Store
CourtListener Scraper — Opinions, Dockets & Courts

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.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Logiover

Logiover

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

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:

FieldTypeDescription
caseNamestringShort case name (e.g. "Sony Corp. v. Universal City Studios")
caseNameFullstringFull formal case name
courtstringFull court name (e.g. "Court of Appeals for the Ninth Circuit")
courtIdstringCourtListener court ID (e.g. "ca9", "scotus", "dcd")
dateFiledstringDate the case was filed (YYYY-MM-DD)
docketNumberstringOfficial docket number
citationstringLegal citation string (e.g. "464 U.S. 417")
judgestringJudge or panel assigned to the case
statusstringOpinion status (Published, Unpublished, etc.)
snippetstringText excerpt from the opinion or party list for dockets
urlstringFull URL to the CourtListener case page
downloadUrlstringDirect download URL to the opinion document (if available)
clusterIdstringCourtListener cluster ID for opinions
docketIdstringCourtListener docket ID
typestringRecord type: "opinion", "docket", or "court"
attorneystringAttorney names associated with the case
causestringCause of action (dockets only)
jurisdictionTypestringJurisdiction 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:

  1. Set Mode to opinions
  2. Enter your Query (e.g. fourth amendment warrantless search)
  3. Optionally set a Court ID (e.g. scotus for Supreme Court only)
  4. Set a Date From/To to narrow the time window
  5. 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:

  1. Set Mode to dockets
  2. Enter your Query (e.g. antitrust monopoly)
  3. Optionally filter by Court ID or Date From/To
  4. 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

ParameterTypeDefaultDescription
modestringopinionsScrape mode: opinions, dockets, or courts
querystringSearch query text. Required for opinions and dockets
courtstringFilter by court ID (e.g. scotus, ca9, dcd)
dateFromstringFiled on or after this date (YYYY-MM-DD)
dateTostringFiled on or before this date (YYYY-MM-DD)
maxResultsinteger100Maximum number of results. Range: 1–5000
proxyConfigurationobjectDatacenterApify 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 courts mode first to find the right court ID.
  • Date filters speed up runs: narrowing to a 2–3 year window with dateFrom/dateTo returns 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), ca1ca11 (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 ApifyClient
client = 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.

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.

See the Related scrapers section below for complementary legal and government data actors from the logiover collection.

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.

  • 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.