CourtListener Federal Docket Scraper — RECAP API avatar

CourtListener Federal Docket Scraper — RECAP API

Pricing

from $100.00 / 1,000 docket returneds

Go to Apify Store
CourtListener Federal Docket Scraper — RECAP API

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

NexGenData

Maintained by Community

Actor stats

0

Bookmarked

15

Total users

2

Monthly active users

3 days ago

Last modified

Categories

Security

Limited permissions

Share

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

  1. Create a free account at https://www.courtlistener.com/register/ (confirm the email CourtListener sends you, if it asks).
  2. Copy your token from https://www.courtlistener.com/profile/api/ while signed in.
  3. 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

6 real rows delivered by CourtListener Federal Docket Scraper — RECAP API — run 3U0euhGYsXQ39cYkZ on build 0.0.9

case_namedocket_numberdocket_idcourtcourt_citationdate_filed
QCX LLC d/b/a Polymarket US v. James1:26-cv-0834574849372District Court, S.D. New YorkS.D.N.Y.2026-09-24
Mantle I.P. Holdings, Ltd v. Cardsmiths, LLC1:26-cv-0834474849313District Court, S.D. New YorkS.D.N.Y.2026-09-24
(PC) Ausborn v. CDCR Adult Parole Operation1:26-cv-0782374849288District Court, E.D. CaliforniaE.D. Cal.2026-09-24
Johnson v. Progressive Casualty Insurance Company2:26-cv-0174874849172District Court, E.D. WisconsinE.D. Wis.2026-09-24
Ahmed v. Pathan1:26-cv-0175474848920District Court, E.D. WisconsinE.D. Wis.2026-09-24
John O'Brien, III v. Emily Provencher26-341674848905Court of Appeals for the Third Circuit3rd 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.

EventPrice
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):

FieldNotes
case_name, case_name_full, docket_number, docket_idCase identity
court, court_id, court_citatione.g. txed / "E.D. Tex."
date_filed, date_argued, date_terminatedISO dates
assigned_to, assigned_to_id, referred_to, referred_to_idPresiding and referral judge, where indexed
nature_of_suit, cause, jurisdiction_type, jury_demandCivil cover-sheet metadata
chapter, trusteeBankruptcy dockets
parties, party_idsParty names as indexed
attorneys, attorney_ids, firms, firm_idsCounsel as indexed
pacer_case_id, docket_urlLink back to the CourtListener docket page
recap_documents_countHow many RECAP documents the search hit carried
sourceAlways 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

FieldTypeNotes
apiTokenstring (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_numberstringOptional. A docket number such as 1:26-cv-08344, 26-cv-8344 or 23-10127; add court to narrow it.
search_querystringFree-text search across case name, parties, counsel, filing text.
courtstringCourt ID filter, e.g. scotus, ca9, cand, nysd, txed.
date_filed_after / date_filed_beforestringYYYY-MM-DD.
nature_of_suitstringFederal nature-of-suit code, e.g. 830 (patent).
max_resultsinteger1–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 ApifyClient
client = 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 caseActor
FTC enforcement actionsftc-enforcement-actions-scraper
CFPB consumer complaintscfpb-consumer-complaints-scraper
EPA enforcement and complianceepa-echo-enforcement-scraper
Federal Register rule filingsfederal-register-rules-scraper
SEC 8-K material eventssec-form-8k-material-events-scraper
USAspending federal awardsusaspending-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.

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