ParseForge Scrapers

CourtListener Civil Cases Scraper - PACER by Nature of Suit

parseforge/courtlistener-civil-cases-scraper

News & mediaAutomation

Federal civil cases from the RECAP archive, filtered by JS-44 nature of suit, cause of action, court, party and date. Criminal and bankruptcy records are dropped. Returns cases, filings or case law with parties, counsel and firms. No API key needed.

Run this scraper See the API call
Total runs
38
Bookmarked
0
Last modified
2 days ago

This scraper was last updated on .

What does the CourtListener Civil Cases Scraper - PACER by Nature of Suit return?

ParseForge Banner

โš–๏ธ CourtListener Civil Cases Scraper

๐Ÿš€ Export federal civil cases from the CourtListener RECAP archive in seconds. Pick a JS-44 nature of suit, a court and a date range, and get one 36-field row per case with the judge, every party, counsel and law firm, and the filings that matched. The civil-rights category alone holds 13,084 dockets filed since January 2026.

Pull federal civil cases out of CourtListener's RECAP archive the way they are actually filed: by JS-44 nature of suit, cause of action, court, party and date. Patent suits in the Eastern District of Texas, ADA employment claims filed this month, securities class actions against a named company. Criminal cases and bankruptcy petitions are dropped, so the output is civil litigation and nothing else. No login and no API key required, and the results export to CSV, JSON, Excel, or XML.

The RECAP index is one pool of 8.8 million federal dockets and 60 million filings, and civil, criminal and bankruptcy share it. Measured on 2026-09-07, only 100 of 500 fresh dockets were civil cases. This Actor filters on the nature-of-suit code server side (all 93 JS-44 codes in 14 categories, every one verified to return cases) and screens what is left against the PACER case type, so you never page through chapter 13 petitions to find a contract dispute.

๐ŸŽฏ Target Audience ๐Ÿ’ก Primary Use Cases
Litigation and IP teams New patent, trademark and trade-secret suits by court and week
Employment and civil rights firms Title VII, ADA and Section 1983 filings, with the assigned judge
Insurers and risk analysts Tort, product liability and insurance dockets by cause of action
Legal tech and AI teams Structured civil dockets with stable IDs, parties, counsel and firms
Journalists and watchdogs Suits against an agency or a company, as they are filed

๐Ÿ“‹ What the CourtListener Civil Cases Scraper does

๐Ÿ’ก Why it matters: PACER charges per page and has no nature-of-suit search across districts. CourtListener's public search API does, but it returns civil, criminal and bankruptcy records in one stream with the fields buried in nested JSON. This Actor sends your filters to the API, keeps only civil cases, flattens each docket into one row, and never bills for a record it did not deliver.

Pick a nature-of-suit category, or the exact JS-44 codes, and the Actor queries CourtListener's search API live, following the cursor until it has the rows you asked for. Filters are applied server side, so you pay for matches rather than for filtering afterwards.

  • โš–๏ธ Civil cases (default). Case caption, court and court ID, docket number, PACER case ID, date filed, date terminated and whether the case is still pending, nature of suit as a code and as a label, JS-44 category, cause of action, jurisdiction type, jury demand, assigned and referred judge with their CourtListener IDs, every party with IDs, counsel of record, law firms, and the filings that matched your query.
  • ๐Ÿ—‚๏ธ Civil cases only. The same row without the matched-documents list, for the fastest scan of a court or a category.
  • ๐Ÿ“„ Individual filings. One row per document: entry number and date, document and attachment number, document type, short and long description, page count, PACER document ID, the opinions it cites, whether the free PDF is in the RECAP archive, and the docket ID and URL that tie it back to its case.
  • ๐Ÿ•ฐ๏ธ Full docket timeline (opt-in). Every entry on the case, oldest first, not just the ones that matched the search. One case measured on 2026-09-07 carried 1,537 entries.
  • ๐Ÿ“š Case law opinions. Published opinions with reported citations, citation count, precedential status, judge and panel, syllabus and the source PDF URL, from 8.3 million opinions.
  • ๐Ÿงน Civil means civil. Bankruptcy petitions and criminal cases are screened out by PACER case type and bankruptcy chapter, never by guessing from the caption. Turn civilOnly off to get the raw feed.
  • ๐Ÿท๏ธ No blanks. Values the source can carry but did not fill read Not Disclosed; values that do not apply to that record read N/A; booleans read Yes or No.

