CourtListener Scraper avatar

CourtListener Scraper

Pricing

from $1.99 / 1,000 results

Go to Apify Store
CourtListener Scraper

CourtListener Scraper

CourtListener Scraper is a Python tool designed to extract legal opinions, court dockets, oral arguments, judge profiles, and case citations from CourtListener. It exports structured legal data into clean CSV or JSON formats for legal research and data analysis.

Pricing

from $1.99 / 1,000 results

Rating

0.0

(0)

Developer

ZeroBreak

ZeroBreak

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Court Records Scraper: US Case Law, Federal Dockets, Oral Arguments and Judges

Court Records Scraper

Collect and organize publicly available US court records, including case law opinions, federal court dockets, oral arguments, judges, and court directory information. Export structured records to JSON, CSV, or Excel for legal research, litigation monitoring, and legal lead generation.

Search does not require a login. A free CourtListener account token is required only for the details mode.

Docket records can include parties, law firms, attorneys, nature of suit, and the assigned judge. Opinion records include citations, filing dates, judges, and PDF links when available. Oral argument records include audio links, recording duration, and file size.

Use Cases

  • Legal lead generation: Find federal lawsuits by keyword or nature of suit and organize associated parties, law firms, and attorneys.
  • Litigation monitoring: Search company or brand names regularly to identify newly available federal cases.
  • Legal research: Build structured collections of opinions with citations, courts, judges, and source references.
  • Journalism: Research public court filings and oral arguments without a PACER account.
  • Judge analytics: Collect judicial opinions, directory information, educational backgrounds, appointment dates, and positions when available.

Supported Collection Modes

ModeDescription
opinionsSearch case law opinions and related case information.
docketsSearch federal RECAP docket records, including available filing information.
oral_argumentsCollect oral argument records and audio metadata.
judgesSearch judge records and available background information.
courtsCollect court directory information.
detailsRetrieve an individual opinion, cluster, or docket using its identifier and a free access token.

Input Parameters

ParameterTypeDefaultDescription
modestringopinionsCollection mode: opinions, dockets, oral_arguments, judges, courts, or details.
queriesarray["web scraping"]Search queries, one per line. Supports CourtListener query syntax, including quoted phrases and AND/OR operators.
courtsarrayEmptyCourt IDs, such as scotus, ca9, or nysd. Values are combined into the court filter.
filedAfterstringEmptyInclude records filed on or after this date. Format: YYYY-MM-DD.
filedBeforestringEmptyInclude records filed on or before this date. Format: YYYY-MM-DD.
orderBystringscore descSort order: score desc, dateFiled desc, or dateFiled asc.
idsarrayEmptyIdentifiers for details mode, such as opinion:10822738, cluster:10356150, or docket:69510553.
includeRecapDocumentsbooleantrueInclude available RECAP filing information in docket records.
maxItemsinteger100Maximum number of output rows for the run. Maximum: 5,000.
apiTokenstringEmptyFree CourtListener token, required only for details mode. Stored as a secret input.
timeoutSecsinteger300Maximum run duration in seconds. Rows already saved are retained when the run stops.
requestTimeoutSecsinteger30Timeout for an individual request.

Example Input

Search federal docket records for a specific phrase in the Southern District of New York:

{
"mode": "dockets",
"queries": ["\"Blake Lively\""],
"courts": ["nysd"],
"filedAfter": "2024-01-01",
"orderBy": "dateFiled desc",
"includeRecapDocuments": true,
"maxItems": 100,
"timeoutSecs": 300,
"requestTimeoutSecs": 30
}

Output Structure

Every dataset row includes recordKind and the same value in type, allowing you to filter records from mixed collection runs. Search results also retain the query that found each record.

Example Opinion Record

{
"recordKind": "opinion",
"type": "opinion",
"clusterId": 10356150,
"docketId": 69733181,
"caseName": "State v. Clouser",
"court": "Ohio Court of Appeals",
"courtId": "ohioctapp",
"dateFiled": "2025-03-13",
"docketNumber": "114094",
"citations": ["2025 Ohio 834"],
"citeCount": 0,
"judge": "E.T. Gallagher",
"status": "Published",
"url": "OPINION_PAGE_URL",
"opinions": [
{
"id": 10822738,
"type": "combined-opinion",
"opinionKind": "combined-opinion",
"perCuriam": false,
"downloadUrl": "OPINION_PDF_URL",
"snippet": "[Cite as State v. Clouser, 2025-Ohio-834.]"
}
],
"query": "\"web scraping\""
}

