CourtListener Federal Docket Scraper — RECAP API
Pricing
from $100.00 / 1,000 docket returneds
CourtListener Federal Docket Scraper — RECAP API
Scrape federal court dockets via CourtListener / Free Law Project — case name, docket number, court, parties, attorneys, filings, hearing schedule, jurisdiction. PACER alternative for litigation paralegals, legal-tech, e-discovery vendors, journalists tracking federal litigation.
Pricing
from $100.00 / 1,000 docket returneds
Rating
0.0
(0)
Developer
NexGenData
Maintained by CommunityActor stats
0
Bookmarked
10
Total users
3
Monthly active users
4 days ago
Last modified
Categories
Share
⚖️ CourtListener Federal Docket Scraper — federal court dockets from the RECAP archive
Scrape federal court dockets — district courts, appellate courts, and the Supreme Court — via CourtListener's RECAP archive. Search by case name, party, attorney, court, nature of suit, or date filed. Every row is one docket, returned as structured JSON.
Pricing
This actor uses pay-per-event pricing on Apify.
| Event | Price |
|---|---|
| Docket returned (primary — one delivered docket row) | $0.10 |
| Actor start | $0.00005 per run, per GB of memory (minimum 1) |
You are charged only for docket rows actually delivered to the dataset. A run that matches nothing charges nothing beyond the start fee. A run that cannot reach CourtListener fails and charges nothing beyond the start fee.
For high-volume use (100K+ records/month), contact NexGenData about volume terms.
What You Get
Each dataset row is one docket, with these fields (populated wherever CourtListener's RECAP search index provides them):
| Field | Notes |
|---|---|
case_name, case_name_full, docket_number, docket_id | Case identity |
court, court_id, court_citation | e.g. txed / "E.D. Tex." |
date_filed, date_argued, date_terminated | ISO dates |
assigned_to, assigned_to_id, referred_to, referred_to_id | Presiding and referral judge, where indexed |
nature_of_suit, cause, jurisdiction_type, jury_demand | Civil cover-sheet metadata |
chapter, trustee | Bankruptcy dockets |
parties, party_ids | Party names as indexed |
attorneys, attorney_ids, firms, firm_ids | Counsel as indexed |
pacer_case_id, docket_url | Link back to the CourtListener docket page |
recap_documents_count | How many RECAP documents the search hit carried |
source | Always courtlistener.com |
The field set is stable across runs — safe to load into a warehouse without re-mapping each refresh.
What this actor does not return: individual docket-entry text, PDF byte content, attorney contact details or bar admissions, related/consolidated case graphs, or appellate history. Those are not in the v4 RECAP search index this actor reads. Many CourtListener fields are sparse — attorneys, firms, cause and nature_of_suit are frequently empty on newly-filed dockets, and the row reflects that honestly rather than guessing.
Input
| Field | Type | Notes |
|---|---|---|
search_query | string | Free-text search across case name, parties, counsel, filing text. |
court | string | Court ID filter, e.g. scotus, ca9, cand, nysd, txed. |
date_filed_after / date_filed_before | string | YYYY-MM-DD. |
nature_of_suit | string | Federal nature-of-suit code, e.g. 830 (patent). |
max_results | integer | 1–2000. Each result is one docket and one charge. |
apiToken | string (secret) | Optional CourtListener API token. |
At least one of search_query, court or nature_of_suit is required. If none is supplied the run succeeds with 0 rows and a status message naming the missing field — nothing is charged.
About the API token
CourtListener throttles anonymous callers hard. Runs without a token share one small quota across every anonymous datacenter IP, and can be refused with HTTP 429 for over an hour at a time. A personal token is free at https://www.courtlistener.com/help/api/rest/ and raises the limit substantially. Supply apiToken for any run larger than a few pages.
Quick Start
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("nexgendata/courtlistener-federal-docket-scraper").call(run_input={"search_query": "patent infringement","date_filed_after": "2025-01-01","max_results": 50,"apiToken": "YOUR_COURTLISTENER_TOKEN",})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["case_name"], item["docket_number"], item["court_id"])
curl -X POST "https://api.apify.com/v2/acts/nexgendata~courtlistener-federal-docket-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"search_query": "patent infringement", "max_results": 50}'
Schedule it on Apify's built-in scheduler for daily or hourly refreshes.
How Runs End
This actor is explicit about outcomes so you are never billed for silence:
- Rows delivered — status message reports how many dockets were returned and charged.
- Nothing matched — the run succeeds with 0 rows and says so, including CourtListener's own match count. Nothing is charged.
- Source unreachable, throttled, or its response shape changed — the run FAILS with a status message naming the cause. A blocked source is never reported as an empty result.
- Run time limit reached — the run stops cleanly before the platform timeout, keeps the rows already delivered, and says "stopped early at the run time limit". Only delivered rows are charged.
Why This Beats Paying PACER Directly
- PACER charges $0.10 per page with a $3-per-document cap; a complex docket can run to tens of dollars. This actor reads CourtListener's free RECAP mirror and charges a flat rate per docket row.
- No Westlaw or Bloomberg Law seat — those are per-seat annual licences. This is per-row with no minimum.
- Full-text search across indexed filing text, not just case metadata.
Use Cases
- Litigation analysts — track newly-filed federal suits in a sector (patent, antitrust, class actions).
- Law firms — prospecting: identify companies newly named as defendants in your practice area.
- Journalists — build a feed of new filings against named companies.
- Academic researchers — empirical legal-studies panels: case duration, court effects, filing volumes.
- Compliance teams — monitor litigation exposure across a portfolio.
FAQ
Q: Is this PACER or CourtListener? A: CourtListener's RECAP archive — an open mirror of PACER documents contributed by users, run by the Free Law Project (a 501(c)(3) nonprofit). Coverage is good but not complete; documents nobody has contributed are not in RECAP.
Q: Is this legal? A: Yes. These are public-record federal court filings served by a public API.
Q: How fresh is the data? A: CourtListener mirrors PACER on an ongoing basis, typically within hours. This actor reads the API live on each run.
Q: Can I search by judge?
A: Put the judge's name in search_query — CourtListener's full-text index covers the judge field. There is no separate judge input.
Q: What about state courts or sealed cases? A: Federal only. Sealed dockets are not available on CourtListener or on PACER public access.
Q: Why did my run fail with HTTP 429?
A: You ran without an apiToken and hit CourtListener's anonymous quota. Get a free token (link above) and set it. The run fails rather than returning a silent empty dataset so you know the difference between "no matches" and "we were blocked".
Sister Actors in the NexGenData Fleet
| Use case | Actor |
|---|---|
| FTC enforcement actions | ftc-enforcement-actions-scraper |
| CFPB consumer complaints | cfpb-consumer-complaints-scraper |
| EPA enforcement and compliance | epa-echo-enforcement-scraper |
| Federal Register rule filings | federal-register-rules-scraper |
| SEC 8-K material events | sec-form-8k-material-events-scraper |
| USAspending federal awards | usaspending-federal-awards-scraper |
Browse the catalog at https://apify.com/nexgendata?fpr=2ayu9b.
Built by independent regulatory-data engineers. Reach out via the Apify message form for custom integrations.