๐ŸŽฌ Full Demo (๐Ÿšง Coming soon)

A short walkthrough video is in production.

๐Ÿ“Š Output

Each row is one federal civil case. Fields, in dataset order:

Field Description
๐Ÿ—‚ dataset cases, dockets, filings or opinions
๐Ÿ†” docketId CourtListener docket ID, stable across runs
โš–๏ธ caseName Case caption
๐Ÿ”— url Docket page on courtlistener.com
๐Ÿ› court / ๐Ÿท courtId / ๐Ÿ“Ž courtCitationString Court name, CourtListener court ID (for example txed), reporter-style abbreviation
๐Ÿ”ข docketNumber PACER docket number, for example 2:26-cv-02492
๐Ÿงพ pacerCaseId PACER's internal case ID
๐Ÿ“… dateFiled / ๐Ÿ dateTerminated / โณ isPending Filing date, termination date (N/A while pending), Yes or No
๐Ÿ“ natureOfSuitRaw / ๐Ÿ”ฃ natureOfSuitCode / ๐Ÿ“Œ natureOfSuit / ๐Ÿ—ƒ suitCategory The cover-sheet text as PACER wrote it, the three-digit JS-44 code, its label and its category
๐Ÿ“œ cause Cause of action, for example 42:1983 Civil Rights Act
๐ŸŒ jurisdictionType / ๐Ÿง‘โ€โš–๏ธ juryDemand Federal question, diversity, U.S. government party; who demanded a jury
๐Ÿ‘ฉโ€โš–๏ธ assignedTo / assignedToId / ๐Ÿ‘จโ€โš–๏ธ referredTo / referredToId District judge and magistrate judge with their CourtListener IDs
๐Ÿ‘ฅ parties / partyIds / partyCount Every party, semicolon-separated, with IDs and a count
๐Ÿ’ผ attorneys / attorneyIds / ๐Ÿข lawFirms / lawFirmIds Counsel of record and their firms, with IDs
๐Ÿ“„ matchedDocumentCount / ๐Ÿ“‚ matchedDocuments / โž• hasMoreDocuments The filings that matched your query (entry number, date, type, description, PDF availability, PACER document ID, URL), and whether the docket holds more
๐Ÿ•“ dateCreated When the docket entered RECAP
๐Ÿ•’ scrapedAt ISO timestamp of the collection
โŒ error null on success; error rows carry only this field and are never charged

With includeTimeline on, two more columns appear before dateCreated: timelineEntryCount and timeline. The filings and opinions datasets use their own row layouts, described in the FAQ.

Three real records from a verification run (civil rights, filed since 01/01/2026, Max Items 10):

