PACER RSS Docket Monitor — New Federal Court Filings avatar

PACER RSS Docket Monitor — New Federal Court Filings

Pricing

from $2.40 / 1,000 matching filings

Go to Apify Store
PACER RSS Docket Monitor — New Federal Court Filings

PACER RSS Docket Monitor — New Federal Court Filings

Monitor new federal court filings from the public PACER RSS feeds of 140+ federal courts (district, bankruptcy, appeals and more): new complaints, bankruptcies, motions and orders, filtered by party name, case number or entry type, with links to the docket. No PACER account. Pay per docket entry.

Pricing

from $2.40 / 1,000 matching filings

Rating

0.0

(0)

Developer

Owlabee

Owlabee

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

9 hours ago

Last modified

Categories

Security

Limited permissions

Share

PACER RSS Docket Monitor — New Federal Court Filings: banner with the main output fields

PACER RSS docket monitor: watch the public PACER RSS feeds of 140+ federal courts (district, bankruptcy, appeals, Claims and International Trade) and get new complaints, bankruptcies, motions and orders as JSON, filtered by party name, case number or entry type, each with a link to the docket. No PACER account or login is needed; schedule it for a running feed of new federal court filings.

Renamed on 2026-11-08: this Actor's address changed from owlabee/federal-court-docket-monitor to owlabee/pacer-docket-monitor. Saved tasks, schedules, webhooks and integrations keep working, because they point to the Actor's ID, which did not change. Calls by the old name keep working until 2027-11-08 through a forwarder at owlabee/federal-court-docket-monitor, which runs this Actor with the same input and copies the results into its own run. Please still update anything that calls it by name: API URLs (owlabee~pacer-docket-monitor), MCP tool lists (owlabee/pacer-docket-monitor) and bookmarks.

What it does

Every federal district and bankruptcy court running CM/ECF publishes a free, public RSS feed of its docket activity from the last 24 hours: case number, case title (the parties), the docket entry text, the document number with a link, and the filing time. This Actor reads those feeds for the courts you pick, normalizes every entry into the same JSON shape, filters them by party name, case number, case type, entry type, keyword or bankruptcy chapter, and in monitor mode flags only what is new since your last run. You get new complaints naming a company, new Chapter 11 petitions in Delaware or the Southern District of New York, every motion and order in a case you are watching, or a district's whole day of filings, within an hour of docketing and without a PACER account.

It is built for litigation-intelligence and legal-marketing teams, journalists, compliance and research teams, and AI agents that need federal docket activity as structured data. Results land in an Apify dataset you can download as JSON, CSV or Excel, read over the API, push to a webhook, or query from an agent through the Apify MCP server.

The feeds are the courts' own public endpoints (https://ecf.<court>.uscourts.gov/cgi-bin/rss_outside.pl, and https://ecf.<court>.uscourts.gov/n/beam/servlet/TransportRoom?servlet=RSSGenerator for the courts of appeals). Besides the district and bankruptcy courts, the Actor reads the Court of Federal Claims, the Court of International Trade and the courts of appeals that publish a feed. No login, no PACER fees, no proxies, no browser. Documents are linked, never downloaded.

The same new-since-last-run feed pattern for federal grants and contract notices is Grants.gov API & SAM.gov Scraper — Federal Grants Feed.

Why this Actor

