# CourtListener

> Search American law in the free archive run by the nonprofit Free Law Project. Search around ten million published court decisions, federal and state, and read any of them in full. Check every case citation in a piece of writing against the archive, which is how an invented citation is caught before it is filed. Follow federal litigation through the dockets collected out of PACER, from the case down to what was filed and when. Look up the judges who decide these cases and every seat they have held, and find recorded oral arguments with the audio. Free to use, with a free account.

App · Research & Academia · 10 actions. Web page: https://docs.lodol.com/docs/integrations/courtlistener

## Actions

### Check citations

Find every case citation in a piece of text and check each one against the archive. Paste in a brief, a memo, a contract or anything a language model wrote, and get back each citation it contains with a verdict: the real case it points to, or a plain statement that no such case exists. Citations with a typo in them are corrected where the correction is obvious. This is the step to put in front of anything that will be filed or sent, because an invented citation reads exactly like a real one until somebody looks it up.

**Inputs**

- Text to check (`text`, text, required): The writing to look through. It can be a single citation or a whole document of up to 64,000 characters, and up to 250 citations are checked at a time.

**Outputs**

- `all_found` (true/false)
- `citation_count` (number)
- `citations` (list)
- `found_count` (number)
- `more_citations_than_checked` (true/false)
- `not_found` (list)
- `not_found_count` (number)

**Example output**

```json
{
  "all_found": false,
  "citation_count": 2,
  "citations": [
    {
      "case_count": 1,
      "cases": [
        {
          "case_id": 105221,
          "case_name": "Brown v. Board of Education",
          "citation": "347 U.S. 483",
          "citations": [
            "347 U.S. 483"
          ],
          "date_filed": "1954-05-17",
          "decision_ids": [
            105221
          ],
          "docket_id": 63367,
          "precedential_status": "Precedential",
          "times_cited": 3825,
          "url": "https://www.courtlistener.com/opinion/105221/brown-v-board-of-education/"
        }
      ],
      "citation": "347 U.S. 483",
      "corrected_to": [
        "347 U.S. 483"
      ],
      "ends_at": 50,
      "problem": "",
      "starts_at": 38,
      "status_code": 200,
      "verdict": "Found",
      "was_found": true
    },
    {
      "case_count": 0,
      "cases": [],
      "citation": "999 U.S. 111",
      "corrected_to": [
        "999 U.S. 111"
      ],
      "ends_at": 104,
      "problem": "",
      "starts_at": 92,
      "status_code": 404,
      "verdict": "Looks like a real citation, but CourtListener does not have the case",
      "was_found": false
    }
  ],
  "found_count": 1,
  "more_citations_than_checked": false,
  "not_found": [
    "999 U.S. 111"
  ],
  "not_found_count": 1
}
```

### Get a case

Read the full record of one decided case: its name, the day it was decided, every way it can be cited, the judges who sat on it, how often it has been cited since, and whatever the court published alongside the decision such as the syllabus, the posture and the procedural history. It also lists the separate decisions written in the case, so the majority, a concurrence and a dissent can each be read in full with Get a decision. Takes the case ID that a case law search or a citation check returned.

**Inputs**

- Case ID (`case_id`, number, required): The case to read, as returned by Search case law or Check citations. At least 1.

**Outputs**

- `case` (object)

**Example output**

```json
{
  "case": {
    "attorneys": "Thurgood Marshall for appellants",
    "case_id": 105221,
    "case_name": "Brown v. Board of Education",
    "case_name_full": "Brown v. Board of Education of Topeka",
    "case_name_short": "Brown",
    "citation": "347 U.S. 483",
    "citations": [
      "347 U.S. 483",
      "74 S. Ct. 686"
    ],
    "date_filed": "1954-05-17",
    "date_is_approximate": false,
    "decision_ids": [
      105221
    ],
    "disposition": "",
    "docket_id": 63367,
    "headnotes": "",
    "judge_ids": [
      3182
    ],
    "judges": "Warren",
    "nature_of_suit": "",
    "non_participating_judge_ids": [],
    "posture": "",
    "precedential_status": "Precedential",
    "precedential_status_code": "Published",
    "procedural_history": "",
    "summary": "",
    "syllabus": "Segregation of children in public schools solely on the basis of race deprives children of the minority group of equal educational opportunities.",
    "times_cited": 3825,
    "url": "https://www.courtlistener.com/opinion/105221/brown-v-board-of-education/"
  }
}
```