[
  {
    "dataset": "cases",
    "docketId": 74754532,
    "caseName": "Devine v. Smokie Jerrys Tiki Bar & Grill LLC",
    "url": "https://www.courtlistener.com/docket/74754532/devine-v-smokie-jerrys-tiki-bar-grill-llc/",
    "court": "District Court, M.D. Florida",
    "courtId": "flmd",
    "courtCitationString": "M.D. Fla.",
    "docketNumber": "2:26-cv-02492",
    "pacerCaseId": "465797",
    "dateFiled": "2026-09-04",
    "dateTerminated": "N/A",
    "isPending": "Yes",
    "natureOfSuitRaw": "442 Civil Rights: Jobs",
    "natureOfSuitCode": "442",
    "natureOfSuit": "Employment",
    "suitCategory": "Civil rights",
    "cause": "28:1331 Fed. Question: Employment Discrimination",
    "jurisdictionType": "Federal Question",
    "juryDemand": "Plaintiff",
    "assignedTo": "Not Disclosed",
    "assignedToId": "Not Disclosed",
    "referredTo": "Not Disclosed",
    "referredToId": "Not Disclosed",
    "parties": "Taylor Devine; Smokie Jerrys Tiki Bar & Grill LLC",
    "partyIds": "23655888; 23655887",
    "partyCount": 2,
    "attorneys": "Taylor Devine",
    "attorneyIds": "16027169",
    "lawFirms": "Not Disclosed",
    "lawFirmIds": "Not Disclosed",
    "matchedDocumentCount": 0,
    "matchedDocuments": [],
    "hasMoreDocuments": "No",
    "dateCreated": "2026-09-04T23:15:42.144400Z",
    "scrapedAt": "2026-09-08T04:46:28.267Z",
    "error": null
  },
  {
    "dataset": "cases",
    "docketId": 74753149,
    "caseName": "Lietzke v. Marquirettes",
    "url": "https://www.courtlistener.com/docket/74753149/lietzke-v-marquirettes/",
    "court": "District Court, W.D. Oklahoma",
    "courtId": "okwd",
    "courtCitationString": "W.D. Okla.",
    "docketNumber": "5:26-cv-02389",
    "pacerCaseId": "138072",
    "dateFiled": "2026-09-04",
    "dateTerminated": "N/A",
    "isPending": "Yes",
    "natureOfSuitRaw": "440 Civil Rights: Other",
    "natureOfSuitCode": "440",
    "natureOfSuit": "Other civil rights",
    "suitCategory": "Civil rights",
    "cause": "42:1983 Civil Rights Act",
    "jurisdictionType": "Federal Question",
    "juryDemand": "None",
    "assignedTo": "Patrick Robert Wyrick",
    "assignedToId": 8654,
    "referredTo": "Not Disclosed",
    "referredToId": "Not Disclosed",
    "parties": "Marquirettes; Bill Lietzke",
    "partyIds": "23657030; 23657031",
    "partyCount": 2,
    "attorneys": "Bill Lietzke",
    "attorneyIds": "16028565",
    "lawFirms": "Bill Lietzke",
    "lawFirmIds": "616447",
    "matchedDocumentCount": 2,
    "matchedDocuments": [
      {
        "id": 492604829,
        "docketEntryId": 477025481,
        "documentNumber": "1",
        "attachmentNumber": "N/A",
        "entryNumber": 1,
        "entryDateFiled": "2026-09-04",
        "documentType": "PACER Document",
        "shortDescription": "Complaint",
        "description": "COMPLAINT against Marquirettes filed by Bill Lietzke. (Attachments: # 1 Attachment 1 - Proposed Summons, # 2 Civil Cover Sheet, # 3 Envelope)(alw) (Entered: 09/04/2026)",
        "isAvailable": "No",
        "pageCount": "Not Disclosed",
        "url": "https://www.courtlistener.com/docket/74753149/1/lietzke-v-marquirettes/",
        "filepathLocal": "N/A",
        "pacerDocId": "14906856326",
        "snippet": "N/A"
      },
      {
        "id": 492616647,
        "docketEntryId": 477036786,
        "documentNumber": "2",
        "attachmentNumber": "N/A",
        "entryNumber": 2,
        "entryDateFiled": "2026-09-04",
        "documentType": "PACER Document",
        "shortDescription": "Proceed In Forma Pauperis",
        "description": "MOTION for Leave to Proceed in forma pauperis by Bill Lietzke. (Attachments: # 1 Envelope)(alw) (Entered: 09/04/2026)",
        "isAvailable": "No",
        "pageCount": "Not Disclosed",
        "url": "https://www.courtlistener.com/docket/74753149/2/lietzke-v-marquirettes/",
        "filepathLocal": "N/A",
        "pacerDocId": "14906856338",
        "snippet": "N/A"
      }
    ],
    "hasMoreDocuments": "No",
    "dateCreated": "2026-09-04T20:16:39.320613Z",
    "scrapedAt": "2026-09-08T04:46:24.030Z",
    "error": null
  },
  {
    "dataset": "cases",
    "docketId": 74752079,
    "caseName": "Harris v. Houston Independent School District",
    "url": "https://www.courtlistener.com/docket/74752079/harris-v-houston-independent-school-district/",
    "court": "District Court, S.D. Texas",
    "courtId": "txsd",
    "courtCitationString": "S.D. Tex.",
    "docketNumber": "4:26-cv-07448",
    "pacerCaseId": "2108275",
    "dateFiled": "2026-09-04",
    "dateTerminated": "N/A",
    "isPending": "Yes",
    "natureOfSuitRaw": "448 Civil Rights: Education",
    "natureOfSuitCode": "448",
    "natureOfSuit": "Education",
    "suitCategory": "Civil rights",
    "cause": "28:1983 Civil Rights",
    "jurisdictionType": "Federal Question",
    "juryDemand": "None",
    "assignedTo": "Andrew S. Hanen",
    "assignedToId": 1354,
    "referredTo": "Not Disclosed",
    "referredToId": "Not Disclosed",
    "parties": "Lovie Harris; Houston Independent School District",
    "partyIds": "23656729; 23656730",
    "partyCount": 2,
    "attorneys": "Lovie Harris",
    "attorneyIds": "16028275",
    "lawFirms": "Lovie Harris",
    "lawFirmIds": "1370933",
    "matchedDocumentCount": 3,
    "matchedDocuments": [
      {
        "id": 492688567,
        "docketEntryId": 477102832,
        "documentNumber": "1",
        "attachmentNumber": "N/A",
        "entryNumber": 1,
        "entryDateFiled": "2026-09-04",
        "documentType": "PACER Document",
        "shortDescription": "Not Disclosed",
        "description": "COMPLAINT against Houston Independent School District filed by Lovie Harris. (Attachments: # 1 Civil Cover Sheet) (amp4) (Entered: 09/04/2026)",
        "isAvailable": "No",
        "pageCount": "Not Disclosed",
        "url": "https://www.courtlistener.com/docket/74752079/1/harris-v-houston-independent-school-district/",
        "filepathLocal": "N/A",
        "pacerDocId": "179051286601",
        "snippet": "N/A"
      },
      {
        "id": 492688568,
        "docketEntryId": 477102833,
        "documentNumber": "2",
        "attachmentNumber": "N/A",
        "entryNumber": 2,
        "entryDateFiled": "2026-09-04",
        "documentType": "PACER Document",
        "shortDescription": "Not Disclosed",
        "description": "MOTION/APPLICATION to Proceed In Forma Pauperis by Lovie Harris, filed. Motion Docket Date 9/25/2026. (amp4) (Entered: 09/04/2026)",
        "isAvailable": "No",
        "pageCount": "Not Disclosed",
        "url": "https://www.courtlistener.com/docket/74752079/2/harris-v-houston-independent-school-district/",
        "filepathLocal": "N/A",
        "pacerDocId": "179051286852",
        "snippet": "N/A"
      },
      {
        "id": 492688569,
        "docketEntryId": 477102834,
        "documentNumber": "N/A",
        "attachmentNumber": "N/A",
        "entryNumber": "N/A",
        "entryDateFiled": "2026-09-04",
        "documentType": "PACER Document",
        "shortDescription": "Not Disclosed",
        "description": "Referral Judge Selected: Magistrate Judge Christina A. Bryan randomly selected to receive referrals. The selected Magistrate Judge is not assigned to this case until a District Judge refers the case or a motion or the parties consent to jurisdiction of the Magistrate Judge. Once a referral has been made, the name of the referral judge will appear at the top of the docket sheet. (amp4)",
        "isAvailable": "No",
        "pageCount": "Not Disclosed",
        "url": "N/A",
        "filepathLocal": "N/A",
        "pacerDocId": "Not Disclosed",
        "snippet": "N/A"
      }
    ],
    "hasMoreDocuments": "Yes",
    "dateCreated": "2026-09-04T18:27:30.993620Z",
    "scrapedAt": "2026-09-08T04:46:32.469Z",
    "error": null
  }
]

