# CourtListener Bankruptcy Scraper - Dockets by Chapter (`parseforge/courtlistener-bankruptcy-scraper`) Actor

Scrape US bankruptcy dockets from CourtListener's RECAP archive by chapter, court, debtor, trustee and date, with judges and filings. Export to CSV, JSON, Excel or XML.

- **URL**: https://apify.com/parseforge/courtlistener-bankruptcy-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Lead generation, Automation, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.62 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 📕 CourtListener Bankruptcy Scraper

> 🚀 **Export US bankruptcy dockets from the CourtListener RECAP archive in seconds.** Pick a chapter, a bankruptcy court and a date range, and get one 35-field row per petition with the chapter, the assigned judge, the trustee, every debtor, counsel and law firm, and the filings that matched. The archive holds 35,552,609 bankruptcy dockets across all 94 US bankruptcy courts.

Every consumer and corporate bankruptcy filed in a United States bankruptcy court lands on PACER, and the Free Law Project's RECAP archive mirrors the ones the public has already paid for. This Actor reads that archive through CourtListener's public search API and hands you a flat, spreadsheet-ready row per case: chapter 7 liquidations, chapter 11 reorganizations, chapter 13 repayment plans, chapter 12 farm cases, chapter 9 municipalities and chapter 15 cross-border filings.

The coverage is the whole federal bankruptcy system: 94 courts, 24,978,453 chapter 7 dockets, 10,166,487 chapter 13, 293,351 chapter 11, 23,130 chapter 12 and 2,781 chapter 15. Filters cover chapter, court, debtor name, party name, docket number, docket entry text, document number, free-PDF availability and full text, and each row carries 35 fields with the CourtListener IDs that let you join runs together over time.

| 🎯 Target Audience | 💡 Primary Use Cases |
| --- | --- |
| Distressed debt and restructuring desks | New chapter 11 filings by court and week, with counsel and the assigned judge |
| Credit and risk teams | Screen a customer or supplier book against fresh chapter 7 and 13 petitions |
| Bankruptcy and creditors-rights firms | Trustee assignments, filing volume by court, and who is appearing before whom |
| Legal tech and analytics vendors | Structured bankruptcy dockets with stable IDs, debtors, counsel and firms |
| Journalists and researchers | Corporate collapses and consumer filing trends, as they are docketed |

### 📋 What the CourtListener Bankruptcy Scraper does

> 💡 **Why it matters:** PACER charges per page and gives you no way to search bankruptcy filings across districts. CourtListener's public API does, but it mixes bankruptcy petitions with the adversary proceedings filed inside them, has no chapter parameter at all, and buries the trustee and the filings in nested JSON. This Actor sends your filters to the API, keeps only the petitions, flattens each docket into one row, and never bills for a record it did not deliver.

- Searches all 94 US bankruptcy courts at once, or the ones you pick from a list.
- Filters by chapter of the Bankruptcy Code, which the API does not expose as a parameter.
- Drops adversary proceedings before billing, so a paid row is always a petition.
- Returns the assigned judge, the trustee, every debtor, counsel and law firm with their CourtListener IDs.
- Attaches the docket entries that matched your query, with PDF availability and PACER document IDs.
- Optionally pulls the full docket timeline for each case, not just the matching entries.
- Cleans the HTML that PACER clerks type into case captions.
- Exports to CSV, Excel, JSON or XML from the dataset tab.

### 🎬 Full Demo (🚧 Coming soon)

A walkthrough video is in production. Until it lands, the sample records below are a real run of the default input.

### 📊 Output

One row per bankruptcy petition. Fields are never `null`: a value the source can carry but did not comes back as `Not Disclosed`, a value that does not apply comes back as `N/A`, and booleans are `Yes` or `No`.

