Skip to content
All data sources

CourtListener & RECAP API and MCP server

No authcourtlistener

U.S. court opinions and RECAP dockets, including bankruptcy-party screening and foreclosure or other real-property nature-of-suit filters. Anonymous access is supported; a free CourtListener API token is optional and raises applicable provider rate limits. RECAP is not complete PACER coverage.

CourtListener & RECAP is published by CourtListener and the RECAP Archive and covers United States.

Calls reach the publisher at request time, so an answer reflects the record as it stood then.

Last verified . That is when these facts were last rebuilt from the ParcelOps source registry, not when CourtListener and the RECAP Archive last refreshed the data itself.

API access

Your AI client reaches CourtListener & RECAP through one ParcelOps MCP endpoint, so there is no separate key to hold for it and no per-source client to write. Reaching it takes no credentials of your own.

Where it came from

Freshness and coverage

FreshnessLive · Envelope source.retrievedAt records the upstream retrieval time; ParcelOps caches searches for up to 1 hour and directory or disclosure lists for up to 24 hours.
Places coveredUnited States
Time coveredNot declared
CredentialsNo credentials required

What this source cannot tell you

  • Anything outside United States. A request past that edge comes back empty rather than approximated.
  • Which years it spans, because the covered period is not declared.
  • Anything CourtListener and the RECAP Archive does not publish. ParcelOps returns this source as it stands and never fills a blank field from a different one.
  • RECAP is a contributed archive and is not a complete PACER substitute.
  • A bankruptcy name result is a potential party match until identity is verified.
  • Judge-name results require identity verification.
  • An absent CourtListener financial-disclosure record is not proof that no disclosure exists.

Methods (7)