โœจ Why choose this Actor

What you get
Civil means civil Bankruptcy petitions and criminal cases are screened out by PACER case type and bankruptcy chapter, not by hoping the caption looks civil. Turn civilOnly off if you want the raw feed.
93 nature-of-suit codes Every JS-44 code, grouped into 14 categories you can pick from a list. All 93 were measured one by one against the API on 2026-09-07 and all 93 return cases, from 75,281 for alien detainee petitions down to 2 for recovery of veteran's benefits, covering 303,054 federal civil cases filed since 2024.
Cause of action, not just case type cause filters on the statute the complaint is brought under, for example 28:1332 Diversity or 42:1983. Measured: it cuts a 1,001,445-docket feed to 13,903.
Counsel and firms on the row Parties, attorneys and law firms come back with their CourtListener IDs. Measured on 60 cases: 60/60 had parties, 59/60 counsel, 57/60 firms.
The full timeline, on request The search row only carries the documents that matched your query. Turn on includeTimeline and each case also gets its complete docket 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. Non-civil records and duplicates are dropped before billing, never after.

๐Ÿ“ˆ How it compares to alternatives

This Actor Other CourtListener actors PACER directly
Nature-of-suit filter 93 codes in 14 pickable categories, one search per code Usually a free-text box or none Per-court only, no cross-district search
Civil versus criminal and bankruptcy Screened by case type and chapter before billing Mixed feed Mixed feed
Parties, counsel, firms On every row, with IDs Rarely 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.
  2. Open the CourtListener Civil Cases Scraper.
  3. Pick a nature-of-suit category, set your court and dates, and click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

