CourtListener Federal Docket Scraper — RECAP API
Pricing
from $100.00 / 1,000 docket returneds
CourtListener Federal Docket Scraper — RECAP API
Works without a token (federal cases with published opinions, from GovInfo); add a free CourtListener API token for full RECAP dockets. Litigation due diligence: case name, docket number, court, parties, attorneys, filings. A PACER alternative.
Pricing
from $100.00 / 1,000 docket returneds
Rating
0.0
(0)
Developer
NexGenData
Maintained by CommunityActor stats
0
Bookmarked
15
Total users
2
Monthly active users
3 days ago
Last modified
Security
Limited permissionsShare
⚖️ CourtListener Federal Docket Scraper — federal court dockets from the RECAP archive
Federal court dockets with parties, attorneys and filings from CourtListener and the Free Law Project's RECAP archive: CourtListener Federal Docket Scraper is a NexGenData tool on Apify.
🔑 Two ways to run
1. With your free CourtListener token (recommended, about a minute): full RECAP dockets from every federal court, including new filings, the Supreme Court, judges, attorneys, firms, filing dates, cause and jury demand.
- Create a free account at https://www.courtlistener.com/register/ (confirm the email CourtListener sends you, if it asks).
- Copy your token from https://www.courtlistener.com/profile/api/ while signed in.
- Paste it into the CourtListener API token field (
apiToken), the first field in the input form, and start the run.
Free CourtListener tokens allow 5 requests a minute, 50 an hour and 125 a day; your token stays in your own account. A token CourtListener rejects stops the run before anything is searched; no result rows are charged (only the platform start fee).
2. Without a token: the run works right away and searches our copy of CourtListener's bulk docket data (published by Free Law Project every quarter). The current copy is as of Sep 30, 2026; the next file is due Dec 31, 2026. Every row carries snapshot_date and data_as_of with that date, so you always know how fresh it is. You can search by case name or party words in the case title, docket number (docket_number, e.g. 1:26-cv-08344), court, filing-date range and nature-of-suit code, across every federal district, bankruptcy and appeals court in the file. Each row is a RECAP docket summary: case name, docket number, court, date filed, date terminated, date of last filing, cause, nature of suit, assigned judge, jury demand and the CourtListener docket link. What needs your free token: parties beyond the case title, attorneys, docket entries, and anything filed after the snapshot date. Each row says which source it came from (source: courtlistener-bulk, record_type).
This copy covers 20 federal courts the old no-token source (GovInfo) had nothing for: S.D.N.Y. (nysd), C.D. Cal. (cacd), E.D. Va. (vaed), W.D. Wash. (wawd), D. Nev. (nvd), M.D. Fla. (flmd), S.D. Ga. (gasd), S.D. Iowa (iasd), C.D. Ill. (ilcd), N.D. Ind. (innd), W.D. La. (lawd), N.D. Miss. (msnd), S.D. Miss. (mssd), E.D.N.C. (nced), N.D. Okla. (oknd), D.S.C. (scd), W.D. Va. (vawd), S.D. W. Va. (wvsd), E.D. Wis. (wied) and the Court of Federal Claims (uscfc).
Data credit: CourtListener bulk data by Free Law Project, released under the Public Domain Mark 1.0. This actor is not produced, endorsed or verified by Free Law Project. Not a consumer report: do not use these rows as a factor in decisions about anyone's credit, insurance, employment or housing (or any other purpose covered by the Fair Credit Reporting Act).
Use it for litigation due diligence on companies and parties — output is federal docket search results (case, court, parties, attorneys, filings).
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.
📊 Sample Output