Record Types and Additional Fields

  • Opinion records: Case name, court, filing date, docket number, citations, judge, publication status, and available opinion links.
  • Docket records: Parties, law firms, attorneys, nature of suit, assigned judge, case identifier, and available RECAP documents.
  • Oral argument records: Case name, audio URL, duration in seconds, and MP3 file size.
  • Judge records: Judge name, educational background, political affiliations, and judicial positions when available.
  • Court records: Short name, full name, citation format, jurisdiction, and current-use status.
  • Detail records: Record category, source identifier, and the returned record data when a token is provided.

Failed queries do not stop the entire run. The actor saves an error row containing error, errorMessage, and statusCode, then continues. If details mode is used without a token, it records TOKEN_REQUIRED and skips the restricted request.

Output Fields

FieldTypeDescription
recordKindstringRecord category: opinion, docket, oral_argument, judge, court, detail, or error. Also stored as type.
caseNamestringCase name on opinion, docket, and oral argument records.
courtstringCourt name associated with the record.
courtIdstringCourt identifier, such as scotus or nysd.
dateFiledstringFiling date.
docketNumberstringCourt docket number.
citationsarrayReporter citations associated with an opinion.
judgestringJudge information when available. May be empty if the source has no value.
urlstringSource record page or court website link.
partiesarrayParty names associated with a federal docket.
lawFirmsarrayLaw firms associated with a docket, with duplicate spellings consolidated.
attorneysarrayAttorneys associated with a docket.
recapDocumentsarrayAvailable filing numbers, summaries, dates, page counts, availability information, and document links.
audioUrlstringOral argument audio link.
durationSecnumberOral argument duration in seconds.
fileSizeMp3numberMP3 file size when available.
namestringJudge or court directory name.
schoolsarrayEducational information associated with a judge, when available.
positionsarrayJudicial positions, courts, appointing authorities, and confirmation or election dates when available.
rawobjectReturned detail record data, available when a token is provided.
errorstringError code associated with a failed query or identifier.
errorMessagestringDescription of the failure.
statusCodeintegerStatus code associated with a failed request.

Limits and Error Handling

Result Limits

The default maximum is 100 rows per run, with a hard cap of 5,000. Search pages contain up to 20 results, and the actor continues through subsequent pages until it reaches the configured cap or there are no more results.

Broad oral argument searches may match thousands of recordings. Increase maxItems as needed, while keeping the maximum of 5,000 in mind.

Request Pacing and Retries

Requests are paced at approximately one per second. Responses indicating rate limits or server errors are retried. When a Retry-After value is provided, the actor uses it to determine how long to wait before retrying.

Details Mode Requires a Token

Individual opinion, cluster, and docket detail records require a free CourtListener token. Without one, details mode writes a TOKEN_REQUIRED row and skips the restricted request.

Other collection modes do not require the token.

Data Coverage

Opinions cover a broad selection of state and federal courts. Dockets mode searches federal RECAP records, which depend on filings that have been contributed to the archive. The available docket collection is therefore not a complete record of every federal case.

When republishing collected information, credit the Free Law Project and respect applicable source terms and restrictions.

FAQ

What is the difference between PACER and RECAP?

PACER is the federal courts' paid docket system. RECAP is an archive of PACER filings contributed to the Free Law Project. This actor searches publicly available RECAP records. It does not log into PACER or purchase court documents.

Does this include every state trial court docket?

No. Opinion records cover a wide range of state and federal courts, while docket mode focuses on federal RECAP records. Coverage depends on the records available in the archive.

Do I need a CourtListener token?

Not for opinions, dockets, oral arguments, judges, or the court directory. A free token is required only for details mode, which retrieves an individual opinion, cluster, or docket by identifier.

How many cases can one run return?

The default is 100 rows, and the maximum is 5,000. The actor stops requesting additional pages when it reaches the configured limit or the available results are exhausted.

Can I get the full opinion text?

Search records may include a snippet and a PDF link when one is available from the court. This actor records the link but does not download the PDF. Details mode can retrieve an individual record when a token is provided.

What happens when a search fails?

The actor writes an error row containing the error code, message, and status code, then continues processing other queries where possible.

Trademark Notice

CourtListener, the Free Law Project, and their related names, logos, and trademarks belong to their respective owners. They are used in this documentation solely to identify the source of the data and do not imply affiliation, sponsorship, endorsement, or partnership.

Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, sponsored by, or otherwise officially associated with CourtListener or the Free Law Project.

Collecting information that is already public is generally legal. Scraping is not the same thing as hacking, and there is no single law that bans it. The limits are the usual ones: do not break into accounts, do not take private or confidential data, and be careful with personal data and copyrighted works. A site's terms can also restrict how you access it. Facts such as a public name, price, or rating are not the same thing as republishing someone's article or photo.

This actor collects information from public pages. It does not log in and it does not bypass access controls.

For a longer explanation, see Apify's article Is web scraping legal?.