One typical run: dataset cases, suitCategories ["intellectual-property"], court txed, filedAfter 01/01/2026, maxItems 200. Run it programmatically through the Apify API or the ApifyClient for JavaScript and Python.

๐Ÿ’ผ Business use cases

๐Ÿ“ก Watch a case type as it is filed

Set a category such as intellectual property or civil rights, sort by filing date, and run it on a schedule. Each run returns the newest suits first, so a diff against the last run is your alert feed. A litigation funder can see every new 830 patent case in txed and dedcourt the morning after it is docketed.

โš”๏ธ Track litigation against a company

partyName searches the party list, which is what PACER indexes, so a company's suits come back whether it is plaintiff or defendant. Insurers and M&A teams use it to build a litigation history before underwriting or a deal.

๐Ÿ›๏ธ Map a court's civil docket

Set court to a district ID such as txed, cand or nysd and pull every civil case filed in a date range, grouped by the code the plaintiff wrote on the cover sheet. Law firm marketing teams use the assignedTo and attorneys columns to see who is filing what before whom.

๐Ÿ“Š Measure filing trends

Every row carries the nature-of-suit code, the JS-44 category and the cause of action, so counts by court, quarter and case type fall out of a group-by. Legal analytics vendors feed the stable docketId into their own tables and refresh it on a schedule.

๐Ÿ”Œ Automating CourtListener Civil Cases 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 case caption, court and cause to a litigation-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 practice group.

๐ŸŒŸ Beyond business use cases

  • Research: count Section 1983 filings by district and year, or trace the spread of a new cause of action across circuits.
  • Personal: follow a case you are a party to, or watch a company you are in a dispute with.
  • Non-profit: monitor civil rights, housing and immigration filings in the districts you serve.
  • Experimentation: train classifiers on cover-sheet codes versus complaint text, or build a docket-alert bot on top of the JSON export.

๐Ÿค– Ask an AI assistant about this scraper

Give an AI agent live access to federal civil dockets through the Model Context Protocol:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/courtlistener-civil-cases-scraper"

Then prompt it in plain language:

  • "List the patent suits filed in the Eastern District of Texas this month."
  • "Find ADA employment cases filed against school districts in 2026."
  • "Which judges are assigned the most securities cases in the Southern District of New York?"

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

Use the Apify Actor "parseforge/courtlistener-civil-cases-scraper" to search federal civil cases. Input: { "dataset": "cases" | "dockets" | "filings" | "opinions", "suitCategories": ["intellectual-property"], "natureOfSuitCodes": ["830"], "court": "<court id>", "filedAfter": "MM/DD/YYYY", "partyName": "<name>", "maxItems": <n> }. It returns case name, court, docket number, dates, nature of suit, cause, judge, parties, counsel and firms per row. Call it with the ApifyClient and my APIFY_TOKEN.

โ“ Frequently Asked Questions

โ“ Do I need a CourtListener account?

No. Every endpoint this Actor reads is public and anonymous. A free CourtListener API key is supported (courtListenerKey) and lifts the 5-requests-a-minute throttle for long runs, but it is optional.