### Get a decision

Read the words of one decision in full: a majority opinion, a concurrence, a dissent or a per curiam order. The answer says which kind it is, who wrote it, which judges joined it, and which other decisions it cites, and carries the text itself with the markup taken off, ready to summarise, quote or search in a later step. Takes the decision ID that a case law search or Get a case returned.

**Inputs**

- Decision ID (`decision_id`, number, required): The decision to read, as returned by Search case law or Get a case. At least 1.

**Outputs**

- `decision` (object)

**Example output**

```json
{
  "decision": {
    "case_id": 105221,
    "cited_decision_ids": [
      96528,
      99967
    ],
    "decision_id": 105221,
    "is_per_curiam": false,
    "joined_by_judge_ids": [],
    "kind": "Combined opinion",
    "kind_code": "combined-opinion",
    "page_count": 11,
    "source_copy": "html_with_citations",
    "source_file_url": "",
    "text": "We come then to the question presented: Does segregation of children in public schools solely on the basis of race, even though the physical facilities and other tangible factors may be equal, deprive the children of the minority group of equal educational opportunities? We believe that it does.",
    "text_length": 297,
    "url": "https://www.courtlistener.com/opinion/105221/brown-v-board-of-education/",
    "was_scanned": false,
    "written_by_judge_id": 3182
  }
}
```

### Get a federal case

Read the full record of one federal court case: its name and docket number, the court and the judge, when it was filed, when anything was last filed in it, whether it has been closed, what kind of suit it is, and what it was appealed from. It also points at the decisions published in the case and any recorded oral arguments, so the litigation and the case law it produced join up. Takes the case ID that a federal case search returned.

**Inputs**

- Case ID (`case_id`, number, required): The federal case to read, as returned by Search federal cases. At least 1.

**Outputs**

- `case` (object)

**Example output**

```json
{
  "case": {
    "appealed_from": "",
    "assigned_judge": "Amit P. Mehta",
    "assigned_judge_id": 1124,
    "case_id": 65745614,
    "case_law_ids": [],
    "case_name": "United States v. Example Corp",
    "case_name_full": "United States of America v. Example Corporation",
    "cause": "15:1 Antitrust Litigation",
    "court": "District of Columbia District Court",
    "court_id": "dcd",
    "date_argued": "",
    "date_filed": "2024-04-30",
    "date_last_filing": "2025-02-11",
    "date_terminated": "",
    "docket_number": "1:24-cv-01234",
    "is_closed": false,
    "jurisdiction_type": "U.S. Government Plaintiff",
    "jury_demand": "None",
    "nature_of_suit": "410 Antitrust",
    "oral_argument_ids": [],
    "referred_judge": "",
    "url": "https://www.courtlistener.com/docket/65745614/united-states-v-example-corp/"
  }
}
```

### Get a judge

Read one judge's biography and their whole career on and off the bench: every seat and job on record, when each started and ended, who appointed them, when they were nominated and confirmed, and why a seat ended. Takes the judge ID that a judge search returned, or the one carried on a decision as its author.

**Inputs**

- Judge ID (`judge_id`, number, required): The judge to read, as returned by Search judges or carried on a decision as the judge who wrote it. At least 1.

**Outputs**

- `judge` (object)

**Example output**

