CourtListener Legal Case Scraper
Pricing
from $3.00 / 1,000 results
CourtListener Legal Case Scraper
Scrape US court opinions, RECAP federal dockets, and oral arguments from CourtListener.com with the largest free legal database with 4M+ opinions, SCOTUS to district courts. Search by keyword, court, date range, and more. No API key required.
Pricing
from $3.00 / 1,000 results
Rating
5.0
(11)
Developer
Crawler Gang
Maintained by CommunityActor stats
11
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract US court opinions, federal dockets, and oral argument audio records from CourtListener.com — the largest free public legal database in the United States with 4M+ court opinions from SCOTUS down to federal district courts.
What You Can Scrape
- Court Opinions — case names, courts, judges, filing dates, citations, cite counts, and opinion text snippets (SCOTUS to district level)
- RECAP Federal Dockets — case filings, parties, attorneys, law firms, jurisdiction types, and document counts
- Oral Arguments — audio metadata including case name, court, argued date, duration, and download URL
Modes
| Mode | Description |
|---|---|
opinions | Search US court opinions / case law (default) |
dockets | Search RECAP federal court dockets |
oralArguments | Search oral argument audio recordings |
Input Parameters
| Parameter | Type | Description |
|---|---|---|
mode | Select | One of opinions, dockets, oralArguments |
searchQuery | String | Full-text keyword search. Supports AND, OR, NOT, phrases in quotes |
court | Select | Filter to a specific court (e.g. scotus, ca9) |
dateFiledAfter | String | Filter cases filed after this date (YYYY-MM-DD) |
dateFiledBefore | String | Filter cases filed before this date (YYYY-MM-DD) |
orderBy | Select | score desc, dateFiled desc, dateFiled asc, citeCount desc |
status | Select | Opinion status filter: Published, Unpublished, etc. |
maxItems | Integer | Max records to return (1–500, default 50) |
Output Fields
Opinion Records (recordType: opinions)
| Field | Type | Description |
|---|---|---|
caseId | Integer | CourtListener cluster ID |
docketId | Integer | Associated docket ID |
caseName | String | Short case name (e.g. "Roe v. Wade") |
caseNameFull | String | Full formal case name |
court | String | Court full name |
courtId | String | Court slug ID (e.g. scotus, ca9) |
courtCitation | String | Official citation abbreviation (e.g. "9th Cir.") |
docketNumber | String | Docket/case number |
judge | String | Authoring judge(s) |
status | String | Published / Unpublished / etc. |
suitNature | String | Nature of suit |
dateFiled | String | Date filed (YYYY-MM-DD) |
dateArgued | String | Date argued (YYYY-MM-DD) |
citations | Array | Citation strings (e.g. ["123 U.S. 456"]) |
lexisCite | String | LexisNexis citation |
neutralCite | String | Neutral citation |
citeCount | Integer | Number of times cited by other opinions |
snippet | String | Text excerpt from the opinion |
attorney | String | Attorney information |
caseUrl | String | Full CourtListener.com URL |
scrapedAt | String | ISO 8601 timestamp of scrape |
Docket Records (recordType: dockets)
| Field | Type | Description |
|---|---|---|
docketId | Integer | CourtListener docket ID |
caseName | String | Case name |
court | String | Court name |
courtId | String | Court slug ID |
docketNumber | String | Docket number |
assignedTo | String | Assigned judge |
referredTo | String | Referred judge |
cause | String | Cause of action |
suitNature | String | Nature of suit |
jurisdictionType | String | Federal question / Diversity / etc. |
parties | Array | Party names |
attorneys | Array | Attorney names |
firms | Array | Law firm names |
dateFiled | String | Date case was filed |
dateTerminated | String | Date case was terminated |
documentCount | Integer | Number of RECAP documents |
pacerCaseId | String | PACER case ID |
caseUrl | String | CourtListener docket URL |
scrapedAt | String | ISO 8601 timestamp |
Oral Argument Records (recordType: oralArguments)
| Field | Type | Description |
|---|---|---|
audioId | Integer | Audio recording ID |
docketId | Integer | Docket ID |
caseName | String | Case name |
court | String | Court name |
courtId | String | Court slug ID |
docketNumber | String | Docket number |
judge | String | Panel judge(s) |
dateArgued | String | Date argued (YYYY-MM-DD) |
durationSeconds | Integer | Recording duration in seconds |
downloadUrl | String | Direct MP3 audio download URL |
snippet | String | Text excerpt from argument transcript |
caseUrl | String | CourtListener audio page URL |
scrapedAt | String | ISO 8601 timestamp |
Example Inputs
{"mode": "opinions","searchQuery": "criminal defense Fourth Amendment","court": "scotus","orderBy": "citeCount desc","maxItems": 50}
{"mode": "opinions","searchQuery": "contract breach","dateFiledAfter": "2020-01-01","dateFiledBefore": "2024-12-31","status": "Published","maxItems": 100}
{"mode": "dockets","searchQuery": "patent infringement Apple","court": "cafc","maxItems": 30}
{"mode": "oralArguments","searchQuery": "Second Amendment gun rights","court": "scotus","maxItems": 20}
Supported Courts
| Court ID | Court Name |
|---|---|
scotus | Supreme Court of the United States |
ca1 – ca11 | U.S. Courts of Appeals (1st–11th Circuits) |
cadc | Court of Appeals for the D.C. Circuit |
cafc | Court of Appeals for the Federal Circuit |
cit | Court of International Trade |
bap1, bap2, bap6, bap8, bap9, bap10 | Bankruptcy Appellate Panels |
Many more federal district courts and state courts are available — use any CourtListener court ID slug.
Search Query Syntax
CourtListener supports full-text search with boolean operators:
murder AND self-defense— both terms"fourth amendment" OR "unreasonable search"— phrase or termpatent NOT copyright— exclude a term"habeas corpus"— exact phrase
FAQs
Does this require a CourtListener account or API key?
No. The scraper uses CourtListener's public REST API (v4) which requires no authentication for search operations.
How many records can I fetch?
Up to 500 per run. CourtListener has 4M+ opinions, 123K+ RECAP dockets, and 9K+ oral arguments. Pagination via cursor is handled automatically.
Are opinion full texts included?
The scraper includes opinion text snippets from search results. Full opinion PDFs/text are available at the caseUrl links.
What courts are covered?
All US federal courts: SCOTUS, 13 circuit courts, 94 district courts, bankruptcy courts, and specialty courts. Some state appellate courts are also indexed.
Are oral argument MP3 files accessible?
Yes — the downloadUrl field contains direct MP3 links hosted by the court (e.g. media.ca7.uscourts.gov).
Is this data current?
CourtListener indexes opinions within days of publication. Oral arguments are typically added within a week of being argued.
Technical Notes
- Data source: CourtListener.com public REST API v4
- No browser automation required — pure HTTP via
httpx - No proxy, no cookies, no authentication required
- Cursor-based pagination for large result sets
- Retries on 429/5xx with exponential backoff
- Memory: 1024 MB recommended