This ActorTypical scraper in this categoryDo it yourself
Data sources coveredThe public CM/ECF RSS feeds of all 188 federal district and bankruptcy courts, the Court of Federal Claims, the Court of International Trade and the 13 courts of appeals, with all, all-district, all-bankruptcy, all-appellate, all-national and state aliases and a dated per-court coverage tableA search API over archived dockets, or a feed reader with a short court listOne feed parser plus a court registry you maintain yourself
ModesLive feed export with party, case number, case type, entry type, keyword and chapter filters; newCasesOnly; monitor mode with a 72 hour seen-entry memoryHistorical search by query and date range, or raw feed pass-throughParse, filter, dedupe and remember entries yourself
Output fieldsOne record per docket entry: court, case number as published and normalized, title, case type, bankruptcy chapter, trustee, office, entry text and category, document number and link, docket link, filing time, matchedFilters, isNewCase-level search hits with nature of suit and parties, typically hours to days behind the courtWhatever you parse out of the RSS title and description strings
Pricing unitPer court feed checked, plus per docket entry (unfiltered) or per matching filing (filtered); an error item costs the same as a feed checkPer record returned, sometimes plus an API token you bring for the archive it wrapsYour time plus compute; the feeds are free
Proxies or browsers neededNone, and no PACER accountSome need your own account or API keyNone, but about 30 courts refuse datacenter requests either way
Agent / MCP readyYes: pay-per-event, limited permissions, pin link, prompts and a call example belowSome ship as MCP serversYou write and host the tool definition
LimitsEach feed covers the trailing 24 hours only; no nature of suit, judge or full party list; some courts publish a subset of entry types or no feedArchives lag the courts; feed readers rarely say which courts workThe same feed limits apply
  • Within an hour of docketing, not days: the courts regenerate their feeds every 30 to 60 minutes, and an hourly schedule in monitor mode catches every new entry exactly once.
  • Filters combine the way a litigation team thinks: party AND entry type AND new cases only means "a case was opened against or by Acme", and matchedFilters on every record shows why it matched.
  • Bankruptcy fields are parsed from what the court prints in front of the entry text (chapter, trustee, office), so a Chapter 7 or Chapter 11 feed needs no regex on your side.
  • Honest coverage: the tables below say which of the 203 courts answered, published a subset or refused in a dated probe, and the Actor still tries any court you name.
  • A court that is down is one charged error item; the run and the other courts continue, and notifyOnlyOnResults keeps your webhook quiet when nothing matched.

How to use

  1. Enter the Courts to watch: CM/ECF codes such as nysd (S.D.N.Y.), deb (Bankr. D. Del.), txwd, ca4 (Fourth Circuit), cofc (Court of Federal Claims), or all, all-district, all-bankruptcy, all-appellate, all-national, or a state code like NY. The coverage tables below list all 203 courts.
  2. Optionally narrow with Party / case title keywords (company or person names), Case numbers, Case types, Entry types, Entry text keywords, Bankruptcy chapters or New cases only. With no filter you get every entry in the feed, newest first.
  3. Click Start, or save the input as a Schedule (hourly works well) with Only new since last run on and a Webhook URL to get alerts.

Quick start input

The same input the Store runs in its daily automated test, so it is cheap and always available; paste it into the JSON tab of the input form or send it as the body of an API or MCP call:

{
"courts": [
"nysd"
],
"newCasesOnly": false,
"maxEntriesPerCourt": 40,
"onlyNewSinceLastRun": false
}

Ready-to-run inputs

Three inputs you can paste as they are; each validates against the input schema.

New Chapter 7 petitions in the District of Delaware bankruptcy court

{
"courts": ["deb"],
"caseTypes": ["bankruptcy"],
"bankruptcyChapters": ["7"],
"newCasesOnly": true,
"maxEntriesPerCourt": 500,
"onlyNewSinceLastRun": false
}

Hourly alert: new civil cases naming a party in New York's federal courts, only ones not seen before (schedule hourly; the first run is the baseline)

{
"courts": ["NY"],
"caseTypes": ["civil"],
"partyKeywords": ["Acme Corp", "/acme\\s+holdings/i"],
"newCasesOnly": true,
"onlyNewSinceLastRun": true,
"stateStoreName": "docket-acme-ny",
"webhookUrl": "https://example.com/hooks/dockets",
"notifyOnlyOnResults": true
}

Every motion and order in one case

{
"courts": ["nysd"],
"caseNumbers": ["1:26-cv-03810"],
"entryTypes": ["motion", "order"],
"maxEntriesPerCourt": 200
}

Backfill: the last 30 days of dockets in the Northern District of California from the RECAP archive, plus today's feed (the historical pass is paced at one archive page every 12 s, so 100 dockets take about a minute)

{
"courts": ["cand"],
"includeHistorical": true,
"historicalSinceDays": 30,
"maxHistoricalPerCourt": 100,
"maxEntriesPerCourt": 500
}

Input