```json
{
  "judge": {
    "born_in": "Bronx, NY",
    "date_of_birth": "1954-01-01",
    "date_of_death": "",
    "gender": "f",
    "has_photo": true,
    "judge_id": 3045,
    "name": "Sonia Sotomayor",
    "name_first": "Sonia",
    "name_last": "Sotomayor",
    "name_middle": "",
    "position_count": 1,
    "positions": [
      {
        "appointed_by": "Barack Obama",
        "court": "Supreme Court of the United States",
        "court_id": "scotus",
        "date_confirmed": "2009-08-06",
        "date_nominated": "2009-06-01",
        "ended": "",
        "how_selected": "Appointed by the President",
        "is_current": true,
        "organization": "",
        "role": "Associate Justice",
        "started": "2009-08-08",
        "why_it_ended": ""
      }
    ],
    "religion": "",
    "suffix": "",
    "url": "https://www.courtlistener.com/person/3045/sonia-sotomayor/"
  }
}
```

### List filings

List what has been filed in a federal court case, newest or oldest first, with the date and the court's own description of each entry and the documents attached to it. Narrow it to a range of dates to see only what has happened lately, which is how a workflow watches a case it cares about. Each document says how many pages it runs to and whether the archive holds the document itself, and its text can be included when a later step needs to read it.

**Inputs**

- Case ID (`case_id`, number, required): The federal case whose filings to list, as returned by Search federal cases. At least 1.
- Filed on or after (`filed_after`, date): Only filings made on or after this day.
- Filed on or before (`filed_before`, date): Only filings made on or before this day.
- Sort by (`sort_by`, text): The order to read the filings in. One of: `newest` (Newest first), `oldest` (Oldest first).
- Include the text of each document (`include_document_text`, true/false): Bring back the words of every document as well as its description. Leave this off unless a later step reads them: a busy docket runs to hundreds of pages. Default: `false`.
- Page (`page`, number): Which page of filings to read. Twenty come back at a time, newest or oldest first as chosen above. From 1 to 100. Default: `1`.

**Outputs**

- `case_id` (number)
- `filings` (list)
- `has_more` (true/false)
- `page` (number)
- `result_count` (number)
- `total_filings` (number)

**Example output**

```json
{
  "case_id": 65745614,
  "filings": [
    {
      "date_filed": "2024-04-30",
      "description": "COMPLAINT against Example Corporation, filed by United States of America.",
      "document_count": 1,
      "documents": [
        {
          "attachment_number": null,
          "can_be_read": true,
          "description": "Main Document",
          "document_id": 301948221,
          "document_number": 1,
          "page_count": 42,
          "source_file_url": "",
          "url": "https://www.courtlistener.com/docket/65745614/1/united-states-v-example-corp/",
          "was_scanned": false
        }
      ],
      "entry_number": 1,
      "filing_id": 240118837
    }
  ],
  "has_more": false,
  "page": 1,
  "result_count": 1,
  "total_filings": 1
}
```

### Search case law

Search around ten million published decisions of American courts, federal and state, going back to the eighteenth century. Search by words in the decisions, by the name of the case, by a citation, by the judge who wrote it, by the court it came from, or by when it was decided, and combine any of those. Each result carries the case, how to cite it, how often it has since been cited, and the separate opinions written in it, so a dissent can be read on its own. The twenty best matches come back, along with how many there are in all.

**Inputs**

- Search words (`query`, text): Words to look for in the decisions themselves. Quotation marks keep a phrase together, and AND, OR and NOT work as you would expect.
- Case name (`case_name`, text): Part of the name of the case, when you know roughly what it is called.
- Citation (`citation`, text): A citation, when you have one and want the case it refers to.
- Judge (`judge`, text): The judge who wrote the decision. A surname is usually enough.
- Court (`court`, text): Which court to look in. Leave it empty to search every court at once. One of: `scotus` (Supreme Court of the United States), `ca1` (Court of Appeals for the First Circuit), `ca2` (Court of Appeals for the Second Circuit), `ca3` (Court of Appeals for the Third Circuit), `ca4` (Court of Appeals for the Fourth Circuit), `ca5` (Court of Appeals for the Fifth Circuit), `ca6` (Court of Appeals for the Sixth Circuit), `ca7` (Court of Appeals for the Seventh Circuit), `ca8` (Court of Appeals for the Eighth Circuit), `ca9` (Court of Appeals for the Ninth Circuit), and 462 more.
- Decided on or after (`filed_after`, date): Only decisions handed down on or after this day.
- Decided on or before (`filed_before`, date): Only decisions handed down on or before this day.
- Kind of decision (`precedential_status`, text): Which decisions count. Precedential decisions are the ones that bind later courts, and are all that is searched when nothing is chosen here. One or more of: `Published` (Precedential), `Unpublished` (Non-Precedential), `Errata`, `Separate` (Separate opinion), `In-chambers` (In chambers), `Relating-to` (Relating-to orders), `Unknown`.
- Cited more than (`cited_more_than`, number): Only decisions later courts have cited more than this many times. A good way to find the leading cases on a question rather than every case that mentions it. From 0 to 100000.
- Sort by (`sort_by`, text): The order to read the results in. One of: `best_match` (Best match), `newest` (Newest first), `oldest` (Oldest first), `most_cited` (Most cited first), `least_cited` (Least cited first).