โ“ What is a nature of suit?

The three-digit code the plaintiff writes on the JS-44 civil cover sheet, for example 830 for patent or 442 for employment discrimination. It is how federal civil cases are classified, and this Actor searches by it.

โ“ Does it cover state courts?

No. RECAP is the federal PACER archive. The opinions dataset does include state appellate case law.

โ“ Why am I getting no results?

Every filter is ANDed, and an over-narrow combination returns an empty set rather than an error. Drop one filter at a time. The rarer codes are genuinely rare: recovery of veteran's benefits matched 2 cases in all of 2024 and 2025.

โ“ Why are the newest cases missing their nature of suit or judge?

A case enters RECAP with whatever the first donated filing carried, and the cover-sheet fields arrive later. Measured on 2026-09-07: of 100 dockets filed that same day, 1 had a nature of suit, while of 60 cases filed in 2024 and 2025 all 60 had one. Those cells read Not Disclosed until the data lands.

โ“ How fast is it, and what is the ceiling?

CourtListener throttles anonymous callers at 5 requests a minute per IP, and each request returns 20 rows, so a direct run tops out around 100 rows a minute and waits out the throttle when it hits it. Turn on the proxy for a fresh exit IP per request, or add a free CourtListener key, and the throttle no longer binds.

โ“ Can I get the documents themselves?

The ones already donated to the free RECAP archive, yes: each filing carries the archive path in filepathLocal and isAvailable tells you whether the PDF is there. Turn on availableOnly to keep only cases with free PDFs.

โ“ Does it return the full docket?

On request. includeTimeline fetches every entry per case as a second search and adds timelineEntryCount and timeline to the row. It is off by default because it adds one request per case.

โ“ What do the filings and opinions rows look like?

A filing row is the document plus the docketId and caseUrl that link it back to its case: id, docketEntryId, documentNumber, attachmentNumber, entryNumber, entryDateFiled, documentType, shortDescription, description, isAvailable, pageCount, url, caseUrl, filepathLocal, pacerDocId, citedOpinionIds, snippet, dateCreated. An opinion row carries clusterId, caseName, court, docketNumber, status, dateFiled, syllabus, judge, panelNames, citations, citeCount, opinionType, downloadUrl and the opinions it cites.

โ“ Why fewer rows than Max Items?

Either your query has that many matches, or non-civil records and duplicates were dropped. The log prints CourtListener's own total per search and how many records were skipped.

โ“ Why does a case show dates that do not match its docket number?

A handful of RECAP dockets carry entries from an older case that reused the same PACER slot, so dateFiled and the entry dates can disagree. That is what the source index holds; the Actor passes it through and url takes you to the docket so you can check.

โ“ How fresh is the data?

It is read at run time from the same index that powers courtlistener.com. Dockets appear as RECAP receives them from the courts' RSS feeds and from RECAP extension users.

โ“ Does it deduplicate?

Yes. The API paginates by cursor, which is stable, and rows are keyed by docket or document ID across all the searches in a run, so a case that matches two codes is written and charged once.

โ“ How many rows per run?

Free plan: 10, as a preview. Paid plans: up to 1,000,000, bounded by how many records your query actually matches.

๐Ÿ”Œ 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

๐Ÿ’ก Pro Tip: browse the complete ParseForge collection for more court, government and public-records scrapers.

๐Ÿ†˜ Need Help? Open our contact form 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. Court records concern real people: do not use this data to identify, profile, or target individuals.

What input does the CourtListener Civil Cases Scraper - PACER by Nature of Suit accept?

