⚖️ US Court Opinions & Case Law Search avatar

⚖️ US Court Opinions & Case Law Search

Pricing

Pay per event

Go to Apify Store
⚖️ US Court Opinions & Case Law Search

⚖️ 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

NexGenData

Maintained by Community

Actor 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 filed
  • docketNumber — the court's docket number, the universal identifier for the matter
  • url — 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 court and a dateFiledAfter cutoff, 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 docketNumber and caseName to 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=r to 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 url to 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

ParameterLabelDescription
searchTypeSearch typeo = court opinions, r = RECAP dockets.
queryQueryFull-text search across case name, party, and topic.
courtCourtCourt ID filter (e.g. scotus, cafc).
dateFiledAfterFiled afterOnly records filed on or after this date (YYYY-MM-DD).
maxResultsMax resultsMaximum number of records to return.
courtListenerTokenCourtListener token (optional)Optional free CourtListener token to raise rate limits.

How to use

Python (apify-client)

from apify_client import ApifyClient
client = 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

SourceCostWhat you get
Westlaw~$100-$300+/attorney/monthFull research suite with KeyCite; bulk export forbidden, not a programmatic feed
LexisNexisCustom enterprise contractFull 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-limitedRaw API surface; you build the client, pagination, and retry logic
US Court Opinions Search (this actor)$0.10/record, no subscriptionFiltered, 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.

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

Part of NexGenData's IP & Legal intelligence cluster — pair this actor with:

Browse the full 200+ actor catalog at https://apify.com/nexgendata?fpr=2ayu9b.