**Outputs**

- `cases` (list)
- `more_matches_than_shown` (true/false)
- `result_count` (number)
- `total_matches` (number)

**Example output**

```json
{
  "cases": [
    {
      "case_id": 105221,
      "case_name": "Brown v. Board of Education",
      "case_name_full": "Brown v. Board of Education of Topeka",
      "citation": "347 U.S. 483",
      "citations": [
        "347 U.S. 483",
        "74 S. Ct. 686",
        "98 L. Ed. 873"
      ],
      "court": "Supreme Court of the United States",
      "court_id": "scotus",
      "date_argued": "1952-12-09",
      "date_filed": "1954-05-17",
      "decisions": [
        {
          "decision_id": 105221,
          "excerpt": "We conclude that in the field of public education the doctrine of separate but equal has no place.",
          "is_per_curiam": false,
          "kind": "Combined opinion",
          "kind_code": "combined-opinion",
          "source_file_url": "",
          "written_by_judge_id": 3182
        }
      ],
      "docket_id": 63367,
      "docket_number": "1",
      "judges": "Warren",
      "precedential_status": "Precedential",
      "precedential_status_code": "Published",
      "times_cited": 3825,
      "url": "https://www.courtlistener.com/opinion/105221/brown-v-board-of-education/"
    }
  ],
  "more_matches_than_shown": false,
  "result_count": 1,
  "total_matches": 1
}
```

### Search federal cases

Search federal court cases, the live litigation rather than the decided case law: district court, appellate and bankruptcy dockets collected out of PACER by the RECAP archive. Search by words in the documents filed, by the name of the case, by its docket number, by a party or a law firm, by the judge it is assigned to, by what kind of suit it is, or by when it was filed. Each result carries the case, the judge, the parties, and the filings that matched. The twenty best matches come back, along with how many there are in all.

**Inputs**

- Search words (`query`, text): Words to look for in the documents filed in the case. Quotation marks keep a phrase together.
- Case name (`case_name`, text): Part of the name of the case.
- Docket number (`docket_number`, text): The court's own number for the case, when you have it.
- Court (`court`, text): Which federal court to look in. Leave it empty to search every federal court at once. Only federal courts appear here, because state cases are not filed through the federal system. One of: `ca1` (Court of Appeals for the First Circuit), `ca2` (Court of Appeals for the Second Circuit), `ca3` (Court of Appeals for the Third Circuit), `ca4` (Court of Appeals for the Fourth Circuit), `ca5` (Court of Appeals for the Fifth Circuit), `ca6` (Court of Appeals for the Sixth Circuit), `ca7` (Court of Appeals for the Seventh Circuit), `ca8` (Court of Appeals for the Eighth Circuit), `ca9` (Court of Appeals for the Ninth Circuit), `ca10` (Court of Appeals for the Tenth Circuit), and 194 more.
- Party (`party_name`, text): A person or company involved in the case, on either side.
- Attorney (`attorney_name`, text): An attorney who has appeared in the case.
- Judge (`judge`, text): The judge the case is assigned to.
- Nature of suit (`nature_of_suit`, text): What kind of case it is, in the words the federal courts use on the cover sheet.
- Filed on or after (`filed_after`, date): Only cases opened on or after this day.
- Filed on or before (`filed_before`, date): Only cases opened on or before this day.
- Only cases with readable documents (`available_only`, true/false): Leave out cases where the archive has the docket but none of the documents themselves. Turn this on when the next step needs to read what was filed. Default: `false`.
- Sort by (`sort_by`, text): The order to read the results in. One of: `best_match` (Best match), `newest_case` (Newest case first), `oldest_case` (Oldest case first), `newest_filing` (Newest filing first), `oldest_filing` (Oldest filing first).