FieldTypeRequiredDescription
courtsstring[]yesCM/ECF court codes (nysd, deb, txsb, ca4, cadc, cofc, cit …), all, all-district, all-bankruptcy, all-appellate, all-national, or two-letter state codes. Explicitly named courts are always tried; the aliases expand to courts whose feed was live at the last probe. all and the state codes cover the district and bankruptcy courts only, as before; add all-appellate or all-national for the others
partyKeywordsstring[]noKeep entries whose case title contains any of these (case-insensitive substring, or /regex/flags)
caseNumbersstring[]noKeep entries in these cases; 1:26-cv-03810, 26-cv-3810 and 26-11511 all work, and for an appeal 25-2171 or 2025-1535
caseTypesstring[]nocivil, criminal, bankruptcy, adversary, multidistrict, other
entryTypesstring[]nocomplaint, petition, answer, motion, order, judgment, notice, appeal, discovery, hearing, plan, claim, brief, other (heuristic, see FAQ)
entryKeywordsstring[]noKeep entries whose docket text contains any of these (substring or /regex/)
bankruptcyChaptersstring[]no7, 9, 11, 12, 13, 15
newCasesOnlybooleannoKeep only document number 1 of a case (complaint, petition, indictment, notice of removal)
maxEntriesPerCourtintegernoCap per court per run, newest first, after filtering (default 5000)
maxResultsintegernoCap across all courts per run (default 100000)
onlyNewSinceLastRunbooleannoMonitor mode: emit only entries not seen in a previous run, flagged isNew (default false)
stateStoreNamestringnoNamed key-value store holding the seen-entry memory (default federal-court-docket-monitor-state)
webhookUrlstringnoPOST target for the run summary, emitted entries (max 1,000) and error items
notifyOnlyOnResultsbooleannoCall the webhook only when something was produced (default true)
includeHistoricalbooleannoAlso read dockets filed in the last historicalSinceDays days from the RECAP archive via the Free Law Project's CourtListener API, same record shape, source: "courtlistener-recap" (default false). Needs courtListenerApiKey
historicalSinceDaysintegernoHow far back the historical pass looks, 1 to 365 days (default 30)
maxHistoricalPerCourtintegernoCap on archive dockets per court per run, newest first, 1 to 1000 (default 100); a docket yields one record per archived entry, up to three, or one docket-level record
courtListenerApiKeystringfor includeHistoricalToken of a free CourtListener account. CourtListener's API refuses anonymous requests (as of 2026-11-07), so without it the historical pass is skipped, uncharged, with a warning in the log and the run summary. Sent only to courtlistener.com, never logged

Filter groups are combined with AND; values inside a group with OR. partyKeywords: ["Acme"] with entryTypes: ["complaint"] and newCasesOnly: true means "a new case was opened against or by Acme".

Output example

Sample output of PACER RSS Docket Monitor — New Federal Court Filings as a table: the dataset overview columns from the quick-start run

One dataset item per docket entry:

{
"recordType": "docket-entry",
"entryId": "nysd:663583:517",
"entryKey": "nysd:663583:517#5f1c0d3a",
"court": "nysd",
"courtName": "U.S. District Court, Southern District of New York",
"courtType": "district",
"state": "NY",
"caseNumber": "1:26-cv-03810",
"caseNumberShort": "26-cv-3810",
"caseTitle": "First-Citizens Bank & Trust Company v. Patriot Bank, N.A.",
"caseType": "civil",
"caseTypeCode": "cv",
"defendantNumber": null,
"judgeInitials": null,
"bankruptcyChapter": null,
"trustee": null,
"office": null,
"entryText": "Certificate of Service Other",
"entryCategory": "notice",
"documentNumber": 153,
"documentUrl": "https://ecf.nysd.uscourts.gov/doc1/127140563915?caseid=663583&de_seq_num=517",
"docketUrl": "https://ecf.nysd.uscourts.gov/cgi-bin/DktRpt.pl?663583",
"caseId": "663583",
"entrySequence": 517,
"guid": "https://ecf.nysd.uscourts.gov/cgi-bin/DktRpt.pl?663583&517",
"filedAt": "2026-10-17T07:34:33.000Z",
"pubDateRaw": "Sat, 17 Oct 2026 07:34:33 GMT",
"likelyNewCase": false,
"matchedFilters": ["party:Patriot Bank"],
"isNew": true,
"source": "pacer-rss",
"recapUrl": null,
"fetchedAt": "2026-10-17T10:22:00.283Z"
}

Records from the historical pass have source: "courtlistener-recap", a recapUrl that opens the docket or entry on CourtListener, entryId of the form recap:cand:75022928:1, PACER links built from the archive's PACER ids, and the docket-level details the live feeds lack: parties, natureOfSuit, cause, assignedTo, dateTerminated, attachmentNumber, recapDocketId and moreEntriesInArchive (true when the archive holds more than the three entries a search result carries). A docket the archive has no entry for yet is one record with documentNumber: null and likelyNewCase: true.

