CourtListener Court Opinions Scraper โ US Case Law API
Pricing
from $3.00 / 1,000 results
CourtListener Court Opinions Scraper โ US Case Law API
Scrape US court opinions from CourtListener (Free Law Project). Search by keyword, court, date range, and sort order. Returns case name, citations, judge, docket number, status, and opinion URL.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
Share
Extract structured data from CourtListener, the largest open-access repository of US court opinions maintained by the Free Law Project. This Actor taps the CourtListener REST API to retrieve federal and state court opinions, including Supreme Court decisions, circuit court rulings, district court opinions, and thousands of other jurisdictions โ with filtering by keyword, court, filing date, and sort order.
CourtListener indexes over 6 million court documents spanning decades of US case law. It is used by legal researchers, litigation support teams, law firms, compliance departments, and legal technology companies to access authoritative, structured case law data without per-query pricing walls. Whether you are building a legal intelligence platform, enriching a RAG pipeline with case law, or monitoring a specific court's recent output, this Actor delivers clean, flattened JSON records ready for downstream use.
Key Features
- Full-text search โ Search across case names, opinion text, and metadata using CourtListener's powerful search index
- Court filtering โ Narrow results to any US court by its identifier (e.g.,
scotus,ca9,nyed,txnd) - Date range filtering โ Filter opinions filed after or before specific dates
- Multiple sort orders โ Sort by date filed (newest/oldest), relevance score, or citation count
- Pagination handled automatically โ Follows cursor-based pagination to retrieve up to 5,000 records per run
- No API key required โ Anonymous access to the CourtListener public API
- Rate-limit resilient โ Built-in 1.5-second delays between requests plus automatic 429 retry
Output Data Fields
| Field | Type | Description |
|---|---|---|
caseName | string | Short case name (e.g., "Roe v. Wade") |
caseNameFull | string | Full official case name |
court | string | Court name (e.g., "Supreme Court of the United States") |
courtId | string | Court identifier (e.g., scotus, ca9) |
citation | string | Citation string(s) joined with "; " (e.g., "410 U.S. 113") |
citeCount | integer | Number of times this opinion has been cited |
dateFiled | string | Date the opinion was filed (YYYY-MM-DD) |
docketNumber | string | Official docket number |
judge | string | Authoring judge name(s) |
status | string | Publication status (e.g., Published, Unpublished) |
suitNature | string | Nature of suit classification |
snippet | string | Text excerpt from the opinion (HTML stripped) |
opinionUrl | string | Full URL to the opinion on CourtListener |
clusterId | integer | Internal CourtListener cluster ID for cross-referencing |
How to scrape CourtListener court opinions
- Go to the CourtListener Court Opinions Scraper page on the Apify Store.
- Click Try for free or Start to open the Actor.
- In the Search Query field, enter keywords relevant to your research โ for example:
patent infringement software,Fourth Amendment search and seizure, orantitrust monopoly. Leave this field empty to retrieve the most recently filed opinions across all courts. - (Optional) Enter a Court ID to limit results to a specific court. Common values:
scotusโ US Supreme Courtca9โ 9th Circuit Court of Appealsca2โ 2nd Circuit Court of Appealsnyedโ Eastern District of New Yorktxndโ Northern District of Texas
- (Optional) Set Filed After and Filed Before to limit results to a specific date window (format: MM/DD/YYYY). Example:
01/01/2024to12/31/2024. - Choose an Order By option โ newest first, oldest first, most relevant, or most cited.
- Set Max Results (default: 200). Each page retrieves 20 opinions; for large queries, increase this up to 5,000.
- Click Start and wait for the run to complete (typically 10โ60 seconds for 200 results).
- Download your results as JSON, CSV, or Excel from the Dataset tab.
Input example
{"query":"patent infringement","court":"cafc","filedAfter":"01/01/2024","orderBy":"dateFiled desc","maxResults":100}
For recent Supreme Court opinions (no query needed):
{"court":"scotus","orderBy":"dateFiled desc","maxResults":50}
Output example
{"caseName":"Apple Inc. v. Samsung Electronics Co.","caseNameFull":"Apple Inc. v. Samsung Electronics Co., Ltd.","court":"Court of Appeals for the Federal Circuit","courtId":"cafc","citation":"839 F.3d 1034","citeCount":312,"dateFiled":"2016-10-07","docketNumber":"2015-1171","judge":"Moore","status":"Published","suitNature":"Patent","snippet":"This case returns to us after a partial grant of certiorari by the Supreme Court...","opinionUrl":"https://www.courtlistener.com/opinion/4109294/apple-inc-v-samsung-electronics-co/","clusterId":4109294}
Pricing
This Actor calls the CourtListener public API โ no browser required, minimal compute.
- Cost per 200 results: approximately $0.003โ$0.006 depending on run duration
- Per-result pricing: $0.003/result
- API rate limit delay: 1.5 seconds per page (20 results), so 200 results โ 15 seconds of API time
Use Cases
- Legal research automation โ Pull opinions matching specific legal theories or case facts for litigation research
- Citation analysis โ Identify the most-cited opinions in a jurisdiction or subject area using
citeCount - Compliance monitoring โ Track new opinions from specific courts relevant to your regulatory environment
- LegalTech / RAG pipelines โ Feed structured case law into LLM applications for legal Q&A and document analysis
- Law firm business development โ Monitor courts where opposing counsel or a target client is active
- Academic research โ Analyze trends in judicial output by court, date range, or legal topic
FAQ
Do I need a CourtListener API key?
No. The CourtListener API allows anonymous access at a lower rate limit. This Actor uses anonymous access and includes built-in polite delays (1.5 seconds between page requests) to stay within those limits. If you need higher throughput, you can obtain a free CourtListener API token at courtlistener.com and pass it as a custom header โ though for most use cases, anonymous access is sufficient.
What happens if I hit the rate limit (429)?
The Actor automatically detects 429 responses, sleeps for 5 seconds, and retries once. If the retry also fails, it stops gracefully and returns all records collected so far. Your dataset will not be empty โ you will receive however many records were fetched before the limit was reached.
How many opinions are in CourtListener?
CourtListener (operated by the Free Law Project) indexes over 6 million federal and state court opinions, covering hundreds of jurisdictions from the 1700s to the present day. The database grows continuously as new opinions are filed.
Can I filter by specific case types or legal topics?
Yes โ use the Search Query field with natural language or legal terminology. Examples: employment discrimination Title VII, Section 230 immunity, copyright fair use. You can also combine this with a Court ID to narrow results further.
Other Scrapers by SeatSignal
- CISA KEV Scraper โ Extract CISA Known Exploited Vulnerabilities catalog data
- OSHA Inspections Scraper โ Extract OSHA workplace safety inspection data
- FDA OpenFDA Scraper โ Extract FDA drug and device safety data
Legal Disclaimer
This Actor accesses publicly available data from the CourtListener platform, operated by the Free Law Project (a 501(c)(3) nonprofit). Court opinions are public records. No authentication bypass, scraping of private data, or terms-of-service violation is involved. Users are responsible for ensuring their use of the extracted data complies with applicable laws and regulations. For support, contact the Actor developer through the Apify Store.