A method is one call your agent can make against this source.

  • searchBankruptcyDockets

    read

    Screen bankruptcy dockets by party, court, and earliest filing date.

    What you must providepartyName
    Records returnedbankruptcy-docket
    How to get more resultscursor (cursorField: cursor)
    FreshnessLive
    Input schema
    {
      "type": "object",
      "properties": {
        "partyName": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "courtIds": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 2,
            "maxLength": 20,
            "pattern": "^[A-Za-z0-9]+$"
          },
          "maxItems": 50
        },
        "dateFiledAfter": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "cursor": {
          "type": "string",
          "maxLength": 2048
        }
      },
      "required": [
        "partyName"
      ],
      "additionalProperties": false
    }
    Output schema
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "kind",
        "schemaVersion",
        "dataset",
        "query",
        "summary",
        "records",
        "pagination",
        "source",
        "export",
        "privacy",
        "caveats"
      ],
      "properties": {
        "kind": {
          "const": "parcelops.public-data"
        },
        "schemaVersion": {
          "const": "1.0"
        },
        "dataset": {
          "type": "object",
          "required": [
            "connector",
            "method",
            "name",
            "jurisdiction"
          ],
          "properties": {
            "connector": {
              "const": "courtlistener"
            },
            "method": {
              "enum": [
                "searchBankruptcyDockets",
                "searchDockets",
                "searchOpinions",
                "searchJudges",
                "listCourts",
                "listFinancialDisclosures"
              ]
            },
            "name": {
              "type": "string"
            },
            "jurisdiction": {
              "const": "United States"
            }
          }
        },
        "query": {
          "type": "object"
        },
        "summary": {
          "type": "object",
          "required": [
            "matchedRecords",
            "returnedRecords",
            "truncated"
          ],
          "properties": {
            "matchedRecords": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            },
            "returnedRecords": {
              "type": "integer",
              "minimum": 0
            },
            "truncated": {
              "type": "boolean"
            }
          }
        },
        "records": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "pagination": {
          "type": [
            "object",
            "null"
          ]
        },
        "source": {
          "type": "object",
          "required": [
            "name",
            "url",
            "retrievedAt"
          ],
          "properties": {
            "name": {
              "const": "CourtListener and the RECAP Archive"
            },
            "url": {
              "type": "string",
              "format": "uri"
            },
            "documentationUrl": {
              "type": "string",
              "format": "uri"
            },
            "attribution": {
              "const": "Free Law Project"
            },
            "retrievedAt": {
              "type": "string"
            }
          }
        },
        "export": {
          "type": "object"
        },
        "privacy": {
          "type": "object"
        },
        "caveats": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    }
    • A name hit is a potential party match, not proof that the audited entity filed bankruptcy.

    Name results are potential matches; RECAP is not complete PACER coverage.

  • searchDockets

    read

    Search federal RECAP dockets by query, court, date, or nature of suit (for example, foreclosure).

    Records returnedfederal-docket
    How to get more resultscursor (cursorField: cursor)
    FreshnessLive
    Input schema
    {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "minLength": 1,
          "maxLength": 300
        },
        "court": {
          "type": "string",
          "minLength": 2,
          "maxLength": 20,
          "pattern": "^[A-Za-z0-9]+$"
        },
        "dateFiledAfter": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "dateFiledBefore": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "date_filed_after": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "date_filed_before": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "cursor": {
          "type": "string",
          "maxLength": 2048
        },
        "natureOfSuit": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 80
            },
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 999
            }
          ]
        },
        "nature_of_suit": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 80
            },
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 999
            }
          ]
        }
      },
      "required": [],
      "additionalProperties": false
    }
    Output schema
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "kind",
        "schemaVersion",
        "dataset",
        "query",
        "summary",
        "records",
        "pagination",
        "source",
        "export",
        "privacy",
        "caveats"
      ],
      "properties": {
        "kind": {
          "const": "parcelops.public-data"
        },
        "schemaVersion": {
          "const": "1.0"
        },
        "dataset": {
          "type": "object",
          "required": [
            "connector",
            "method",
            "name",
            "jurisdiction"
          ],
          "properties": {
            "connector": {
              "const": "courtlistener"
            },
            "method": {
              "enum": [
                "searchBankruptcyDockets",
                "searchDockets",
                "searchOpinions",
                "searchJudges",
                "listCourts",
                "listFinancialDisclosures"
              ]
            },
            "name": {
              "type": "string"
            },
            "jurisdiction": {
              "const": "United States"
            }
          }
        },
        "query": {
          "type": "object"
        },
        "summary": {
          "type": "object",
          "required": [
            "matchedRecords",
            "returnedRecords",
            "truncated"
          ],
          "properties": {
            "matchedRecords": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            },
            "returnedRecords": {
              "type": "integer",
              "minimum": 0
            },
            "truncated": {
              "type": "boolean"
            }
          }
        },
        "records": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "pagination": {
          "type": [
            "object",
            "null"
          ]
        },
        "source": {
          "type": "object",
          "required": [
            "name",
            "url",
            "retrievedAt"
          ],
          "properties": {
            "name": {
              "const": "CourtListener and the RECAP Archive"
            },
            "url": {
              "type": "string",
              "format": "uri"
            },
            "documentationUrl": {
              "type": "string",
              "format": "uri"
            },
            "attribution": {
              "const": "Free Law Project"
            },
            "retrievedAt": {
              "type": "string"
            }
          }
        },
        "export": {
          "type": "object"
        },
        "privacy": {
          "type": "object"
        },
        "caveats": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    }
    • Nature-of-suit filters reflect court coding and can omit cases with malformed or missing codes.
  • searchOpinions

    read

    Search U.S. judicial opinions by query, court, or filing date.

    Records returnedjudicial-opinion
    How to get more resultscursor (cursorField: cursor)
    FreshnessLive
    Input schema
    {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "minLength": 1,
          "maxLength": 300
        },
        "court": {
          "type": "string",
          "minLength": 2,
          "maxLength": 20,
          "pattern": "^[A-Za-z0-9]+$"
        },
        "dateFiledAfter": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "dateFiledBefore": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "date_filed_after": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "date_filed_before": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "cursor": {
          "type": "string",
          "maxLength": 2048
        }
      },
      "required": [],
      "additionalProperties": false
    }
    Output schema
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "kind",
        "schemaVersion",
        "dataset",
        "query",
        "summary",
        "records",
        "pagination",
        "source",
        "export",
        "privacy",
        "caveats"
      ],
      "properties": {
        "kind": {
          "const": "parcelops.public-data"
        },
        "schemaVersion": {
          "const": "1.0"
        },
        "dataset": {
          "type": "object",
          "required": [
            "connector",
            "method",
            "name",
            "jurisdiction"
          ],
          "properties": {
            "connector": {
              "const": "courtlistener"
            },
            "method": {
              "enum": [
                "searchBankruptcyDockets",
                "searchDockets",
                "searchOpinions",
                "searchJudges",
                "listCourts",
                "listFinancialDisclosures"
              ]
            },
            "name": {
              "type": "string"
            },
            "jurisdiction": {
              "const": "United States"
            }
          }
        },
        "query": {
          "type": "object"
        },
        "summary": {
          "type": "object",
          "required": [
            "matchedRecords",
            "returnedRecords",
            "truncated"
          ],
          "properties": {
            "matchedRecords": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            },
            "returnedRecords": {
              "type": "integer",
              "minimum": 0
            },
            "truncated": {
              "type": "boolean"
            }
          }
        },
        "records": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "pagination": {
          "type": [
            "object",
            "null"
          ]
        },
        "source": {
          "type": "object",
          "required": [
            "name",
            "url",
            "retrievedAt"
          ],
          "properties": {
            "name": {
              "const": "CourtListener and the RECAP Archive"
            },
            "url": {
              "type": "string",
              "format": "uri"
            },
            "documentationUrl": {
              "type": "string",
              "format": "uri"
            },
            "attribution": {
              "const": "Free Law Project"
            },
            "retrievedAt": {
              "type": "string"
            }
          }
        },
        "export": {
          "type": "object"
        },
        "privacy": {
          "type": "object"
        },
        "caveats": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    }
  • searchJudges

    read

    Search CourtListener people records for judges by a bounded query.

    What you must provideq
    Records returnedjudicial-person
    How to get more resultscursor (cursorField: cursor)
    FreshnessLive
    Input schema
    {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "minLength": 1,
          "maxLength": 300
        },
        "cursor": {
          "type": "string",
          "maxLength": 2048
        }
      },
      "required": [
        "q"
      ],
      "additionalProperties": false
    }
    Output schema
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "kind",
        "schemaVersion",
        "dataset",
        "query",
        "summary",
        "records",
        "pagination",
        "source",
        "export",
        "privacy",
        "caveats"
      ],
      "properties": {
        "kind": {
          "const": "parcelops.public-data"
        },
        "schemaVersion": {
          "const": "1.0"
        },
        "dataset": {
          "type": "object",
          "required": [
            "connector",
            "method",
            "name",
            "jurisdiction"
          ],
          "properties": {
            "connector": {
              "const": "courtlistener"
            },
            "method": {
              "enum": [
                "searchBankruptcyDockets",
                "searchDockets",
                "searchOpinions",
                "searchJudges",
                "listCourts",
                "listFinancialDisclosures"
              ]
            },
            "name": {
              "type": "string"
            },
            "jurisdiction": {
              "const": "United States"
            }
          }
        },
        "query": {
          "type": "object"
        },
        "summary": {
          "type": "object",
          "required": [
            "matchedRecords",
            "returnedRecords",
            "truncated"
          ],
          "properties": {
            "matchedRecords": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            },
            "returnedRecords": {
              "type": "integer",
              "minimum": 0
            },
            "truncated": {
              "type": "boolean"
            }
          }
        },
        "records": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "pagination": {
          "type": [
            "object",
            "null"
          ]
        },
        "source": {
          "type": "object",
          "required": [
            "name",
            "url",
            "retrievedAt"
          ],
          "properties": {
            "name": {
              "const": "CourtListener and the RECAP Archive"
            },
            "url": {
              "type": "string",
              "format": "uri"
            },
            "documentationUrl": {
              "type": "string",
              "format": "uri"
            },
            "attribution": {
              "const": "Free Law Project"
            },
            "retrievedAt": {
              "type": "string"
            }
          }
        },
        "export": {
          "type": "object"
        },
        "privacy": {
          "type": "object"
        },
        "caveats": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    }
    • A name result is a possible person match; verify identity before relying on it.
  • listCourts

    read

    List courts with their jurisdiction, dates, and source identifiers.

    Records returnedcourt
    How to get more resultscursor (cursorField: cursor)
    FreshnessLive
    Input schema
    {
      "type": "object",
      "properties": {
        "cursor": {
          "type": "string",
          "maxLength": 2048
        }
      },
      "required": [],
      "additionalProperties": false
    }
    Output schema
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "kind",
        "schemaVersion",
        "dataset",
        "query",
        "summary",
        "records",
        "pagination",
        "source",
        "export",
        "privacy",
        "caveats"
      ],
      "properties": {
        "kind": {
          "const": "parcelops.public-data"
        },
        "schemaVersion": {
          "const": "1.0"
        },
        "dataset": {
          "type": "object",
          "required": [
            "connector",
            "method",
            "name",
            "jurisdiction"
          ],
          "properties": {
            "connector": {
              "const": "courtlistener"
            },
            "method": {
              "enum": [
                "searchBankruptcyDockets",
                "searchDockets",
                "searchOpinions",
                "searchJudges",
                "listCourts",
                "listFinancialDisclosures"
              ]
            },
            "name": {
              "type": "string"
            },
            "jurisdiction": {
              "const": "United States"
            }
          }
        },
        "query": {
          "type": "object"
        },
        "summary": {
          "type": "object",
          "required": [
            "matchedRecords",
            "returnedRecords",
            "truncated"
          ],
          "properties": {
            "matchedRecords": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            },
            "returnedRecords": {
              "type": "integer",
              "minimum": 0
            },
            "truncated": {
              "type": "boolean"
            }
          }
        },
        "records": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "pagination": {
          "type": [
            "object",
            "null"
          ]
        },
        "source": {
          "type": "object",
          "required": [
            "name",
            "url",
            "retrievedAt"
          ],
          "properties": {
            "name": {
              "const": "CourtListener and the RECAP Archive"
            },
            "url": {
              "type": "string",
              "format": "uri"
            },
            "documentationUrl": {
              "type": "string",
              "format": "uri"
            },
            "attribution": {
              "const": "Free Law Project"
            },
            "retrievedAt": {
              "type": "string"
            }
          }
        },
        "export": {
          "type": "object"
        },
        "privacy": {
          "type": "object"
        },
        "caveats": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    }
  • listFinancialDisclosures

    read

    List judicial financial-disclosure records with bounded pagination.

    Records returnedjudicial-financial-disclosure
    How to get more resultscursor (cursorField: cursor)
    FreshnessLive
    Input schema
    {
      "type": "object",
      "properties": {
        "cursor": {
          "type": "string",
          "maxLength": 2048
        }
      },
      "required": [],
      "additionalProperties": false
    }
    Output schema
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "kind",
        "schemaVersion",
        "dataset",
        "query",
        "summary",
        "records",
        "pagination",
        "source",
        "export",
        "privacy",
        "caveats"
      ],
      "properties": {
        "kind": {
          "const": "parcelops.public-data"
        },
        "schemaVersion": {
          "const": "1.0"
        },
        "dataset": {
          "type": "object",
          "required": [
            "connector",
            "method",
            "name",
            "jurisdiction"
          ],
          "properties": {
            "connector": {
              "const": "courtlistener"
            },
            "method": {
              "enum": [
                "searchBankruptcyDockets",
                "searchDockets",
                "searchOpinions",
                "searchJudges",
                "listCourts",
                "listFinancialDisclosures"
              ]
            },
            "name": {
              "type": "string"
            },
            "jurisdiction": {
              "const": "United States"
            }
          }
        },
        "query": {
          "type": "object"
        },
        "summary": {
          "type": "object",
          "required": [
            "matchedRecords",
            "returnedRecords",
            "truncated"
          ],
          "properties": {
            "matchedRecords": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            },
            "returnedRecords": {
              "type": "integer",
              "minimum": 0
            },
            "truncated": {
              "type": "boolean"
            }
          }
        },
        "records": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "pagination": {
          "type": [
            "object",
            "null"
          ]
        },
        "source": {
          "type": "object",
          "required": [
            "name",
            "url",
            "retrievedAt"
          ],
          "properties": {
            "name": {
              "const": "CourtListener and the RECAP Archive"
            },
            "url": {
              "type": "string",
              "format": "uri"
            },
            "documentationUrl": {
              "type": "string",
              "format": "uri"
            },
            "attribution": {
              "const": "Free Law Project"
            },
            "retrievedAt": {
              "type": "string"
            }
          }
        },
        "export": {
          "type": "object"
        },
        "privacy": {
          "type": "object"
        },
        "caveats": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    }
    • An absent CourtListener record is not proof that no judicial financial disclosure exists.
  • getServiceInfo

    read

    Describe token auth, rate limits, pagination, coverage, and caveats.

    FreshnessLive (source-level)
    Input schema
    {
      "type": "object",
      "properties": {},
      "required": [],
      "additionalProperties": false
    }

Where this source is used