| Field | Description |
| --- | --- |
| 🗂 `dataset` | `cases` or `dockets`, whichever mode produced the row |
| 🆔 `docketId` | CourtListener docket ID, stable across runs |
| ⚖️ `caseName` | Case caption, which on a petition is the debtor |
| 🔗 `url` | Docket page on courtlistener.com |
| 📕 `chapter` / 📗 `chapterTitle` | The chapter as PACER records it, and its Bankruptcy Code heading |
| 🏛 `court` / 🏷 `courtId` / 📎 `courtCitationString` | Court name, CourtListener court ID (for example `deb`), reporter-style abbreviation |
| 🔢 `docketNumber` | PACER docket number, for example `22-11068` or `3:26-bk-04298` |
| 🧾 `pacerCaseId` | PACER's internal case ID |
| 📅 `dateFiled` / 🏁 `dateTerminated` / ⏳ `isPending` / 📆 `daysOnDocket` | Filing date, termination date (`N/A` while pending), `Yes` or `No`, and the span in days |
| 👩‍⚖️ `assignedTo` / `assignedToId` | Bankruptcy judge and their CourtListener ID |
| 🧑‍💼 `trustee` | Trustee of record as PACER writes the name |
| 👥 `debtors` / `debtorIds` / `debtorCount` | Every party on the docket, semicolon-separated, with IDs and a count |
| 💼 `attorneys` / `attorneyIds` / 🏢 `lawFirms` / `lawFirmIds` | Counsel of record and their firms, with IDs |
| 📄 `matchedDocumentCount` / 🆓 `freeDocumentCount` / 📥 `hasFreeDocuments` | How many filings matched, how many are free to download, and whether any are |
| 🕐 `firstEntryDate` / 🕔 `latestEntryDate` | Oldest and newest entry date among the matched filings |
| 📂 `matchedDocuments` / ➕ `hasMoreDocuments` | The filings that matched (entry number, date, type, description, PDF availability, page count, PACER document ID, URL, text snippet), and whether the docket holds more |
| 🗓 `timeline` / `timelineEntryCount` | The complete docket entry list, present only when `includeTimeline` is on |
| 🕓 `dateAddedToRecap` | When the docket entered the RECAP archive |
| 🕒 `scrapedAt` | ISO timestamp of the collection |
| ❌ `error` | `null` on success; error rows carry only this field and are never charged |

Three real records from a run of the default input, with the `matchedDocuments` array trimmed to its first entry for readability:

