⚖️ US Court Opinions & Case Law Search
Pricing
Pay per event
⚖️ US Court Opinions & Case Law Search
Search 240,000+ US federal & state court opinions and case law (CourtListener): case name, court, date, citation, cite count, judge. For litigators, legal-AI, and researchers.
Pricing
Pay per event
Rating
0.0
(0)
Developer
NexGenData
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Share
Search 240,000+ U.S. federal and state court opinions and case law as structured JSON. $0.10 per record. No Westlaw or LexisNexis seat, no PACER per-page fee, no per-search metering wall.
Case law is the raw material of every litigation strategy, every legal-research memo, and every legal-AI product — and the incumbent way to query it costs hundreds to thousands of dollars per attorney per month. This actor reads the public CourtListener corpus — the open-access case-law database maintained by the Free Law Project — and returns court opinions and RECAP dockets as clean JSON. Run a full-text search across case names, parties, and topics, filter by court and filing date, and get back the case name, the deciding court, the date filed, the docket number, and a direct link to the opinion. Build a case-law research pipeline, a litigation-monitoring watchlist, or a retrieval index for a legal-AI model — without a per-seat research subscription and without scraping a court site yourself.
Why use this
Westlaw and LexisNexis are extraordinary research platforms, but they are priced for law firms and metered per seat — and their terms forbid bulk export of the very results you most want to pipe into a downstream system. PACER, the federal courts' own system, charges per page and is built for retrieving one document at a time, not for querying across a corpus. Meanwhile the underlying opinions are public records: courts publish them, and the Free Law Project's CourtListener has aggregated 240,000+ of them into an open database. The gap is access shape, not access rights — you need that public corpus as a programmatic, filterable JSON feed.
This actor is that feed. You pass a query and filters; you get back records. It handles the CourtListener API surface, pagination, and rate limits for you, and — because billing is pay-per-result — a search that returns nothing costs you nothing beyond the actor-start event. If you supply a free CourtListener token, the actor uses it to raise your rate limits for larger pulls; without one it still runs at the public-tier rate.
What you get
Each record returned is structured JSON populated from the CourtListener corpus wherever the source provides the field:
caseName— the case caption (e.g. Smith v. Acme Corp.)court— the deciding court (Supreme Court of the United States, a Court of Appeals, a district court, or a state court)dateFiled— the date the opinion or docket was fileddocketNumber— the court's docket number, the universal identifier for the matterurl— a direct link to the opinion or docket on CourtListener for full-text reading and verification
The schema is additive-only and stable, so records load straight into a case-management system, a research database, Snowflake, BigQuery, or Postgres without re-mapping each refresh.
Use cases
- Case-law research at scale — Run a full-text search for a doctrine, a statute, or a fact pattern across 240,000+ opinions, narrowed to the relevant
courtand adateFiledAftercutoff, and pull every matching case as JSON for review. - Litigation monitoring — Track a party, a counsel, or a topic on a schedule and surface newly filed opinions and dockets the day they land — a standing watch on a competitor's litigation, a regulator's enforcement posture, or a circuit's emerging line of authority.
- Citator and precedent mapping — Use the
docketNumberandcaseNameto anchor a precedent graph, joining opinions by court and date to trace how a line of authority develops across circuits. - Legal-AI and RAG ingestion — Each record is JSON-flat and carries a source URL, making it drop-in fodder for a case-law retrieval index or a litigation-assistant model grounded in public opinions.
- Docket surveillance (RECAP) — Set
searchType=rto search RECAP dockets — the crowd-sourced archive of PACER documents — to find federal cases and filings without paying PACER per-page fees. - Conflict and exposure checks — Batch-search counterparties and their affiliates against the opinion corpus to surface prior litigation history before a deal or an engagement.
- Empirical legal research — Quantify filing volume by court and date for scholarship on caseload, doctrine diffusion, or circuit-split formation.
- Brief and memo drafting support — Pull the candidate authorities for a research question as structured records, then read each via its
urlto assemble a citation list.
Sample output
{"caseName": "Riverside Holdings LLC v. Meridian Logistics, Inc.","court": "Court of Appeals for the Federal Circuit","dateFiled": "2025-11-14","docketNumber": "23-1492","url": "https://www.courtlistener.com/opinion/9912345/riverside-holdings-llc-v-meridian-logistics-inc/"}
A RECAP docket record (searchType=r) looks like this:
{"caseName": "United States v. Calloway","court": "U.S. District Court for the Southern District of New York","dateFiled": "2026-02-03","docketNumber": "1:26-cr-00118","url": "https://www.courtlistener.com/docket/68812345/united-states-v-calloway/"}
Input parameters
| Parameter | Label | Description |
|---|---|---|
searchType | Search type | o = court opinions, r = RECAP dockets. |
query | Query | Full-text search across case name, party, and topic. |
court | Court | Court ID filter (e.g. scotus, cafc). |
dateFiledAfter | Filed after | Only records filed on or after this date (YYYY-MM-DD). |
maxResults | Max results | Maximum number of records to return. |
courtListenerToken | CourtListener token (optional) | Optional free CourtListener token to raise rate limits. |
How to use
Python (apify-client)
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("nexgendata/courtlistener-court-opinions").call(run_input={"searchType": "o","query": "trade secret misappropriation","court": "cafc","dateFiledAfter": "2024-01-01","maxResults": 100,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["caseName"], item["court"], item["dateFiled"], item["url"])
cURL
curl -X POST "https://api.apify.com/v2/acts/nexgendata~courtlistener-court-opinions/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"searchType": "o","query": "trade secret misappropriation","court": "cafc","dateFiledAfter": "2024-01-01","maxResults": 100}'
Results stream into the Apify dataset, exportable as JSON, JSONL, CSV, or Excel. Schedule via Apify's built-in scheduler for a standing litigation watch, and wire a webhook to fire a Slack / Zapier / Make alert on new matches.
Pricing
This actor runs on Apify's pay-per-event (PPE) model — you pay for results, not run-time:
- $0.10 per record — the primary event, charged once per opinion or docket pushed to the dataset
- Actor start — a negligible one-time per-run event
No subscriptions, no seat licences, no minimums.
Cost worked example
- A doctrine search returning 100 opinions → ~$10
- A daily litigation watch returning ~15 new filings → ~$1.50/day
- A conflict-check batch returning ~40 prior cases → ~$4
A search that matches nothing costs nothing beyond the actor-start event. Apify's free tier covers most experiments. Browse 200+ buyer-intent actors at https://apify.com/nexgendata?fpr=2ayu9b
How this compares to Westlaw, LexisNexis, and PACER
| Source | Cost | What you get |
|---|---|---|
| Westlaw | ~$100-$300+/attorney/month | Full research suite with KeyCite; bulk export forbidden, not a programmatic feed |
| LexisNexis | Custom enterprise contract | Full research suite with Shepard's; no bulk JSON API |
| PACER (federal courts) | $0.10/page (capped per document) | One document at a time; built for retrieval, not corpus search |
| CourtListener (DIY) | Free API, rate-limited | Raw API surface; you build the client, pagination, and retry logic |
| US Court Opinions Search (this actor) | $0.10/record, no subscription | Filtered, structured JSON — case name, court, date, docket number, source URL |
If you need Shepard's / KeyCite citator analysis, headnotes, and treatises, you still want Westlaw or Lexis. But if your workflow is corpus search, litigation monitoring, conflict checks, or feeding a legal-AI index — and you want records as JSON for cents apiece — this actor is the right cost model.
FAQ
Q: Where does the data come from?
A: CourtListener, the open-access legal database run by the non-profit Free Law Project, aggregating 240,000+ U.S. federal and state court opinions plus RECAP dockets. Every record links back to CourtListener via its url.
Q: What is the difference between searchType=o and searchType=r?
A: o searches court opinions — the decisions courts publish. r searches RECAP dockets — the crowd-sourced archive of PACER docket entries and documents. Use opinions for case-law research and RECAP for docket-level monitoring of active federal matters.
Q: Do I need a CourtListener token?
A: No — the actor runs without one at the public rate limit. Supplying a free CourtListener token via courtListenerToken raises the limit, which matters for larger pulls. Tokens are free from the Free Law Project.
Q: Does this give me the full opinion text?
A: The actor returns the case metadata — caption, court, date, docket number, and the link. Follow url to read the full opinion text on CourtListener.
Q: How current is the corpus?
A: CourtListener ingests opinions and dockets on an ongoing basis. Use dateFiledAfter to constrain to recent filings and schedule the actor for a standing watch.
Schema stability & versioning
This actor follows NexGenData's additive-only schema contract. New fields may be added as new keys, defaulting to null for older runs. Existing fields are never renamed or removed without a major-version bump and advance changelog notice. Field semantics are never silently changed; a required change adds a new field and keeps the old one for at least 90 days. Build a production research pipeline on this output without a change breaking your ETL.
Compliance & legal
- The actor reads the public, open-access CourtListener database, which aggregates public court records and opinions. Court opinions are public records.
- Requests are paced politely against the CourtListener API.
- The actor collects, stores, and transmits no credentials and accesses no paywalled content.
- You are responsible for ensuring downstream use complies with CourtListener's terms and your jurisdiction's laws. Verify any case before relying on it for a filing by reading the source via
url. - Consult counsel before bulk redistribution of compiled case-law records.
Related NexGenData actors
Part of NexGenData's IP & Legal intelligence cluster — pair this actor with:
- RECAP / PACER Docket Search — federal docket lookups without PACER per-page fees
- CourtListener Federal Judges — the judiciary database for judge-level research
- CourtListener Oral Arguments — oral-argument audio and metadata
- US Copyright Records Search — copyright registrations and transfers for IP matters
- USPTO Patent Search — patent records for IP litigation research
- TTAB Trademark Opposition Tracker — trademark opposition and cancellation proceedings
Browse the full 200+ actor catalog at https://apify.com/nexgendata?fpr=2ayu9b.