Bankruptcy entries additionally carry what the court publishes in front of the entry text: bankruptcyChapter (7, 9, 11, 12, 13 or 15), trustee and office; adversary proceedings have caseType: "adversary". matchedFilters is present only when filters are set, isNew only in monitor mode. documentUrl opens the document on PACER (PACER's own fees apply there); docketUrl opens the case docket. filedAt is null when a court publishes an impossible timestamp (a few do); pubDateRaw keeps the original string.

Error items look like { "recordType": "error", "court": "cacd", "error": "HTTP_503", "errorMessage": "…", "feedUrl": "…" } with codes UNKNOWN_COURT, FEED_UNREACHABLE, HTTP_<status>, FEED_EMPTY, FEED_MALFORMED or COURT_FAILED. They are charged at the court-feed rate, because the request was made; the run itself succeeds.

The run's SUMMARY record (default key-value store) lists, per court, the HTTP status, the entry types the feed advertises, entries in the feed, new/seen/matched/emitted counts and any error.

If the output saves you time, a review on the Store page helps other buyers find this Actor; the Store invites you to leave one after you have run it a few times.

Alerts and delivery

Feeds cover the trailing 24 hours, so this Actor is meant to run on a schedule; this is how new filings reach you.

  • Schedule in the Console. Save the input (with onlyNewSinceLastRun: true) as a Task, then create a schedule under Schedules (hourly is the recommended cadence, at least daily to miss nothing) and attach the Task. Use one stateStoreName per schedule when different filters watch the same courts.
  • The Actor's own webhook. Set webhookUrl and the Actor POSTs one JSON document when the run finishes (10 second timeout, two retries; a failed delivery is recorded as webhookDelivered: false in the SUMMARY record and never fails the run). With notifyOnlyOnResults at its default true the POST happens only when at least one docket entry or error item was produced; set it to false for a heartbeat on every run. The body is the run summary (actor, runId, courts, courtsWithErrors, feedEntries, matched, entriesEmitted, errorItems, produced, filtersActive, monitor, perCourt with HTTP status, advertised entry types, feed, new, seen, matched and emitted counts per court, charges, limitReached, startedAt, finishedAt) plus items, the first 1,000 emitted docket entries in dataset shape, itemsTruncated when the run produced more, and errors with the error items.
  • Apify run webhooks. On the Actor's Integrations tab add a webhook for run events such as ACTOR.RUN.SUCCEEDED, ACTOR.RUN.FAILED or ACTOR.RUN.TIMED_OUT; Apify POSTs the run id and the default dataset id to your URL, which is all your own code needs to fetch the items.
  • Slack, Make, Zapier, Google Sheets, email. The same Integrations tab lists Apify's ready-made integrations: a Slack message when a run finishes, Make and Zapier modules that start runs and read the dataset, an export of each run's dataset to a Google Sheet, and an email notification. They are configured per Actor or per task, without code.
  • API and dataset endpoints. Start a run with POST https://api.apify.com/v2/acts/owlabee~pacer-docket-monitor/runs, read the newest results with GET https://api.apify.com/v2/acts/owlabee~pacer-docket-monitor/runs/last/dataset/items?format=json (also csv or xlsx, and fields to pick columns), or read any run's dataset at https://api.apify.com/v2/datasets/<datasetId>/items. For short runs run-sync-get-dataset-items starts the run and returns the items in one call. A Slack integration on ACTOR.RUN.SUCCEEDED plus notifyOnlyOnResults is the simplest "new lawsuit naming us" alert.

Pricing

Pay per event. You only pay for what the Actor produces; set a maximum cost per run in the run options to cap spend.

EventPriceNotes
Court feed check (court-feed-run)$0.005Per court feed fetched per run, whether or not anything matched; error items for failing courts are charged at this rate instead
Docket record (docket-entry-scraped)$0.001Per docket entry saved when no filter is set
Matching filing (case-matched)$0.003Per docket entry saved when filters are set; charged instead of the docket-entry event
Actor start$0.00005Apify platform event

Examples: 1,000 unfiltered entries from one court ≈ $1.005. Watching 20 courts every hour for new filings naming your clients, with about 30 matches a day ≈ 20 × 24 × $0.005 + 30 × $0.003 ≈ $2.49/day. In monitor mode the first run is a baseline and is charged for every entry it emits; later runs charge only new entries.

Store pricing discounts: users on the Scale plan (Silver) pay 10% less per event, Business (Gold) 20% less.

Limits and fair use

  • Each feed covers the trailing 24 hours only. Schedule the Actor at least daily to miss nothing; hourly is a good default (the courts regenerate feeds every 30–60 minutes). Requests more often than every 15 minutes are discouraged.
  • One request per court per run with a 20 s deadline that includes the one retry on 429/5xx and the download; a Retry-After longer than 10 s is not waited for. Five courts are fetched in parallel; a run over all live courts takes about a minute plus about 20 s for each court that does not answer.
  • Time budget per court. Each court gets a 60 s budget (the 20 s request deadline is the binding limit in practice). A court that stalls, times out or refuses is abandoned and produces one FEED_UNREACHABLE (or TIME_BUDGET) error item, charged like every error item; the other courts continue.
  • Historical pass rate limit. The CourtListener API allows 5 requests per minute, 50 per hour and 125 per day by default, and anonymous requests share that allowance with everyone else calling from the same IP addresses, so the historical pass runs one court at a time at one page (20 dockets) every 12 s, with a 20 s deadline per page, a 60 s idle budget per court, and one charged RECAP_UNAVAILABLE or RECAP_TIME_BUDGET error item for a court whose pass produced nothing (for example when the shared daily allowance is used up and the API answers 429). The pass needs a free CourtListener account token (courtListenerApiKey): CourtListener's API refuses anonymous requests as of 2026-11-07, so without a token the pass is skipped and nothing is charged for it. With a default account, plan on about 100 dockets per court and a handful of courts per run.
  • Coverage differs per court. Of the 188 district and bankruptcy courts, 94 publish every entry type, 41 publish a subset (typically complaints, motions and orders), 23 answer with no entries and 30 do not answer datacenter requests (mostly California, Oklahoma, Nevada, Minnesota and Missouri), at the sweep of 2026-10-17. Of the 15 national and appellate courts probed on 2026-11-07, 8 publish entries and 7 circuits publish none. The Actor still tries every court you name and reports what happened.
  • Nature of suit, party lists, judges and the full docket text are not in the feeds. The case title carries the lead parties ("Smith v. Acme Corp et al"), so a party that is not first-named may be missing; the docket link has the rest.
  • The Court of International Trade's feed titles carry only the case number (1:26-cv-05040/A), no party names, so partyKeywords cannot match its entries; filter it by case number or entry text.
  • entryTypes is a heuristic over the entry text (courts label the same event differently); for precision use entryKeywords.
  • The seen-entry memory keeps 72 hours per court (up to 30,000 entries), enough because a feed never carries anything older than a day.
  • Memory: a run over all courts fits in 512 MB. Default run memory is 512 MB.

Court coverage

203 courts: the 188 district and bankruptcy courts (sweep of 2026-10-17), and the Court of Federal Claims, the Court of International Trade and the 13 courts of appeals (probe of 2026-11-07). Live feeds: 143 of 203.

District and bankruptcy courts (sweep of 2026-10-17)

Live feeds: 135 of 188 (94 full, 41 partial); 23 answer with no entries; 30 unreachable from datacenter IPs. Entries in the trailing 24 h at probe time: 86,956.

StateDistrict court feedsBankruptcy court feeds
AKakd (unreachable)akb all
ALMiddle almd all · Northern alnd (no entries) · Southern alsd allMiddle almb answer, appeal, court, motion, order, caseupld, … · Northern alnb (unreachable) · Southern alsb all
AREastern ared order, order-cr, motion · Western arwd allEastern areb all · Western arwb all
AZazd allazb all
CACentral cacd (unreachable) · Eastern caed (unreachable) · Northern cand (unreachable) · Southern casd (unreachable)Central cacb (unreachable) · Eastern caeb all · Northern canb all · Southern casb all
COcod motion, ordercob all
CTctd allctb (unreachable)
DCdcd alldcb all
DEded alldeb all
FLMiddle flmd all · Northern flnd (no entries) · Southern flsd allMiddle flmb answer, appeal, court, motion, order, misc, … · Northern flnb all · Southern flsb all
GAMiddle gamd order, order-cr · Northern gand (no entries) · Southern gasd (no entries)Middle gamb answer, appeal, court, motion, order · Northern ganb (unreachable) · Southern gasb order
GUgud (no entries)gub (no entries)
HIhid cmp, order, order-crhib appeal, motion, order, misc
IANorthern iand motion · Southern iasd allNorthern ianb answer, appeal, court, motion, order · Southern iasb all
IDidd allx, motionidb answer, appeal, court, motion, order
ILCentral ilcd all · Northern ilnd order, order-cr, motion, cmp · Southern ilsd motion, order, order-cr, cmp, charge-crCentral ilcb all · Northern ilnb (unreachable) · Southern ilsb all
INNorthern innd all · Southern insd adr, answer, appeal, appeal-cr, charge-cr, cmp, …Northern innb answer, appeal, motion, notice, order, plan · Southern insb all
KSksd allksb all
KYEastern kyed (no entries) · Western kywd allEastern kyeb all · Western kywb all
LAEastern laed (unreachable) · Middle lamd (unreachable) · Western lawd allEastern laeb answer, appeal, court, misc, motion, order · Middle lamb all · Western lawb (unreachable)
MAmad answer, appeal, appeal-cr, charge-cr, cmp, detention-cr, …mab answer, appeal, caseupld, claims, cmp, crbatch, …
MDmdd (no entries)mdb all
MEmed order, order-crmeb (no entries)
MIEastern mied answer, appeal, appeal-cr, charge-cr, cmp, motion, … · Western miwd order, order-cr, motionEastern mieb (unreachable) · Western miwb (no entries)
MNmnd (unreachable)mnb (unreachable)
MOEastern moed (unreachable) · Western mowd order, order-cr, motionEastern moeb all · Western mowb (unreachable)
MPnmid (no entries)nmib (no entries)
MSNorthern msnd (no entries) · Southern mssd allNorthern msnb (unreachable) · Southern mssb (unreachable)
MTmtd allmtb answer, appeal, court, motion, order
NCEastern nced all · Middle ncmd all · Western ncwd allEastern nceb (no entries) · Middle ncmb all · Western ncwb answer, appeal, court, motion, order
NDndd (no entries)ndb all
NEned (unreachable)neb all
NHnhd allnhb answer, appeal, court, motion, order, auditor, …
NJnjd allnjb answer, appeal, court, motion, order, misc, …
NMnmd (no entries)nmb (unreachable)
NVnvd (unreachable)nvb (unreachable)
NYEastern nyed (no entries) · Northern nynd cmp, order, order-cr, motion · Southern nysd adr, answer, appeal, appeal-cr, charge-cr, cmp, … · Western nywd (no entries)Eastern nyeb all · Northern nynb all · Southern nysb all · Western nywb answer, appeal, court, motion, order, misc, …
OHNorthern ohnd cmp, order, order_cr, motion, charge_cr · Southern ohsd allNorthern ohnb all · Southern ohsb all
OKEastern oked (unreachable) · Northern oknd (no entries) · Western okwd (unreachable)Eastern okeb (unreachable) · Northern oknb (unreachable) · Western okwb (unreachable)
ORord allorb answer, appeal, court, motion, order, trustee, …
PAEastern paed all · Middle pamd (no entries) · Western pawd order, order-cr, motion, cmpEastern paeb all · Middle pamb all · Western pawb all
PRprd allprb all
RIrid allrib all
SCscd allscb all
SDsdd allsdb all
TNEastern tned all · Middle tnmd order, order-cr, motion · Western tnwd allEastern tneb all · Middle tnmb all · Western tnwb all
TXEastern txed all · Northern txnd order, order-cr, charge-cr, cmp, answer · Southern txsd all · Western txwd allEastern txeb answer, appeal, auditor, caseupld, claims, cmp, … · Northern txnb all · Southern txsb all · Western txwb all
UTutd order, order-cr, motionutb all
VAEastern vaed (no entries) · Western vawd allEastern vaeb (unreachable) · Western vawb answer, appeal, court, motion, order
VIvid order, order-crvib (no entries)
VTvtd allvtb all
WAEastern waed all · Western wawd allEastern waeb all · Western wawb all
WIEastern wied all · Western wiwd allEastern wieb answer, appeal, court, misc, motion, order, … · Western wiwb all
WVNorthern wvnd all · Southern wvsd (no entries)Northern wvnb all · Southern wvsb all
WYwyd allwyb all

"all" means the court publishes every docket entry type; a list shows the CM/ECF entry types it publishes; no entries means the endpoint exists but was empty; unreachable means it did not answer from a datacenter IP. Courts in the last two groups are left out of the all and state aliases but can be named explicitly.

National courts (probe of 2026-11-07)

CourtCodeFeedEntries at probe
Court of Federal Claimscofcall494
Court of International Tradecitanswer, appeal, cmp, misc, motion, notice, order257

Both use the same feed as the district courts, so their records look the same, with courtType: "national" and state: null. all-national selects both; cfc and uscfc are accepted for cofc. Court of Federal Claims cases include bid protests, tax refund suits and takings claims against the United States; its vaccine cases have the type code vv and caseType: "other". Court of International Trade titles carry no party names, and the /A some of its case numbers end in is kept in caseNumber as published.

Courts of appeals (probe of 2026-11-07)

The appellate feeds carry orders, opinions and judgments only. They never list new appeals or briefs, so they are for following an appeal you already know about ("every order in 25-2171"), not for spotting new ones. Each record has the same shape as a district record, with these differences:

  • courtType is "appellate" and state is null; courtName reads "U.S. Court of Appeals for the Fourth Circuit".
  • caseNumber is the appeal number as published (25-2171); caseTypeCode is null unless the number carries a type suffix (24-1234-cv), so caseType is usually "other".
  • caseId and entrySequence are null; entryId is built from the appeal number and the entry id in the feed (ca4:25-2171:1002091821).
  • entryCategory is order for orders and opinions and judgment for judgments; use entryKeywords: ["opinion"] to keep opinions alone.
  • likelyNewCase is always false, so newCasesOnly drops every appellate entry.
  • A circuit whose feed answers "not configured for feed" produces one FEED_EMPTY error item when named.
CircuitCodeFeed at probeEntries at probe
Firstca1not configured0
Secondca2orders, opinions (no entries on a Saturday)0
Thirdca3not configured0
Fourthca4orders, opinions, judgments63
Fifthca5not configured0
Sixthca6orders, opinions, judgments65
Seventhca7not configured0
Eighthca8not configured0
Ninthca9not configured0
Tenthca10opinions7
Eleventhca11opinions5
D.C.cadcorders, opinions, judgments23
Federalcafcorders, opinions, judgments4

all-appellate selects the six circuits with entries (ca4, ca6, ca10, ca11, cadc, cafc). The probe ran on a Saturday, so the Second Circuit, whose feed is configured, had nothing to show; name ca2 explicitly to watch it. Every order, opinion and judgment in one appeal:

{
"courts": ["ca4"],
"caseNumbers": ["25-2171"],
"onlyNewSinceLastRun": true,
"stateStoreName": "appeal-25-2171"
}

Other pay-per-event Actors from the same account, all limited-permission and agent-friendly:

Guide and code examples

Use from AI agents (MCP)

Pin this Actor in the Apify MCP server with one link: https://mcp.apify.com?tools=owlabee/pacer-docket-monitor, or let the agent find it with the search-actors tool. It is pay-per-event with limited permissions, so agents can discover it, inspect the input schema with fetch-actor-details and pay per run through agentic payments. Prompts that map directly onto the input:

  1. "Which new lawsuits were filed in the Southern District of New York today naming a bank? Give me case number, title and the docket link."
  2. "Alert me every hour to new Chapter 11 petitions filed in Delaware (deb) and SDNY Bankruptcy (nysb) — only ones not seen before, POSTed to my webhook."
  3. "List every motion and order filed in case 1:26-cv-03810 since yesterday, with document numbers and links."

The agent receives the same dataset records shown in the output example above.

To call it from an agent that already has the Apify MCP server connected, copy this tool call and change only the input object (shown with the quick-start input; any input that validates in the Console works here too). The server returns the run's dataset items, and its per-call maximum total charge (maxTotalChargeUsd) caps spend the same way the run option does in the Console.

{
"tool": "call-actor",
"arguments": {
"actor": "owlabee/pacer-docket-monitor",
"input": {
"courts": [
"nysd"
],
"newCasesOnly": false,
"maxEntriesPerCourt": 40,
"onlyNewSinceLastRun": false
}
}
}

FAQ

Does this need proxies, a PACER account or an API key? No. The RSS feeds are public, unauthenticated endpoints that the courts publish for anyone, and they answer datacenter requests (except the courts marked unreachable above). Nothing is downloaded from PACER itself.

How is cost controlled? Set maxEntriesPerCourt, maxResults and the run's maximum total charge. Each entry is charged the moment it is saved and the run stops cleanly when a limit is reached; in monitor mode, entries held back by a cap are emitted on the next run instead of being lost.

How does "only new since last run" work? Per court the Actor remembers the id of every entry it has processed (docket entry plus event label) in the named key-value store. On the next run only unseen entries are emitted, flagged isNew: true. The first run is a baseline. Delete the store, or use a new stateStoreName, to start over.

Can an AI agent use this? Yes; see "Use from AI agents (MCP)" above for the pin link and example prompts. Schedules and webhooks work the same way from the Console or the API.

What happens when a court's feed is down or empty? The court produces one error item (FEED_UNREACHABLE, HTTP_503, FEED_EMPTY, FEED_MALFORMED) and the run continues with the other courts; the run does not fail.

Why does the same docket entry appear twice? Some courts attach two event labels to one entry (for example "Order" and "~Util - Set Hearings" on the same document). Both are published, with the same entryId and different entryText; entryKey tells them apart.

Why is caseNumber sometimes missing a type code, or carrying extra letters? Bankruptcy courts number cases "26-11511" without a code and several append judge initials or the chapter ("26-44611-elm13"). The Actor keeps the number as published, puts a normalized form in caseNumberShort, and reads the chapter from the suffix when no "Chapter:" prefix is given.

Can it tell me the nature of suit, the judge, or all the parties? Not from the feed. Use docketUrl to open the docket on PACER for those details.

Can I get past dockets, not just new filings? Yes. Create a free CourtListener account, put its API token in courtListenerApiKey, turn on includeHistorical, and the Actor also reads the dockets filed in the last historicalSinceDays days (default 30, up to 365) for each court from the RECAP archive via the Free Law Project's CourtListener API, newest first, up to maxHistoricalPerCourt dockets per court (default 100, up to 1,000). The records have the same shape as live entries, marked source: "courtlistener-recap" with a recapUrl, and your filters apply to them; plain party keywords, case numbers, chapters and entry keywords are also sent to the archive's search so the pages you page through are mostly hits. They are charged at the same per-record rate as live entries, the pages themselves are free, and a docket already emitted from the live feed in the same run (or, in monitor mode, in an earlier run) is not emitted again. The archive holds what RECAP users and the Free Law Project have fetched from PACER, so a quiet case may show only its opening entry; moreEntriesInArchive tells you when CourtListener has more than the three entries a search result carries. Coverage is per court, not per feed, so it also works for courts whose live feed is unreachable.

Can I try it for free? Yes. The Apify free plan comes with monthly platform credit, and the quick-start input above costs a few cents per run, so you can test it on your own inputs before paying anything.

How do I find this Actor again? Bookmark it on the Store page (the bookmark icon next to the title); bookmarked Actors are listed in your Console, and the Store page shows new versions as they ship.

Support

Questions, bugs or a source you'd like added? Open an issue on the Actor's Issues tab, or email jacob@owlabee.com.

If this Actor is useful to you, a quick review on its Store page helps other people find it.

Changelog

  • 2026-11-08 — Renamed from owlabee/federal-court-docket-monitor to owlabee/pacer-docket-monitor so the address matches what people search for. Input, output and pricing are unchanged; calls by Actor ID, saved tasks and schedules are unaffected. Calls to the old address are forwarded here until 2027-11-08 by a forwarder Actor at owlabee/federal-court-docket-monitor that charges nothing itself; update API URLs and MCP tool lists before then.
  • 2026-11-07 — Courts of appeals (13 circuits, 6 with entries at the probe), the Court of Federal Claims and the Court of International Trade, with all-appellate and all-national aliases. all, all-district, all-bankruptcy and the state codes keep their scope. Same events and per-record rates.
  • 2026-10-27 — README: comparison table, ready-to-run inputs for Chapter 7 filings in one district and new civil cases matching a party, alerts and delivery, MCP call example, changelog.
  • 2026-10-25 — Pricing round: event titles pluralized and Store discount tiers for the Scale and Business plans described; applied in the Console on 2026-10-26.
  • 2026-10-23 — 60 second budget per court, 20 second request deadline including the one retry and the download, FEED_UNREACHABLE and TIME_BUDGET error items charged at the feed-check rate, worst-case margin tests. Listing: SEO fields, MCP section, quick start, task examples (new SDNY lawsuits, Chapter 11 petitions in Delaware and SDNY); Related Actors use the new display titles.
  • 2026-10-19 — Published on the Store with its task examples.
  • 2026-10-17 — First release: 188-court registry from a live sweep, party, case, type, keyword and chapter filters, monitor mode, webhook with notifyOnlyOnResults.

Not a consumer report. Not for employment, credit, insurance, housing or tenant-screening decisions. This Actor reads only the public, unauthenticated RSS feeds the United States federal courts publish for their CM/ECF dockets; it does not log in to PACER, download documents, or bypass any access control. The data is public court record metadata. The Actor and its output are not legal advice and do not establish an attorney-client relationship; docket text is published by the courts as entered by filers and clerks and may contain errors. Case titles contain the names of individuals: this Actor is not a consumer reporting agency, its output must not be used for employment, credit, insurance, housing or tenant screening decisions (FCRA), and it is not a background-check tool. Use the data in compliance with applicable law and the courts' terms.