```json
[
  {
    "dataset": "cases",
    "docketId": 17189718,
    "caseName": "Rental Car Intermediate Holdings, LLC",
    "url": "https://www.courtlistener.com/docket/17189718/rental-car-intermediate-holdings-llc/",
    "chapter": "11",
    "chapterTitle": "Chapter 11 - Reorganization",
    "court": "United States Bankruptcy Court, D. Delaware",
    "courtId": "deb",
    "courtCitationString": "Bankr. D. Del.",
    "docketNumber": "20-11247",
    "pacerCaseId": "181358",
    "dateFiled": "2020-05-22",
    "dateTerminated": "2021-09-28",
    "isPending": "No",
    "daysOnDocket": 494,
    "assignedTo": "Mary F. Walrath",
    "assignedToId": 8741,
    "trustee": "Wells, Fargo Bank, N.A., Indenture Trustee",
    "debtors": "U.S. Trustee; Reliable Companies; Rental Car Intermediate Holdings, LLC; Kroll Restructuring Administration LLC",
    "debtorIds": "11198544; 19587121; 11198546; 19587120",
    "debtorCount": 4,
    "attorneys": "Linda Richenderfer; Ricardo Palacio, Esq; Huiqi Liu; Brian J. McLaughlin; James B. Sowka; A Matthew Durkin; Mark D. Collins; Elizabeth Ireland; Zachary Javorsky; Benjamin Joseph Steele; Tyler Richards; Christopher Michael De Lillo; J. Zachary Noble; Gretchen Scavo; Brendan Joseph Schlauch; Cory D. Kandestin; Brett Michael Haywood; William O'Neil; Robert J. Stearn, Jr.; Emily Mathews McCormick; John Henry Knight; Robert Charles Maddox",
    "attorneyIds": "8283305; 13451070; 13451071; 13451072; 13451073; 13451074; 13451075; 13451076; 13451077; 13451078; 13451079; 13451080; 13451081; 13451082; 13451083; 13451084; 13451085; 13451086; 13451087; 13451088; 13451089; 13451090",
    "lawFirms": "White and Case LLP; Lowenstein Sandler, LLP; Seyfarth Shaw LLP; Richards Layton & Finger, PA; White & Case; Johnson-Lancaster and Associates, Inc.; Samuel Lichtenfeld; DOJ-Ust; Montgomery McCracken Walker & Rhoads LLP; White & Case LLP; Montgomery McCracken Walker & Rhoads.; Kramer, Levin, Nafkalis & Frankel LLP; Amy Caton; Richards, Layton & Finger; Ashby & Geddes, P. A.; Kroll Restructuring Administration LLC, (F/K/A Prime Clerk LLC); Potter Anderson & Corroon LLP; Benesch Friedlander Coplan & Aronoff LLP; Office of the US Trustee, US Trustee's Office; Benesch, Friedlander, Coplan & Aronoff L; Richards, Layton and Finger; White & Case, LLP; Lowenstein Sandler; Pashmanstein Walder Hayden PC; Richards, Layton & Finger, P.A.; Pashman Stein Walder Hayden, P.C.; Prime Clerk LLC; Offit Kurman; Winston and Strawn LLP; Kramer Levin Naftalis and Frankel LLP; Winston & Strawn LLP",
    "lawFirmIds": "105344; 445442; 55941; 739848; 624393; 63886; 63761; 64018; 224145; 734098; 1013022; 26529; 731431; 232360; 5164; 347437; 33071; 1070388; 995127; 63810; 654025; 12106; 63818; 964428; 63822; 968655; 605522; 621656; 621657; 361564; 365921; 146149; 621676; 740974; 466287; 292592; 742768; 25842; 226802; 230132; 984820",
    "matchedDocumentCount": 3,
    "freeDocumentCount": 0,
    "hasFreeDocuments": "No",
    "firstEntryDate": "2021-09-23",
    "latestEntryDate": "2021-09-23",
    "matchedDocuments": [
      {
        "id": 213635596,
        "docketEntryId": 207755643,
        "documentNumber": "5918",
        "attachmentNumber": "N/A",
        "entryNumber": 5918,
        "entryDateFiled": "2021-09-23",
        "documentType": "PACER Document",
        "shortDescription": "Not Disclosed",
        "description": "Omnibus Reply //Reorganized Debtors' Omnibus Reply in Support of Motion for Entry of Final Decree (i) Closing Certain Cases and (ii) Granting Related Relief (related document(s)5838, 5902, 5916) Filed by The Hertz Corporation (Attachments: # 1 Exhibit A # 2 Exhibit B) (Haywood, Brett) (Entered: 09/23/2021)",
        "isAvailable": "No",
        "pageCount": "Not Disclosed",
        "url": "https://www.courtlistener.com/docket/17189718/5918/rental-car-intermediate-holdings-llc/",
        "filepathLocal": "N/A",
        "pacerDocId": "042020040893",
        "snippet": "N/A"
      }
    ],
    "hasMoreDocuments": "Yes",
    "dateAddedToRecap": "2020-05-23T04:00:46.021128Z",
    "scrapedAt": "2026-09-08T06:11:10.278Z",
    "error": null
  },
  {
    "dataset": "cases",
    "docketId": 60034429,
    "caseName": "Northwest Bancorporation of Illinois, Inc.",
    "url": "https://www.courtlistener.com/docket/60034429/northwest-bancorporation-of-illinois-inc/",
    "chapter": "11",
    "chapterTitle": "Chapter 11 - Reorganization",
    "court": "United States Bankruptcy Court, N.D. Illinois",
    "courtId": "ilnb",
    "courtCitationString": "Bankr. N.D. Ill.",
    "docketNumber": "21-08123",
    "pacerCaseId": "1540853",
    "dateFiled": "2021-07-02",
    "dateTerminated": "N/A",
    "isPending": "Yes",
    "daysOnDocket": 1894,
    "assignedTo": "Timothy A. Barnes",
    "assignedToId": 8787,
    "trustee": "Steege, Catherine L.",
    "debtors": "Northwest Bancorporation of Illinois, Inc.; Patrick S Layng; Adam Brief; Catherine L. Steege, ESQ; The Official Committee of Unsecured Creditors",
    "debtorIds": "10883868; 11040555; 10916268; 15074041; 13404284",
    "debtorCount": 5,
    "attorneys": "Jeffrey D Sternklar; Landon S Raiford; Martha R Lehman; M. Gretchen Silver; Catherine L. Steege, ESQ; Catherine L Steege, ESQ; Michael P O'Neil; William Silas Hackney, III",
    "attorneyIds": "7121450; 9012151; 9012146; 9012147; 9012148; 7226549; 9012149; 9012150",
    "lawFirms": "Bryan Cave Leighton Paisner LLP; Jeffrey D. Sternklar, LLC; Amundsen Davis, LLC; Smith Amundsen, LLC; Jeffrey D. Sternklar LLC; Jenner & Block, LLP; Taft Stettinius & Hollister LLP; U S Trustee; Seyfarth Shaw LLP",
    "lawFirmIds": "914624; 312834; 796358; 78381; 281166; 658803; 41530; 69749; 92186; 708959",
    "matchedDocumentCount": 1,
    "freeDocumentCount": 0,
    "hasFreeDocuments": "No",
    "firstEntryDate": "2023-04-24",
    "latestEntryDate": "2023-04-24",
    "matchedDocuments": [
      {
        "id": 298042785,
        "docketEntryId": 291821055,
        "documentNumber": "253",
        "attachmentNumber": "N/A",
        "entryNumber": 253,
        "entryDateFiled": "2023-04-24",
        "documentType": "PACER Document",
        "shortDescription": "Report",
        "description": "Report / Section 1126 Ballot Report Filed by Interested Party AmeriNational Community Services, LLC, Trustee Catherine L. Steege ESQ. (Steege, Catherine) Additional attachment(s) added on 4/25/2023 (Sullivan, Elizabeth). (Entered: 04/24/2023)",
        "isAvailable": "No",
        "pageCount": "Not Disclosed",
        "url": "https://www.courtlistener.com/docket/60034429/253/northwest-bancorporation-of-illinois-inc/",
        "filepathLocal": "N/A",
        "pacerDocId": "066080460333",
        "snippet": "N/A"
      }
    ],
    "hasMoreDocuments": "No",
    "dateAddedToRecap": "2021-07-02T16:05:13.788846Z",
    "scrapedAt": "2026-09-08T06:11:10.279Z",
    "error": null
  },
  {
    "dataset": "cases",
    "docketId": 63248808,
    "caseName": "GWG Holdings, Inc. and GWG DLP Funding Holdings VI, LLC",
    "url": "https://www.courtlistener.com/docket/63248808/gwg-holdings-inc-and-gwg-dlp-funding-holdings-vi-llc/",
    "chapter": "11",
    "chapterTitle": "Chapter 11 - Reorganization",
    "court": "United States Bankruptcy Court, S.D. Texas",
    "courtId": "txsb",
    "courtCitationString": "Bankr. S.D. Tex.",
    "docketNumber": "22-90032",
    "pacerCaseId": "455856",
    "dateFiled": "2022-04-20",
    "dateTerminated": "N/A",
    "isPending": "Yes",
    "daysOnDocket": 1602,
    "assignedTo": "Alia Moses",
    "assignedToId": "Not Disclosed",
    "trustee": "Goldberg, Michael",
    "debtors": "Beneficient Management, L.L.C.; Peter T. Cangany, Jr.; Beneficient Capital Company II, L.L.C.; LiquidTrust Management, L.L.C.; The Beneficient Company Group, L.P.; Beneficient Fiduciary Financial, L.L.C. in its capacity as Trustee of The Collective Collateral Trust I, The Collective Collateral Trust II, The Collective Collateral Trust III, The Collective Collate; GWG Holdings, Inc.; GWG Life, LLC; GWG DLP Funding Holdings VI, LLC; Thomas O. Hicks; GWG DLP Funding IV, LLC; Gary Peterson; Bruce W. Schnitzer; Michael Goldberg, Litigation Trustee; Murray T. Holland; GWG Life USA, LLC; GWG DLP Funding VI, LLC; The Beneficient Company Group (USA), L.L.C.; US Trustee, 11; Beneficient Capital Company, L.L.C.; CT Risk Management, L.L.C.; Funding Trust Management, L.L.C..; Beneficient Company Holdings, L.P.",
    "debtorIds": "15884983; 15884984; 15884985; 15884986; 15884987; 15884988; 15884989; 15884990; 15884991; 15884992; 15884993; 15884994; 15884995; 15884996; 15884997; 15193715; 15193716; 15193717; 15193718; 15193719; 15193720; 15193721; 15193722",
    "debtorCount": 23,
    "attorneys": "Kristhy M Peguero; Frank J Wright; William T Reid, IV; Millie Aponte Sall; Susan Tran Adams; Nathaniel John Palmer; Emma Emma Culotta; Christopher Ross Travis; Vianey Garza; Elizabeth Carol Freeman; David William Parham; Richard Thaddeus Behrens; Dylan E Jones; Morgan Mallory Menchaca; Alicia Lenae Barcomb; Mikell Alan West; Robert William Clore; Christopher R. Bankler; Victoria Nicole Argeroplos; John C. C. Sanders, Jr.; Michael John Yoder; Hector Duran, Jr; Charles Stephen Kelley; Ha Minh Nguyen",
    "attorneyIds": "10562075; 10562076; 10562077; 10562078; 10871200; 10871201; 8691886; 8691887; 10188259; 10188260; 10188261; 10188262; 10188263; 10188264; 10188265; 10188266; 10188267; 10188268; 10188269; 10188270; 10188271; 9011700; 9011701; 9011703",
    "lawFirms": "Office of the United States Trustee; Reid Collins Tsai LLP; Law Offices of Frank J. Wright, PLLC; Tran Singh, LLP; DOJ-Ust; U S Trustee; Reid Collins & Tsai LLP; Allen Overy Shearman Sterling US LLP; Office of the U S Trustee; The Law Office of Liz Freeman; Mayer Brown LLP; Jackson Walker LLP; Diamond McCarthy LLP; Winston and Strawn LLP; Akerman LLP; Reid Collins and Tsai LLP; U.S. Trustee; Bandas Law Firm, PC",
    "lawFirmIds": "28936; 686351; 996498; 603926; 198553; 914587; 198558; 701102; 64565; 29494; 229430; 971834; 774335; 1120325; 12626; 63963; 588000; 1034721; 953826; 791139; 836966; 836967; 742124; 39666; 995322; 345340; 11774",
    "matchedDocumentCount": 3,
    "freeDocumentCount": 0,
    "hasFreeDocuments": "No",
    "firstEntryDate": "2023-10-28",
    "latestEntryDate": "2023-10-30",
    "matchedDocuments": [
      {
        "id": 376593983,
        "docketEntryId": 369237669,
        "documentNumber": "2267",
        "attachmentNumber": "N/A",
        "entryNumber": 2267,
        "entryDateFiled": "2023-10-28",
        "documentType": "PACER Document",
        "shortDescription": "Affidavit",
        "description": "Affidavit Re: i.First Supplemental Declaration of Steven J. Reisman in Support of the Fifth Interim and Final Fee Application of Katten Muchin Rosenman LLP for Allowance and Payment of Fees and Expenses as Attorneys to Debtor GWG Holdings, Inc., on Behalf of and at the Sole Direction of the Independent Directors, for the (I) Fifth Fee Interim Period from May 1, 2023 through and Including June 20, 2023, and (II) Total Fee Period from June 20, 2022 through and Including June 20, 2023 [Docket No. 2241]; and ii.Katten Muchin Rosenman LLPs Amended Witness and Exhibit List for Hearing Scheduled for October 27, 2023, at 9:30 A.M. (Prevailing Central Time) [Docket No. 2242]. (related document(s):2241 Declaration, 2242 Exhibit List, Witness List). Filed by Donlin Recano and Co Inc (Donlin Recano and Co Inc) (Entered: 10/28/2023)",
        "isAvailable": "No",
        "pageCount": "Not Disclosed",
        "url": "https://www.courtlistener.com/docket/63248808/2267/gwg-holdings-inc-and-gwg-dlp-funding-holdings-vi-llc/",
        "filepathLocal": "N/A",
        "pacerDocId": "178050140787",
        "snippet": "N/A"
      }
    ],
    "hasMoreDocuments": "Yes",
    "dateAddedToRecap": "2022-04-20T07:05:03.487244Z",
    "scrapedAt": "2026-09-08T06:11:10.280Z",
    "error": null
  }
]
```