case_name | docket_number | docket_id | court | court_citation | date_filed |
|---|---|---|---|---|---|
| QCX LLC d/b/a Polymarket US v. James | 1:26-cv-08345 | 74849372 | District Court, S.D. New York | S.D.N.Y. | 2026-09-24 |
| Mantle I.P. Holdings, Ltd v. Cardsmiths, LLC | 1:26-cv-08344 | 74849313 | District Court, S.D. New York | S.D.N.Y. | 2026-09-24 |
| (PC) Ausborn v. CDCR Adult Parole Operation | 1:26-cv-07823 | 74849288 | District Court, E.D. California | E.D. Cal. | 2026-09-24 |
| Johnson v. Progressive Casualty Insurance Company | 2:26-cv-01748 | 74849172 | District Court, E.D. Wisconsin | E.D. Wis. | 2026-09-24 |
| Ahmed v. Pathan | 1:26-cv-01754 | 74848920 | District Court, E.D. Wisconsin | E.D. Wis. | 2026-09-24 |
| John O'Brien, III v. Emily Provencher | 26-3416 | 74848905 | Court of Appeals for the Third Circuit | 3rd Cir. | 2026-09-24 |
Real rows from run 3U0euhGYsXQ39cYkZ on build 0.0.9 (2026-09-25), unedited apart from masked emails/phones and shortened long text; fields the source does not publish are empty.
⚙️ Sample inputs
This is the Store example input — the same input Apify's automated check runs — so it is proven to return rows on the current build. Paste it into the input form, or send it through the API, CLI or a schedule:
{"search_query": "civil rights","date_filed_after": "2024-01-01","max_results": 50}
🧾 JSON sample record
One real record from run 3U0euhGYsXQ39cYkZ (emails/phones masked, long text shortened):
{"case_name": "QCX LLC d/b/a Polymarket US v. James","case_name_full": "","docket_number": "1:26-cv-08345","docket_id": 74849372,"court": "District Court, S.D. New York","court_id": "nysd","court_citation": "S.D.N.Y.","date_filed": "2026-09-24","date_argued": null,"date_terminated": null,"assigned_to": null,"assigned_to_id": null,"referred_to": null,"referred_to_id": null,"nature_of_suit": "950 Constitutional - State Statute","cause": "07:1 Personal Property","jurisdiction_type": "Federal Question","jury_demand": "Plaintiff","chapter": null,"trustee": null,"parties": ["John A. Crotty","Robert Williams","Marissa Shorenstein","QCX LLC d/b/a Polymarket US","Brian O'Dwyer","Jerry Skurnik","Sylvia B. Hamer","Martin J. Mack","…"],"party_ids": [23794528,23794529,23794530,23794531,23794532,23794533,23794534,23794535,"…"],"attorneys": ["Adam Israel Steene","Amanda LeSavage","Orin Snyder"],"attorney_ids": [16117704,16117702,16117703],"firms": ["Gibson Dunn & Crutcher LLP","Gibson Dunn & Crutcher","Gibson Dunn & Crutcher (Ny)"],"firm_ids": [209345,20858,986905],"pacer_case_id": "673553","docket_url": "https://www.courtlistener.com/docket/74849372/qcx-llc-dba-polymarket-us-v-james/","recap_documents_count": 1,"source": "courtlistener.com"}
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 |
|---|---|---|
apiToken | string (secret) | Optional, first field. Your free CourtListener API token (see the three steps above). With it: live RECAP dockets from every court, with parties, attorneys and entries. Without it: our CourtListener bulk-data copy (as of the snapshot date). |
docket_number | string | Optional. A docket number such as 1:26-cv-08344, 26-cv-8344 or 23-10127; add court to narrow it. |
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. |
At least one of search_query, court or nature_of_suit is required. If none is supplied the run fails at once with a status message naming the missing field; only the platform start fee is charged.
About the API token
Since Oct 27, 2026 CourtListener answers every search without a token with HTTP 401, so full RECAP dockets need your own free token (three steps at the top). Without one, the actor searches its copy of CourtListener's quarterly bulk docket data instead (see "Two ways to run"). The actor never uses a NexGenData token on your behalf. Use within a paid product is subject to CourtListener's own API terms.
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 why (with a token: CourtListener's own match count; without one: the snapshot date, and how to add your free token). Only the platform start fee 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.
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.
Run it on a schedule
A daily run fits most litigation tracking, because new federal cases are filed every business day and CourtListener mirrors them on an ongoing basis. Set date_filed_after to a recent date so each run returns newly filed dockets as new rows. Fields such as attorneys, firms and nature_of_suit are often empty on brand-new dockets and can fill in later, so a docket you saw before may come back with more detail. The actor has no new-only mode, so keep only rows whose docket_id you have not stored, and supply your own apiToken so scheduled runs are not blocked by the anonymous rate limit. Send each run's results onward with a webhook, Google Sheets, Zapier, Make or the Apify API.
Video guides from Apify: Schedule your Actor · Integrations
FAQ
Why use this instead of the official PACER system or the CourtListener API?
CourtListener's API is free with a token, and this actor reads it. What it adds is one flat row per docket with a fixed field set you can load into a sheet or warehouse without re-mapping, clear run outcomes (a throttled or blocked run fails instead of looking empty), and runs you can schedule and export. Compared with PACER, it reads the free RECAP archive, so there are no per-page fees, but it only covers documents someone has already contributed to RECAP. It is not made by or linked to the Free Law Project or the federal courts.
What does a typical run cost?
You pay per result, not for run time: $0.10 for each row in the results, plus $0.00005 per run start (charged per GB of run memory, minimum one). A run that returns 50 dockets costs about $5.00. Live prices are always shown in the Pricing tab.
How do I track new patent lawsuits filed in federal court?
Set nature_of_suit to 830 (patent) and date_filed_after to a recent date. Add court with a court ID such as txed or cand to focus on one district. Each row gives the case name, docket number, court, filing date, parties, counsel where indexed and a link to the CourtListener docket page.
Does it return the actual court filings or documents?
No. It returns docket-level data from the RECAP search index. It does not return docket-entry text, PDF files, attorney contact details or bar admissions, related or consolidated case links, or appellate history.
Do I need a CourtListener API token?
Yes — since Oct 27, 2026 CourtListener requires one for every search. Without it the run stops before anything is searched or charged (missing_courtlistener_token). A personal token is free from CourtListener (5 requests/min, 50/hour, 125/day on the default tier).
Does it cover state courts or sealed cases?
No. It covers federal courts only: district courts, appellate courts and the Supreme Court. Sealed dockets are not available on CourtListener or on PACER public access.
Related actors
- RECAP PACER Federal Docket Search API — another way to search federal dockets in the RECAP archive.
- US Court Opinions & Case Law Search API — read the court opinions behind the cases.
- US Federal & State Judges Database API — look up the judges assigned to dockets.
- Legal Data MCP — Case Law, Dockets & Filings for AI Agents — dockets and case law behind one AI agent tool.
- Court Records Search — US Public Case Data API — search wider US public case data.
🤖 Use with AI agents
Structured JSON for LLM and agent pipelines (Claude, the OpenAI Agents SDK, n8n or any MCP-aware client).
Sample agent prompt:
Find recent federal patent infringement cases filed in the Western District of Texas.