Lead generation
CourtListener Court Opinions Scraper — Free Case Law Search
Search CourtListener's free, keyless full-text case-law API and export clean case-law rows — case name, court, filing date, citations, and cite count — without a PACER/docket-reseller subscription.
Free Apify credit covers a first run. No credit card to try.
What this Actor scrapes
This Actor searches CourtListener's free, keyless full-text case-law API (opinions only — not RECAP/PACER dockets) and returns one structured row per matching case. Each row carries the case name, court, filing date, citation(s), cite count, and a direct link to the opinion.
CourtListener's search already covers 240,000+ U.S. court opinions for free — the work we sell is the handling: following CourtListener's cursor-based pagination correctly, isolating one malformed result so it doesn't crash the whole run, and shipping a clean, nullable dataset schema instead of a raw API passthrough.
What we handle for you
- 🛡️ We rotate browser fingerprints (curl-cffi impersonation) so every request looks like a real browser, not Python.
- 🔁 We retry with exponential backoff on
408 / 429 / 503and honourRetry-After— up to 5 attempts per page. - 🌐 We rotate residential proxies through Apify Proxy on every retry — fresh session, fresh exit IP.
- 🧱 We isolate per-row failures — one malformed result is skipped and logged, the run keeps going.
- 🧊 We keep the dataset clean — Pydantic-validated rows, nullable fields typed correctly, a stable
urlon every row. - 💰 You pay only for cases that land. A search that matches nothing still succeeds — you're never charged for a failed run.
Use cases
- Legal research — pull every opinion matching a legal question, party name, or topic for a memo or brief.
- Litigation support — build a bulk case-law dataset for a matter without a PACER/docket subscription.
- Legal-tech products — feed a clean, structured case-law dataset into your own search or citation tool.
- Compliance / due diligence — check whether a party, company, or topic shows up in published case law.
- Academic research — pull opinions filed within a date range or court for empirical legal studies.
Input
Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.
| Field | Type | Required | What it does |
|---|---|---|---|
query | string | yes | Free-text search against CourtListener's full-text opinion index (maps to the API's `q` parameter). |
court | string | no | Restrict to one court by its CourtListener short code (e.g. "scotus" for the Supreme Court). Leave blank to search all courts. |
filedAfter | string | no | Only return opinions filed on or after this date (YYYY-MM-DD). |
filedBefore | string | no | Only return opinions filed on or before this date (YYYY-MM-DD). |
orderBy | string | no | Result ordering, passed through to CourtListener's `order_by` parameter. |
maxResults | integer | no | Cap on total rows collected across all cursor pages. |
{
"query": "miranda rights",
"maxResults": 100,
"proxyConfiguration": {
"useApifyProxy": true
}
} Output
One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.
cluster_idcase_namecourtdate_filedcitationcite_counturl
{
"cluster_id": 10353022,
"case_name": "Miranda v. Arizona",
"case_name_full": "Ernesto A. Miranda v. State of Arizona",
"court": "Supreme Court of the United States",
"court_id": "scotus",
"court_citation_string": "U.S.",
"court_jurisdiction": null,
"date_filed": "1966-06-13",
"date_argued": null,
"citation": [
"384 U.S. 436"
],
"cite_count": 8421,
"attorney": "",
"url": "https://www.courtlistener.com/opinion/10353022/miranda-v-arizona/"
} Pricing
| Event | Price | When |
|---|---|---|
| Actor start | $0.05 | Once per run, covers warm-up and proxy session setup. |
| Result scraped | $0.0050 | Per result written to the dataset. |
You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.
FAQ
Does this need a CourtListener account or API key?
/api/rest/v4/search/ endpoint is free and keyless for opinion search.Does this cover PACER/RECAP dockets?
type=o) only. Dockets and oral arguments are a candidate for a future version.What happens if my query matches nothing?
Can I filter by court or date range?
court to a CourtListener short code (e.g. scotus) and/or filedAfter/filedBefore to narrow results server-side.Ready to run it?
Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.
Related Actors