### ✨ Why choose this Actor

| | What you get |
| --- | --- |
| **Petitions, not adversary proceedings** | A bankruptcy court indexes two records side by side: the petition, which carries a chapter, and the adversary proceeding filed inside it, which does not. Measured on the Southern District of New York on 2026-09-08: 337,416 dockets, of which 53,454 have no chapter and every one is an adversary caption. Those are screened out before you are billed. |
| **A chapter filter the API does not have** | CourtListener has no `chapter` parameter: send `chapter=7` or `chapter=zzz` and you get the same unfiltered count either way. This Actor pushes the chapter through the search index instead, so picking chapter 11 really does return 293,351 dockets out of 35,552,609. |
| **All 94 bankruptcy courts, verified** | The court list is pulled from CourtListener's own courts endpoint, not typed from memory, and every one of the 94 in-use bankruptcy courts is a pickable option with its full name. |
| **Trustee on the row** | The trustee of record is the field most bankruptcy tools drop. It is here, alongside the judge, the debtors, counsel and the firms, each with a CourtListener ID so runs join to each other. |
| **The filings, and the full timeline on request** | The row carries the docket entries that matched your query with PDF availability and page counts. Turn on `includeTimeline` and each case also gets its complete entry list. |
| **No API key needed** | CourtListener throttles anonymous callers at 5 requests a minute per IP, and each request returns 20 rows. Turn the proxy on for a fresh exit IP per request, or paste your own free CourtListener key and the throttle disappears. |
| **You pay for what you keep** | Rows are billed as they are written and capped at `maxItems`, so a page that overshoots the cap is trimmed before it is charged. Adversary proceedings and duplicates are dropped before billing, never after. |