FieldTypeWhat it doesDefault
dataset string (4 options) Cases returns one row per federal civil docket with the filings that matched your query attached. Dockets is the same case row without the document list. Filings returns one row per document. Opinions returns published case law instead of PACER dockets. cases
maxItems integer Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000. Split evenly across the selected nature-of-suit codes. Leave empty on a paid plan for 100 rows. 10
suitCategories array Pick whole JS-44 groups instead of memorising codes. Each category expands to its nature-of-suit codes and is searched in turn. Leave empty to take every civil case. Not supported by the opinions dataset, where CourtListener ignores the filter. ["civil-rights"]
natureOfSuitCodes array Exact JS-44 codes, for example 830 for patent, 850 for securities or 442 for employment discrimination. Each code is searched separately and the results are merged, with the row budget split between them. Combines with the categories above. Not supported by the opinions dataset. not set
query string Full-text query across the case caption, parties and filing text. Supports quoted phrases and AND/OR/NOT. Leave empty to browse with the filters alone. not set
cause string The statute the complaint is brought under, as PACER writes it, for example "28:1332 Diversity" or "42:1983". Words are matched, so "civil rights" works too. not set
court string Restrict to one court by its CourtListener ID, for example cand, nysd, txed or ca9. Space-separate several IDs to match any of them. not set
filedAfter string Earliest filing date, as MM/DD/YYYY or YYYY-MM-DD. 01/01/2026
filedBefore string Latest filing date, as MM/DD/YYYY or YYYY-MM-DD. not set
caseName string Match words in the case caption, for example "smith" or "united states". not set
docketNumber string Exact docket number, for example 1:20-cv-03590. not set
partyName string Name of a party to the case, for example Google or "United States". not set
entryDescription string Match words in the docket entry description, for example complaint, motion or judgment. not set
documentNumber string Filter to a specific document number within the docket, for example 1 for the complaint. not set
availableOnly boolean Keep only cases whose filings are already in the free RECAP archive rather than paywalled behind PACER. false
civilOnly boolean Drop criminal cases and bankruptcy petitions, which share the PACER index with civil cases. On by default: without it most of the unfiltered feed is bankruptcy. The document index does not expose the case type, so for filings pick a nature-of-suit code instead. true
includeTimeline 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. false
timelineLimit integer How many docket entries to attach when the timeline is on. Older entries come first. 20
orderBy string (6 options) How to order results. Relevance only means anything when a search query is set. dateFiled desc
courtListenerKey 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. not set
proxyConfiguration 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. {"useApifyProxy":false}

How much does the CourtListener Civil Cases Scraper - PACER by Nature of Suit cost?

from $0.20 per 1,000 results

Charged forWhat it isPrice each
Actor Start Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). $0.0002 to $0.002
Civil case with filings One federal civil case, with 34 fields: caption, court, docket number, PACER case ID, filed and terminated dates, nature of suit as code, label and JS-44 category, cause of action, jurisdiction type, jury demand, assigned and referred judge with IDs, every party, counsel and law firm with IDs, and the filings that matched your query. $0.0021 to $0.005
Civil case One federal civil case without the attached document list: caption, court, docket number, filed and terminated dates, nature of suit, cause of action, jurisdiction type, jury demand, judges, parties, counsel and law firms. $0.00168 to $0.004
Filing One document from the RECAP archive: entry number and date, document and attachment number, type, short and long description, page count, PACER document ID, the opinions it cites, and whether the free PDF is already in the archive. $0.00126 to $0.003
Case law opinion One published opinion: case name, court, docket number, filing date, precedential status, judge and panel, reported and Lexis citations, citation count, syllabus, the source PDF URL and the opinions it cites. $0.00168 to $0.004
Full docket timeline Charged once per case looked up when the optional full timeline is on: a second search that returns every docket entry on the case, not just the ones that matched your query. Charged per case, not per entry. $0.00126 to $0.003

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

How do I call the CourtListener Civil Cases Scraper - PACER by Nature of Suit API?

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~courtlistener-civil-cases-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "dataset": "cases",
    "maxItems": 10,
    "suitCategories": [
      "civil-rights"
    ],
    "filedAfter": "01/01/2026",
    "availableOnly": false
  }'

What example inputs can I use?

Use these inputs to see how a run is configured.

input.json
{
  "dataset": "cases",
  "maxItems": 10,
  "suitCategories": [
    "civil-rights"
  ],
  "filedAfter": "01/01/2026",
  "availableOnly": false
}

What do users say about the CourtListener Civil Cases Scraper - PACER by Nature of Suit?

No reviews yet. Be the first.

How do I report an issue with the CourtListener Civil Cases Scraper - PACER by Nature of Suit?

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

What related scrapers can I use?

Run CourtListener Civil Cases Scraper - PACER by Nature of Suit on Apify All scrapers