⚖ CourtListener Docket Monitor
Pricing
from $3.00 / 1,000 docket records
⚖ CourtListener Docket Monitor
Stop checking PACER by hand. Scrape and monitor federal dockets by party, court, filing date, or nature of suit. Get case names, docket numbers, judges, parties, attorneys, status, ISO dates, and direct links. Export, run via API, schedule, or integrate with other tools.
Pricing
from $3.00 / 1,000 docket records
Rating
0.0
(0)
Developer
Skootle
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Stop checking PACER and CourtListener by hand
Need to know when a client, portfolio company, or competitor is named in a new federal case? Search once, save the input, and schedule structured docket results instead of repeating searches and cleaning exports.
- Search federal dockets by party, court, filing date, keyword, or nature of suit.
- Schedule recurring litigation-monitoring runs from one saved input.
- Export case names, docket numbers, judges, parties, attorneys, status, ISO dates, and direct CourtListener links.

TL;DR
CourtListener Docket Monitor turns CourtListener and RECAP search results into one structured row per case. Use it for company watchlists, daily new-filing alerts, litigation research, and legal-news monitoring. Every row includes source names, best-effort cleaned names, nature-of-suit taxonomy, ISO dates, status, judges, attorneys, and direct source links. Party roles are inferred only when a name can be matched to the case caption; uncertain roles remain other.
Verified cloud proof: three current-build runs each returned 5 dockets with 0 recorded errors. The Apple watchlist run covered 4 federal courts, and the case-caption role check found no unsupported plaintiff/defendant assignments. Inspect the public sample dataset.
Coverage follows CourtListener and RECAP. Very recent, sealed, and unevenly covered state matters may be missing. Treat inferred party roles and cleaned names as best-effort enrichment and verify important facts against the source docket.
Try it on a small dataset, then let us know what you think in a review.
What does CourtListener Federal Dockets do?
CourtListener is operated by the non-profit Free Law Project. It maintains a public collection of federal and state court data sourced in part from RECAP, the community PACER archive. Coverage varies by court, date, document type, and RECAP availability; use CourtListener's coverage page for current details.
This actor wraps the CourtListener /api/rest/v4/search/?type=r endpoint, paginates through results, and normalizes each docket into a flat dataset row with these enrichments on top of the raw API output:
- Best-effort party-role inference. CourtListener returns
partyas a flat array with unreliable ordering. This actor matches names to the two sides of the case caption and leaves uncertain roles asotherrather than guessing. - Best-effort name cleanup. Common legal suffixes and punctuation are removed into a separate
nameCanonicalfield while every original source value remains innameRaw. - Nature-of-suit taxonomy. The raw
suitNaturefield is a free-text string with a leading JFC numeric code (e.g. "830 Patent"). The actor decodes the code into one of 17 top-level categories:intellectual_property,civil_rights,antitrust,securities,labor,contract,tort_personal_injury, etc. Filter on category in one expression. - Date arithmetic.
daysSinceFiledcomputed at scrape time.isTerminatedboolean derived from the presence of a termination date. - Firm cleanup plus source attorneys. Firm names include raw and best-effort cleaned values; attorney names remain exactly as CourtListener returned them.
Why scrape CourtListener?
PACER is the official federal court records system and charges for document access. CourtListener, operated by Free Law Project, maintains a public RECAP-backed search API. This Actor turns that API into scheduled, structured monitoring output without requiring a manual PACER search-and-download workflow.
What CourtListener gives you raw is good but not finished:
- The
partyfield is a flat array with no plaintiff/defendant tags. Every consumer writes their own splitter. suitNatureis "830 Patent" or "440 Civil Rights" - no enum, no category rollup. Every consumer writes their own taxonomy.- Corporate-entity normalization is on you. Same parent appears as "Apple Inc.", "APPLE, INC.", "Apple Computer Co." across cases.
- Date math is on you. "Has this case been pending more than 2 years?" needs
dateFiledparsing on every read.
This actor bakes all four into the output. Buyers consume; they don't pre-process.
Who needs this?
- Litigation-finance shops building automated triage of new federal filings against companies in their portfolio.
- IP and patent law firms tracking new infringement filings against competitors of their clients.
- Class-action plaintiff firms monitoring new filings in a target nature-of-suit category.
- Legal-news desks running daily new-filing alerts.
- Corporate compliance teams tracking adverse-litigation exposure on portfolio companies (PE/VC).
- General counsel offices at large companies tracking new filings naming the company as a party.
- AI agents and automation pipelines that need clean, taxonomy-tagged docket data piped into Slack, LLM context, or a structured DB.
How to use CourtListener Federal Dockets
- Open the actor in the Apify Console.
- Set
contactEmailto your work email (recommended; CourtListener asks scrapers to identify themselves but does not require it). - (Optional, recommended) Set
courtlistenerApiTokenfor substantially higher rate limits. Free 1-minute signup at https://www.courtlistener.com/help/api/. - Choose at least one filter:
searchTerm,courts,partyName,dateFiledFrom/To, ornatureOfSuit. - Set
maxItems(default 10 trial; production typically 100-1000). - Click Start.
How much will scraping CourtListener cost?
Pricing is per-result (per docket row written to the dataset).
| Plan tier | Per-result price |
|---|---|
| FREE | $0.007 |
| BRONZE | $0.005 |
| SILVER | $0.004 |
| GOLD | $0.003 |
| PLATINUM | $0.003 |
| DIAMOND | $0.003 |
A 10-row trial costs $0.07 on the FREE tier or $0.03 on GOLD. Your final cost depends only on the number of docket rows saved; use maxItems to set a predictable ceiling before starting a broader search.
Is it legal to scrape CourtListener?
Yes. CourtListener's REST API is publicly documented and explicitly intended for programmatic use. Free Law Project's terms request attribution and ask scrapers to identify themselves in User-Agent (this actor enforces that). Commercial use is permitted under their terms. The underlying federal docket data is U.S. government public record.
We recommend setting your contactEmail and getting a free API token. Token requests are processed automatically and substantially raise your rate limit.
Examples
All new patent cases in NDCal in the last 90 days.
{"courts": ["cand"],"natureOfSuit": "830","dateFiledFrom": "2026-02-12","maxItems": 200}
Every federal case where Apple is a party.
{"partyName": "Apple","dateFiledFrom": "2026-01-01","maxItems": 500}
Antitrust filings, market-wide.
{"natureOfSuit": "antitrust","dateFiledFrom": "2026-01-01","maxItems": 300}
Daily new-filing monitor (cron).
{"dateFiledFrom": "2026-05-11","dateFiledTo": "2026-05-11","maxItems": 1000}
Securities class-action filings in SDNY.
{"courts": ["nysd"],"natureOfSuit": "securities","dateFiledFrom": "2026-01-01","maxItems": 200}
Search for cases mentioning "trade secret" + "AI".
{"searchTerm": "trade secret AI","maxItems": 100}
Input parameters
| Field | Type | Description |
|---|---|---|
searchTerm | string | Free-text search across case names + parties + docket text. |
courts | string[] | CourtListener court IDs (e.g. cand, nysd, txed). |
partyName | string | Substring match on party name. |
dateFiledFrom | string | ISO date inclusive. |
dateFiledTo | string | ISO date inclusive. |
natureOfSuit | string | JFC code (e.g. 830) or keyword (antitrust). |
contactEmail | string | Recommended. Included in User-Agent. |
courtlistenerApiToken | string | Optional, raises rate limit. |
maxItems | integer | Upper bound. Default 10. |
Output format
| Field | Type | Notes |
|---|---|---|
recordType | string | Always "docket". |
docketId | integer | CourtListener docket ID. |
docketNumber | string | E.g. "4:26-cv-04382". |
caseName | string | E.g. "Reynolds v. Google LLC". |
caseNameFull | string | Long-form case name when available. |
pacerCaseId | string | PACER-side case ID. |
court | string | Court display name. |
courtId | string | CourtListener court ID. |
courtCitationString | string | E.g. "N.D. Cal.". |
dateFiled | string | ISO date. |
dateTerminated | string | ISO date or null. |
dateArgued | string | ISO date for appellate cases. |
daysSinceFiled | integer | Computed at scrape time. |
isTerminated | boolean | True iff dateTerminated is set. |
natureOfSuitRaw | string | Original JFC field. |
natureOfSuitCategory | enum | 17-value top-level category. |
cause | string | Statute or rule cited. |
juryDemand | string | "Plaintiff" / "Defendant" / "Both" / null. |
parties, plaintiffs, defendants | object[] | {nameRaw, nameCanonical, role}. |
firms | object[] | {nameRaw, nameCanonical} for filer law firms. |
attorneys | string[] | Named attorneys on the docket. |
assignedToJudge | string | Federal judge assigned. |
referredToJudge | string | Magistrate judge if applicable. |
docketUrl | string | Direct link to the docket page. |
fieldCompletenessScore | integer | 0-100. |
agentMarkdown | string | LLM-ready card. |
The record below came from the verified current build, not a hand-written fixture:
{"recordType": "docket","outputSchemaVersion": "2026-07-17","docketNumber": "2:26-cv-02178","caseName": "Doe v. Apple, Inc.","courtCitationString": "D. Nev.","dateFiled": "2026-07-15","natureOfSuitCategory": "tort_personal_injury","plaintiffs": [{ "nameRaw": "Jane Doe", "nameCanonical": "Jane Doe", "role": "plaintiff" }],"defendants": [{ "nameRaw": "Apple Inc.", "nameCanonical": "Apple", "role": "defendant" }],"assignedToJudge": "Anne R. Traum","docketUrl": "https://www.courtlistener.com/docket/73637870/doe-v-apple-inc/"}
During the Actor run
The actor calls CourtListener's /api/rest/v4/search/?type=r endpoint with your filters, paging via cursor through results. Each result becomes one dataset row. The CourtListener Search API returns up to 100 results per page; the actor follows cursor pagination automatically until maxItems is hit or no more results exist.
Run artifacts:
OUTPUT: counts, unique courts, by-nature-of-suit breakdown, open vs terminated counts.AGENT_BRIEFING: markdown digest with the 10 most recent filings.
FAQ
How does this differ from PACER?
PACER is the official federal courts records system. CourtListener is a public mirror operated by Free Law Project and sourced from RECAP uploads. Coverage depends on what CourtListener and RECAP index; very recent, sealed, and unevenly covered state matters may be absent.
How reliable is plaintiff / defendant classification?
CourtListener's search result contains a flat party array and its order is not reliable. The Actor compares each party name with the two sides of the case caption. It emits plaintiff or defendant only when that match is supportable; otherwise it emits other. Verify important role decisions against the linked source docket.
Can I get every case naming a specific company without listing every name variation?
Use partyName: "Apple" to search the source by substring. The output also includes a best-effort nameCanonical value for common suffix and punctuation cleanup, but it is not an authoritative entity-resolution ID. Keep nameRaw and the source URL for verification.
What about appellate / state / bankruptcy / specialized courts?
The Actor can filter any court ID exposed by CourtListener. Check the coverage page for the current federal, specialized, appellate, and state inventory. The Actor passes through what CourtListener indexes; coverage and freshness vary by court.
Do I need an API token?
Strongly recommended. CourtListener's anonymous rate limit is low. Free tokens are processed automatically at https://www.courtlistener.com/help/api/rest/ in 1-2 minutes. The actor uses the token only if you supply it; without one, it gracefully accepts lower throughput.
Can I use this with Python / Make / Zapier / n8n / Slack?
Yes. All four integrations work first-class. The agentMarkdown field is designed for direct posting into a Slack channel or LLM context.
What about full docket entries (motions, orders)?
This actor pulls docket-level metadata (one row per case). Full per-entry docket sheets are also available via CourtListener but are a separate scrape target - not in v0.1 of this actor. Open an issue if you want it added.
How fresh is the data?
Freshness follows CourtListener's own index. Use overlapping filing-date windows and deduplicate on docketId when monitoring time-sensitive filings.
Your feedback
Hit a bug or want a feature? Open an issue on the Issues tab rather than the reviews page, and we'll fix it fast (typically within 48 hours).
Why choose this CourtListener docket monitor?
- Caption-backed party roles, with uncertain matches preserved as
other. - Nature-of-suit taxonomy - 17 canonical categories, filterable in one expression.
- Raw plus best-effort cleaned names on parties and firms.
- Date arithmetic baked in -
daysSinceFiled,isTerminatedboolean. - Versioned schema (
outputSchemaVersion: "2026-07-17"). fieldCompletenessScoreper record.agentMarkdownper record +AGENT_BRIEFING.mdper run for LLM / Slack consumption.
Other Skootle actors you might want to check
- SEC Form 4 Insider Trades - corporate-insider transaction data.
- Federal Rulemaking Monitor - FR + Regulations.gov joined.
- SAM.gov + USAspending Federal Contracts - federal contract opportunities.
- SEC EDGAR Filings - generalist EDGAR full-text search.
Support and contact
Open an issue at the Issues tab for bugs or feature requests. Typical response time 48 hours.