### 📈 How it compares to alternatives

| | This Actor | Other CourtListener actors | PACER directly |
| --- | --- | --- | --- |
| Chapter filter | All six fileable chapters, pickable, pushed through the search index | Usually a free-text box or none | Per-court only, no cross-district search |
| Petitions versus adversary proceedings | Screened by chapter before billing | Mixed feed | Mixed feed |
| Court coverage | 94 bankruptcy courts in one run, from a verified list | Often one court per run | One court per login |
| Trustee, judge, debtors, counsel, firms | On every row, with IDs | Rarely more than judge | Behind the docket sheet, per page |
| Matched filings and full timeline | Matched filings on the row, full timeline opt-in | Sometimes, as a separate mode | Per page |
| Rows a free account can preview | 10 | Varies | None |
| Ceiling | Anonymous API throttle of 5 requests a minute per IP, lifted by a free key or the proxy | Same source, same ceiling | Per-page fees |

### 🚀 How to use

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [CourtListener Bankruptcy Scraper](https://apify.com/parseforge/courtlistener-bankruptcy-scraper?fpr=vmoqkp).
3. Pick your chapters, the courts you care about and a date range, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

One typical run: `dataset` `cases`, `chapters` `["11"]`, `courts` `["deb","txsb"]`, `filedAfter` `01/01/2026`, `maxItems` `200`. Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### 💼 Business use cases

#### 📡 Watch new chapter 11 filings

Set `chapters` to `["11"]`, sort by filing date and run it on a schedule. Each run returns the newest reorganizations first, so a diff against the last run is your alert feed. A distressed debt desk sees every new Delaware and Southern District of Texas filing the morning after it is docketed, with the debtor entity names already split out.

#### 🛡️ Screen a customer or supplier book

`caseName` and `partyName` search the caption and the party list, which is what PACER indexes. Credit teams run a name list through the Actor on a weekly schedule and flag any hit against their receivables ledger before the next invoice goes out.

#### 🧑‍💼 Map trustee and judge assignments

The `trustee` and `assignedTo` columns turn a year of filings into a table of who is appointed where. Creditors-rights firms use it to see which trustees handle the chapter 7 volume in a district, and which judges take the chapter 11 work.

#### 📊 Measure filing trends

Every row carries the chapter, the court and the filing date, so counts by chapter, court and quarter fall out of a group-by. Economists and analytics vendors feed the stable `docketId` into their own tables and refresh it on a schedule.

### 🔌 Automating CourtListener Bankruptcy Scraper

- **Make / Zapier:** trigger a run on a schedule, then push new rows to a CRM, a Google Sheet or a Slack channel.
- **Slack:** post each new chapter 11 debtor, court and judge to a restructuring-watch channel.
- **Airbyte:** land the dataset in Snowflake, BigQuery or Postgres for analytics.
- **GitHub:** commit the JSON export to a repository to keep a versioned history of filings.
- **Google Drive:** drop the CSV or Excel export into a shared folder for the credit committee.

### 🌟 Beyond business use cases

- **Research:** count chapter 7 versus chapter 13 filings by district and year, or trace how a recession shows up in the docket counts.
- **Personal:** follow a case you are a creditor in, or check whether a company you deal with has filed.
- **Non-profit:** monitor consumer bankruptcy volume in the communities you serve, and which trustees are appointed.
- **Experimentation:** train a model on petition text versus outcome, or build a filing-alert bot on top of the JSON export.

### 🤖 Ask an AI assistant about this scraper

Give an AI agent live access to US bankruptcy dockets through the Model Context Protocol:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/courtlistener-bankruptcy-scraper"
```

Then prompt it in plain language:

- *"List the chapter 11 cases filed in Delaware this month."*
- *"Which trustees were appointed in chapter 7 cases in the Central District of California in 2026?"*
- *"Find bankruptcy petitions where the debtor name contains Holdings and the case is still pending."*

Copy this into ChatGPT, Claude, or Cursor to start:

```
Use the Apify Actor "parseforge/courtlistener-bankruptcy-scraper" to search US bankruptcy dockets. Input: { "dataset": "cases" | "dockets", "chapters": ["7","11","13"], "courts": ["deb","txsb"], "caseName": "<debtor>", "filedAfter": "MM/DD/YYYY", "maxItems": <n> }. It returns case name, chapter, court, docket number, dates, judge, trustee, debtors, counsel, firms and the matching filings per row. Call it with the ApifyClient and my APIFY_TOKEN.
```

### ❓ Frequently Asked Questions

#### ❓ Do I need a CourtListener account?

No. The search API answers anonymously and the Actor runs without any key. A free CourtListener API key (Profile > API on courtlistener.com) only removes the anonymous rate limit, which matters for runs of a few thousand rows.

#### ❓ What is the difference between a bankruptcy case and an adversary proceeding?

The bankruptcy case is the petition itself, and it carries a chapter. An adversary proceeding is a lawsuit filed inside that bankruptcy, for example to recover a preference or to challenge a discharge, and it gets its own docket number, a nature of suit and no chapter. This Actor returns the petitions. Adversary proceedings are a different product.

#### ❓ Which chapters can I get?

Chapters 7, 9, 11, 12, 13 and 15, which are the ones a case is actually filed under. Chapters 1, 3 and 5 of the Bankruptcy Code are structural and no case is filed under them, so they are not options.

#### ❓ Does it cover state courts?

No. Bankruptcy is exclusively federal, so the 94 United States bankruptcy courts are the whole universe. State court dockets are a separate Actor.

#### ❓ Why do the newest filings have no judge, trustee or counsel?

RECAP receives the petition first and the parties, counsel and trustee appointment over the following days and weeks. Measured on 2026-09-08: of 20 chapter 11 petitions filed in the previous week, 5 had a judge and 2 had counsel; of 20 chapter 11 cases filed between 2019 and 2021, 19 had a judge and 15 had a trustee. Nothing is invented to fill the gap, so those cells read `Not Disclosed` until the court reports them.

#### ❓ Why is a case outside the date range I asked for?

CourtListener filters on the filing date that was recorded when the docket was indexed. When the court later corrects that date, the `dateFiled` returned can fall outside your window. The filter still narrows hard (chapter 11 goes from 293,351 dockets to 22,671 with `filedAfter 01/01/2024`), but if you need an exact window, filter the `dateFiled` column after export.

#### ❓ How fast is it, and what is the ceiling?

The API answers in 0.3 to 2.3 seconds and returns 20 rows per request, so a 200-row run is about 10 requests. Anonymously CourtListener allows 5 requests a minute and 50 an hour per IP; a burst of 8 sequential requests passed in 12 seconds, and 35 requests inside 15 minutes earned a 21-minute cooldown. Turn the proxy on for a fresh exit IP per request, or supply a free API key, and the ceiling goes away.

#### ❓ Can I get the PDFs themselves?

The row gives you the CourtListener document URL, the PACER document ID, the page count and whether the PDF is already free in RECAP. `freeDocumentCount` and `hasFreeDocuments` tell you at a glance, and `availableOnly` restricts the run to cases whose filings are already free. The Actor does not download the files.

#### ❓ Does it return the full docket?

Only the entries that matched your query, unless you turn on `includeTimeline`. That option looks the docket up a second time and attaches up to 100 entries per case, at the cost of one extra request per case.

#### ❓ Why fewer rows than Max Items?

Because every filter is ANDed and the source can simply run out of matches. Adversary proceedings and duplicate dockets are also dropped before writing, so a page of 20 hits can yield fewer than 20 rows. Free accounts are capped at 10 rows per run.

#### ❓ Why does a case caption contain several company names?

PACER writes lead and jointly administered cases into one caption, so a large corporate group appears as one docket with every affiliated debtor in the `debtors` column. `debtorCount` tells you how many parties the docket carries.

#### ❓ How fresh is the data?

RECAP mirrors PACER as its users and its own feeds pull dockets down, so a case usually appears within a day of filing. `dateAddedToRecap` on every row tells you exactly when the archive first saw it.

#### ❓ Does it deduplicate?

Yes, on the CourtListener docket ID, within a run. The same docket can match a search several times through different documents, and it is written and charged once.

#### ❓ How many rows per run?

Up to 1,000,000 on a paid plan, 10 on the free plan. In practice the anonymous rate limit is the binding constraint, so plan on the proxy or a free CourtListener key for anything over a few thousand.

### 🔌 Integrate with any app

The dataset is available through the Apify API and the JavaScript and Python clients, and every run can be scheduled, triggered by webhook or wired into Make, Zapier, n8n, Airbyte, Google Sheets, Slack and GitHub from the **Integrations** tab.

### 🔗 Recommended Actors

- [CourtListener Civil Cases Scraper](https://apify.com/parseforge/courtlistener-civil-cases-scraper?fpr=vmoqkp): federal civil dockets by JS-44 nature of suit, the records this Actor deliberately drops.
- [CourtListener Business Bankruptcy Scraper](https://apify.com/parseforge/business-bankruptcy-filings-scraper?fpr=vmoqkp): a narrower business-only view of the same archive.
- [CourtListener State Court Dockets Scraper](https://apify.com/parseforge/courtlistener-dockets-scraper?fpr=vmoqkp): state court dockets, where bankruptcy does not reach.
- [CourtListener Opinions Scraper](https://apify.com/parseforge/court-listener-opinions-scraper?fpr=vmoqkp): full opinion text, walked by court feed.
- [CourtListener Opinions Scraper](https://apify.com/parseforge/courtlistener-scraper?fpr=vmoqkp): published US case law by court and date.

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more court, government and public-records scrapers.

**🆘 Need Help?** [Open our contact form](https://tally.so/r/BzdKgA) with your run ID, your input, and what you expected.

> **⚠️ Disclaimer:** This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the Free Law Project or CourtListener. It collects only publicly available court data through the public API. You are responsible for using the data in compliance with CourtListener's terms and applicable laws. Bankruptcy records concern real people: do not use this data to identify, profile, or target individuals.

# Actor input Schema

## `dataset` (type: `string`):

Cases returns one row per bankruptcy petition with the filings that matched your query attached. Dockets is the same case row without the document list, which is faster when you only need case metadata.

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000. Leave empty on a paid plan for 100 rows.

## `chapters` (type: `array`):

Which chapters of the US Bankruptcy Code to return. Leave empty to take every chapter. Chapter 11 is corporate reorganization, chapter 7 is liquidation, chapter 13 is an individual repayment plan.

## `courts` (type: `array`):

Restrict the search to one or more of the 94 United States bankruptcy courts. Leave empty to search all of them at once.

## `query` (type: `string`):

Full-text query across the case caption, debtor names and filing text. Supports quoted phrases and AND/OR/NOT. Leave empty to browse with the filters alone.

## `caseName` (type: `string`):

Match words in the case caption, which on a bankruptcy petition is the debtor's name, for example "holdings" or "smith".

## `partyName` (type: `string`):

Name of a party recorded on the docket, for example a debtor, a joint debtor or a creditor that appeared.

## `docketNumber` (type: `string`):

Exact bankruptcy docket number, for example 26-12130 or 3:26-bk-04298. Pair it with a court for a single case.

## `filedAfter` (type: `string`):

Earliest date, as MM/DD/YYYY or YYYY-MM-DD. Measured 2026-09-08: CourtListener applies this window to the date the docket entered the RECAP archive, which is the same day for a fresh filing and can be years later for a backfilled case, so the dateFiled column can fall outside it. RECAP also adds the judge, the trustee and counsel over the weeks after a petition is docketed, so a settled window returns fuller rows than the last few days.

## `filedBefore` (type: `string`):

Latest date, as MM/DD/YYYY or YYYY-MM-DD. Same caveat as the field above: the window applies to the RECAP ingest date, not to the dateFiled column.

## `availableOnly` (type: `boolean`):

Keep only cases whose filings are already in the free RECAP archive rather than paywalled behind PACER.

## `entryDescription` (type: `string`):

Match words in the docket entry description, for example petition, plan, discharge, 341 or motion.

## `documentNumber` (type: `string`):

Filter to a specific document number within the docket, for example 1 for the voluntary petition.

## `includeTimeline` (type: `boolean`):

Look up every docket entry for each case, not just the ones that matched the query. Adds the timeline and timelineEntryCount columns and costs one extra request per case, so runs are slower.

## `timelineLimit` (type: `integer`):

How many docket entries to attach when the timeline is on. Oldest entries come first.

## `orderBy` (type: `string`):

How to order results. Relevance only means anything when a search query is set.

## `courtListenerKey` (type: `string`):

A free CourtListener API key (Profile > API on courtlistener.com) lifts the anonymous throttle and makes long runs faster. Leave empty to run anonymously.

## `proxyConfiguration` (type: `object`):

Off by default: the CourtListener API is open. Turn it on for long anonymous runs so each request gets a fresh exit IP and its own throttle allowance. Not used when an API key is supplied.

## Actor input object example

```json
{
  "dataset": "cases",
  "maxItems": 10,
  "chapters": [
    "11"
  ],
  "filedAfter": "01/01/2024",
  "availableOnly": false,
  "includeTimeline": false,
  "timelineLimit": 20,
  "orderBy": "dateFiled asc",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Key fields: case, chapter, court, docket number, dates, judge, trustee, debtors, counsel

## `fullData` (type: `string`):

Complete dataset with all 35 fields, including the matched documents array

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "dataset": "cases",
    "maxItems": 10,
    "chapters": [
        "11"
    ],
    "filedAfter": "01/01/2024",
    "orderBy": "dateFiled asc",
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/courtlistener-bankruptcy-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "dataset": "cases",
    "maxItems": 10,
    "chapters": ["11"],
    "filedAfter": "01/01/2024",
    "orderBy": "dateFiled asc",
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/courtlistener-bankruptcy-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "dataset": "cases",
  "maxItems": 10,
  "chapters": [
    "11"
  ],
  "filedAfter": "01/01/2024",
  "orderBy": "dateFiled asc",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call parseforge/courtlistener-bankruptcy-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/courtlistener-bankruptcy-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/RCUb2g8q2XQOEkeLU/builds/onTOcwkCY39EEoZKt/openapi.json
