CourtListener Civil Cases Scraper - PACER by Nature of Suit avatar

CourtListener Civil Cases Scraper - PACER by Nature of Suit

Pricing

from $2.10 / 1,000 civil case with filings

Go to Apify Store
CourtListener Civil Cases Scraper - PACER by Nature of Suit

CourtListener Civil Cases Scraper - PACER by Nature of Suit

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.

Pricing

from $2.10 / 1,000 civil case with filings

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

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 teamsNew patent, trademark and trade-secret suits by court and week
Employment and civil rights firmsTitle VII, ADA and Section 1983 filings, with the assigned judge
Insurers and risk analystsTort, product liability and insurance dockets by cause of action
Legal tech and AI teamsStructured civil dockets with stable IDs, parties, counsel and firms
Journalists and watchdogsSuits 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:

FieldDescription
๐Ÿ—‚ datasetcases, dockets, filings or opinions
๐Ÿ†” docketIdCourtListener docket ID, stable across runs
โš–๏ธ caseNameCase caption
๐Ÿ”— urlDocket page on courtlistener.com
๐Ÿ› court / ๐Ÿท courtId / ๐Ÿ“Ž courtCitationStringCourt name, CourtListener court ID (for example txed), reporter-style abbreviation
๐Ÿ”ข docketNumberPACER docket number, for example 2:26-cv-02492
๐Ÿงพ pacerCaseIdPACER's internal case ID
๐Ÿ“… dateFiled / ๐Ÿ dateTerminated / โณ isPendingFiling date, termination date (N/A while pending), Yes or No
๐Ÿ“ natureOfSuitRaw / ๐Ÿ”ฃ natureOfSuitCode / ๐Ÿ“Œ natureOfSuit / ๐Ÿ—ƒ suitCategoryThe cover-sheet text as PACER wrote it, the three-digit JS-44 code, its label and its category
๐Ÿ“œ causeCause of action, for example 42:1983 Civil Rights Act
๐ŸŒ jurisdictionType / ๐Ÿง‘โ€โš–๏ธ juryDemandFederal question, diversity, U.S. government party; who demanded a jury
๐Ÿ‘ฉโ€โš–๏ธ assignedTo / assignedToId / ๐Ÿ‘จโ€โš–๏ธ referredTo / referredToIdDistrict judge and magistrate judge with their CourtListener IDs
๐Ÿ‘ฅ parties / partyIds / partyCountEvery party, semicolon-separated, with IDs and a count
๐Ÿ’ผ attorneys / attorneyIds / ๐Ÿข lawFirms / lawFirmIdsCounsel of record and their firms, with IDs
๐Ÿ“„ matchedDocumentCount / ๐Ÿ“‚ matchedDocuments / โž• hasMoreDocumentsThe filings that matched your query (entry number, date, type, description, PDF availability, PACER document ID, URL), and whether the docket holds more
๐Ÿ•“ dateCreatedWhen the docket entered RECAP
๐Ÿ•’ scrapedAtISO timestamp of the collection
โŒ errornull 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 civilBankruptcy 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 codesEvery 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 typecause 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 rowParties, 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 requestThe 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 neededCourtListener 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 keepRows 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 ActorOther CourtListener actorsPACER directly
Nature-of-suit filter93 codes in 14 pickable categories, one search per codeUsually a free-text box or nonePer-court only, no cross-district search
Civil versus criminal and bankruptcyScreened by case type and chapter before billingMixed feedMixed feed
Parties, counsel, firmsOn every row, with IDsRarelyBehind the docket sheet, per page
Matched filings and full timelineMatched filings on the row, full timeline opt-inSometimes, as a separate modePer page
Rows a free account can preview10VariesNone
CeilingAnonymous API throttle of 5 requests a minute per IP, lifted by a free key or the proxySame source, same ceilingPer-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.

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.

๐Ÿ’ก 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.