**Outputs**

- `cases` (list)
- `more_matches_than_shown` (true/false)
- `result_count` (number)
- `total_matches` (number)

**Example output**

```json
{
  "cases": [
    {
      "assigned_judge": "Amit P. Mehta",
      "assigned_judge_id": 1124,
      "attorneys": [
        "Jane Q. Attorney"
      ],
      "case_id": 65745614,
      "case_name": "United States v. Example Corp",
      "case_name_full": "United States of America v. Example Corporation",
      "cause": "15:1 Antitrust Litigation",
      "court": "District of Columbia District Court",
      "court_id": "dcd",
      "date_argued": "",
      "date_filed": "2024-04-30",
      "date_terminated": "",
      "docket_number": "1:24-cv-01234",
      "jury_demand": "None",
      "matching_filings": [
        {
          "attachment_number": null,
          "can_be_read": true,
          "date_filed": "2024-04-30",
          "description": "COMPLAINT against Example Corporation.",
          "document_id": 301948221,
          "document_number": 1,
          "entry_number": 1,
          "excerpt": "Plaintiff United States of America brings this civil action.",
          "filing_id": 240118837,
          "page_count": 42,
          "url": "https://www.courtlistener.com/docket/65745614/1/united-states-v-example-corp/"
        }
      ],
      "nature_of_suit": "410 Antitrust",
      "parties": [
        "United States of America",
        "Example Corporation"
      ],
      "referred_judge": "",
      "url": "https://www.courtlistener.com/docket/65745614/united-states-v-example-corp/"
    }
  ],
  "more_matches_than_shown": false,
  "result_count": 1,
  "total_matches": 1
}
```

### Search judges

Search thousands of federal and state judges by name, by the court they have sat on, by where they studied, by who appointed them, by their political affiliation, or by how they came to the bench. Each result carries their dates, their schools, any American Bar Association rating, and every seat they have held with the dates. Use it to find out who will hear a matter before it is heard. The twenty best matches come back, along with how many there are in all.

**Inputs**

- Name (`name`, text): All or part of the judge's name.
- Court (`court`, text): Which court to look in. Leave it empty to search every court at once. One of: `scotus` (Supreme Court of the United States), `ca1` (Court of Appeals for the First Circuit), `ca2` (Court of Appeals for the Second Circuit), `ca3` (Court of Appeals for the Third Circuit), `ca4` (Court of Appeals for the Fourth Circuit), `ca5` (Court of Appeals for the Fifth Circuit), `ca6` (Court of Appeals for the Sixth Circuit), `ca7` (Court of Appeals for the Seventh Circuit), `ca8` (Court of Appeals for the Eighth Circuit), `ca9` (Court of Appeals for the Ninth Circuit), and 462 more.
- School (`school`, text): A school or law school the judge attended.
- Appointed by (`appointed_by`, text): The president or governor who appointed them, by name.
- Political affiliation (`political_affiliation`, text): The party a judge has been affiliated with, where CourtListener has a record of one. One of: `d` (Democratic), `r` (Republican), `i` (Independent), `g` (Green), `l` (Libertarian), `f` (Federalist), `w` (Whig), `j` (Jeffersonian Republican), `u` (National Union), `z` (Reform Party).
- How they reached the bench (`selection_method`, text): Whether the judge was elected or appointed, and by whom. One of: `e_part` (Partisan election), `e_non_part` (Non-partisan election), `a_pres` (Appointed by the President), `a_gov` (Appointed by a Governor), `a_legis` (Appointed by a legislature), `a_judge` (Appointed by a judge), `ct_trans` (Transferred in a court restructuring).
- Sort by (`sort_by`, text): The order to read the results in. One of: `best_match` (Best match), `name`, `youngest` (Most recently born), `oldest` (Least recently born).

**Outputs**

- `judges` (list)
- `more_matches_than_shown` (true/false)
- `result_count` (number)
- `total_matches` (number)

**Example output**

```json
{
  "judges": [
    {
      "aba_ratings": [
        "Well Qualified"
      ],
      "born_in": "Bronx, NY",
      "date_of_birth": "1954-01-01",
      "date_of_death": "",
      "judge_id": 3045,
      "name": "Sonia Sotomayor",
      "political_affiliations": [
        "Democratic"
      ],
      "positions": [
        {
          "appointed_by": "Barack Obama",
          "court": "Supreme Court of the United States",
          "court_id": "scotus",
          "date_confirmed": "2009-08-06",
          "date_nominated": "2009-06-01",
          "ended": "",
          "how_selected": "Appointed by the President",
          "is_current": true,
          "organization": "",
          "role": "Associate Justice",
          "started": "2009-08-08",
          "why_it_ended": ""
        }
      ],
      "schools": [
        "Princeton University",
        "Yale University"
      ],
      "url": "https://www.courtlistener.com/person/3045/sonia-sotomayor/"
    }
  ],
  "more_matches_than_shown": false,
  "result_count": 1,
  "total_matches": 1
}
```

### Search oral arguments

Search recorded oral arguments from the Supreme Court and the federal appellate courts, by what was said, by the case, by its docket number, by the judges on the panel, by the court, or by when it was argued. Each result carries the date, how long the argument ran, and a link to the recording itself, so a later step can transcribe it or hand it to somebody to listen to. The twenty best matches come back, along with how many there are in all.

**Inputs**

- Search words (`query`, text): Words to look for in what was said. Quotation marks keep a phrase together.
- Case name (`case_name`, text): Part of the name of the case.
- Docket number (`docket_number`, text): The court's own number for the case.
- Judge (`judge`, text): A judge on the panel that heard the argument.
- Court (`court`, text): Which court to look in. Leave it empty to search every court at once. One of: `scotus` (Supreme Court of the United States), `ca1` (Court of Appeals for the First Circuit), `ca2` (Court of Appeals for the Second Circuit), `ca3` (Court of Appeals for the Third Circuit), `ca4` (Court of Appeals for the Fourth Circuit), `ca5` (Court of Appeals for the Fifth Circuit), `ca6` (Court of Appeals for the Sixth Circuit), `ca7` (Court of Appeals for the Seventh Circuit), `ca8` (Court of Appeals for the Eighth Circuit), `ca9` (Court of Appeals for the Ninth Circuit), and 462 more.
- Argued on or after (`argued_after`, date): Only arguments heard on or after this day.
- Argued on or before (`argued_before`, date): Only arguments heard on or before this day.
- Sort by (`sort_by`, text): The order to read the results in. One of: `best_match` (Best match), `newest` (Newest first), `oldest` (Oldest first).

**Outputs**

- `arguments` (list)
- `more_matches_than_shown` (true/false)
- `result_count` (number)
- `total_matches` (number)

**Example output**

```json
{
  "arguments": [
    {
      "argument_id": 74221,
      "audio_url": "https://www.supremecourt.gov/media/audio/mp3files/22-451.mp3",
      "case_name": "Loper Bright Enterprises v. Raimondo",
      "case_name_full": "Loper Bright Enterprises, et al. v. Gina Raimondo, Secretary of Commerce",
      "court": "Supreme Court of the United States",
      "court_id": "scotus",
      "date_argued": "2024-01-17",
      "docket_id": 67684143,
      "docket_number": "22-451",
      "excerpt": "We granted certiorari to consider whether Chevron should be overruled.",
      "judges": "",
      "length_minutes": 217,
      "url": "https://www.courtlistener.com/audio/74221/loper-bright-enterprises-v-raimondo/"
    }
  ],
  "more_matches_than_shown": false,
  "result_count": 1,
  "total_matches": 1
}
```
