MCP for CourtListener: US federal and state opinions, dockets, judges, plus eCFR regulations.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Your free CourtListener API token from https://www.courtlistener.com/help/api/rest/. The server never stores your key.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Look up multiple legal citations in a single request. This is more efficient than making individual requests for each citation. Accepts up to 100 citations at once.
List of citations to look up (max 100)
Look up multiple legal citations in a single request. This is more efficient than making individual requests for each citation. Accepts up to 100 citations at once.
| Argument | Type | Description |
|---|---|---|
| citations* | array | List of citations to look up (max 100) |
{
"type": "object",
"required": [
"citations"
],
"properties": {
"citations": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100,
"minItems": 1,
"description": "List of citations to look up (max 100)"
}
},
"additionalProperties": false
}Enhanced citation lookup combining citeurl parsing with CourtListener data. This tool first uses citeurl to parse and validate the citation format, then optionally queries the CourtListener API for additional case information.
| Argument | Type | Description |
|---|---|---|
| citation* | string | The citation to look up and analyze |
| include_courtlistener | boolean | Whether to also perform CourtListener API lookup |
{
"type": "object",
"required": [
"citation"
],
"properties": {
"citation": {
"type": "string",
"description": "The citation to look up and analyze"
},
"include_courtlistener": {
"type": "boolean",
"default": true,
"description": "Whether to also perform CourtListener API lookup"
}
},
"additionalProperties": false
}Extract all legal citations from a block of text using citeurl. This tool finds and parses all legal citations within a given text, including both long-form and short-form citations (like 'id.' references).
| Argument | Type | Description |
|---|---|---|
| text* | string | Text containing legal citations to extract |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "Text containing legal citations to extract"
}
},
"additionalProperties": false
}Look up a legal citation to find the opinion it references in CourtListener. This tool accepts various citation formats including: - U.S. Reporter citations (e.g., "410 U.S. 113") - Federal Reporter citations (e.g., "123 F.3d 456") - WestLaw citations (e.g., "2023 WL 12345") - State reporter citations
| Argument | Type | Description |
|---|---|---|
| citation* | string | The citation to look up (e.g., '410 U.S. 113', '2023 WL 12345') |
{
"type": "object",
"required": [
"citation"
],
"properties": {
"citation": {
"type": "string",
"description": "The citation to look up (e.g., '410 U.S. 113', '2023 WL 12345')"
}
},
"additionalProperties": false
}Parse a legal citation using citeurl's advanced citation recognition. This tool uses the citeurl library to parse legal citations and extract structured information including tokens, normalized format, and URL generation. Returns detailed information about the citation including: - Recognized citation format and source - Extracted tokens (volume, reporter, page, etc.) - Generated URL if available - Normalized citation text
| Argument | Type | Description |
|---|---|---|
| broad | boolean | Use broad matching for more flexible parsing |
| citation* | string | The citation to parse (e.g., '410 U.S. 113', '42 USC § 1988') |
{
"type": "object",
"required": [
"citation"
],
"properties": {
"broad": {
"type": "boolean",
"default": true,
"description": "Use broad matching for more flexible parsing"
},
"citation": {
"type": "string",
"description": "The citation to parse (e.g., '410 U.S. 113', '42 USC § 1988')"
}
},
"additionalProperties": false
}Verify if a citation string is in a valid format using citeurl's advanced parsing. This tool performs validation using citeurl's comprehensive citation templates to check if a citation appears to be in a recognized legal citation format. This is much more accurate than simple regex matching. Returns information about the citation format and any detected issues.
| Argument | Type | Description |
|---|---|---|
| citation* | string | The citation to verify |
{
"type": "object",
"required": [
"citation"
],
"properties": {
"citation": {
"type": "string",
"description": "The citation to verify"
}
},
"additionalProperties": false
}Get the ancestry chain (title -> ... -> node) for a CFR node on a date.
| Argument | Type | Description |
|---|---|---|
| date* | string | Snapshot date (YYYY-MM-DD) |
| part | any | Restrict to a part, e.g. '75' |
| title* | integer | CFR title number (1-50) |
| section | any | Restrict to a section, e.g. '75.1' |
{
"type": "object",
"required": [
"title",
"date"
],
"properties": {
"date": {
"type": "string",
"description": "Snapshot date (YYYY-MM-DD)"
},
"part": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Restrict to a part, e.g. '75'"
},
"title": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "CFR title number (1-50)"
},
"section": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Restrict to a section, e.g. '75.1'"
}
},
"additionalProperties": false
}Get search result counts broken down by date (daily histogram).
| Argument | Type | Description |
|---|---|---|
| date | any | As-of date (YYYY-MM-DD) |
| query* | string | Full-text search query over the CFR |
{
"type": "object",
"required": [
"query"
],
"properties": {
"date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "As-of date (YYYY-MM-DD)"
},
"query": {
"type": "string",
"description": "Full-text search query over the CFR"
}
},
"additionalProperties": false
}Get search result counts distributed across the CFR hierarchy.
| Argument | Type | Description |
|---|---|---|
| date | any | As-of date (YYYY-MM-DD) |
| query* | string | Full-text search query over the CFR |
{
"type": "object",
"required": [
"query"
],
"properties": {
"date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "As-of date (YYYY-MM-DD)"
},
"query": {
"type": "string",
"description": "Full-text search query over the CFR"
}
},
"additionalProperties": false
}Get the total number of CFR sections matching a search query.
| Argument | Type | Description |
|---|---|---|
| date | any | As-of date (YYYY-MM-DD) |
| query* | string | Full-text search query over the CFR |
| title | any | Restrict to a title |
| agency_slugs | any | Restrict to agency slugs |
{
"type": "object",
"required": [
"query"
],
"properties": {
"date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "As-of date (YYYY-MM-DD)"
},
"query": {
"type": "string",
"description": "Full-text search query over the CFR"
},
"title": {
"anyOf": [
{
"type": "integer",
"maximum": 50,
"minimum": 1
},
{
"type": "null"
}
],
"default": null,
"description": "Restrict to a title"
},
"agency_slugs": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"default": null,
"description": "Restrict to agency slugs"
}
},
"additionalProperties": false
}Get search-term suggestions for a partial CFR query.
| Argument | Type | Description |
|---|---|---|
| query* | string | Partial query to get suggestions for |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Partial query to get suggestions for"
}
},
"additionalProperties": false
}Get summary details (counts + metadata) for a CFR search query.
| Argument | Type | Description |
|---|---|---|
| date | any | As-of date (YYYY-MM-DD) |
| query* | string | Full-text search query over the CFR |
| title | any | Restrict to a title |
| agency_slugs | any | Restrict to agency slugs |
{
"type": "object",
"required": [
"query"
],
"properties": {
"date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "As-of date (YYYY-MM-DD)"
},
"query": {
"type": "string",
"description": "Full-text search query over the CFR"
},
"title": {
"anyOf": [
{
"type": "integer",
"maximum": 50,
"minimum": 1
},
{
"type": "null"
}
],
"default": null,
"description": "Restrict to a title"
},
"agency_slugs": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"default": null,
"description": "Restrict to agency slugs"
}
},
"additionalProperties": false
}Fetch the source regulation TEXT (XML) for a CFR node on a snapshot date. Pass a part or section to scope the request. Fetching an entire large title at once can time out on the eCFR side, so narrowing is strongly recommended. Returns the raw XML under ``content_xml``.
| Argument | Type | Description |
|---|---|---|
| date* | string | Snapshot date (YYYY-MM-DD) |
| part | any | Part to fetch, e.g. '75'. STRONGLY recommended: whole-title fetches can time out. |
| title* | integer | CFR title number (1-50) |
| chapter | any | Chapter, e.g. 'I' |
| section | any | Section, e.g. '75.1' |
| subpart | any | Subpart, e.g. 'C' |
| appendix | any | Appendix identifier |
| subtitle | any | Subtitle, e.g. 'A' |
| subchapter | any | Subchapter, e.g. 'B' |
Get search result counts broken down by CFR title.
| Argument | Type | Description |
|---|---|---|
| date | any | As-of date (YYYY-MM-DD) |
| query* | string | Full-text search query over the CFR |
{
"type": "object",
"required": [
"query"
],
"properties": {
"date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "As-of date (YYYY-MM-DD)"
},
"query": {
"type": "string",
"description": "Full-text search query over the CFR"
}
},
"additionalProperties": false
}Get the full hierarchical structure (title -> section) of a CFR title on a date.
| Argument | Type | Description |
|---|---|---|
| date* | string | Snapshot date (YYYY-MM-DD) |
| title* | integer | CFR title number (1-50) |
{
"type": "object",
"required": [
"title",
"date"
],
"properties": {
"date": {
"type": "string",
"description": "Snapshot date (YYYY-MM-DD)"
},
"title": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "CFR title number (1-50)"
}
},
"additionalProperties": false
}List the available content versions (issue dates) for one CFR title.
| Argument | Type | Description |
|---|---|---|
| title* | integer | CFR title number (1-50) |
{
"type": "object",
"required": [
"title"
],
"properties": {
"title": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "CFR title number (1-50)"
}
},
"additionalProperties": false
}List all agencies that appear in the CFR, with their title/chapter references.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List CFR corrections, optionally filtered by title and/or effective date.
| Argument | Type | Description |
|---|---|---|
| date | any | Corrections in effect on this date (YYYY-MM-DD) |
| title | any | Restrict to a CFR title number |
{
"type": "object",
"properties": {
"date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Corrections in effect on this date (YYYY-MM-DD)"
},
"title": {
"anyOf": [
{
"type": "integer",
"maximum": 50,
"minimum": 1
},
{
"type": "null"
}
],
"default": null,
"description": "Restrict to a CFR title number"
}
},
"additionalProperties": false
}List all corrections for a single CFR title.
| Argument | Type | Description |
|---|---|---|
| title* | integer | CFR title number (1-50) |
{
"type": "object",
"required": [
"title"
],
"properties": {
"title": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "CFR title number (1-50)"
}
},
"additionalProperties": false
}List all 50 CFR titles with their latest amended/issue dates and status.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Full-text search over federal regulations, returning matching sections with hierarchy.
| Argument | Type | Description |
|---|---|---|
| date | any | Search the CFR as of this date (YYYY-MM-DD) |
| page | integer | Page number |
| order | any | Sort order: 'relevance', 'hierarchy', 'newest_first', 'oldest_first' |
| query* | string | Full-text search query over the CFR |
| title | any | Restrict to a CFR title number |
| per_page | integer | Results per page (max 20) |
| agency_slugs | any | Restrict to one or more agency slugs (from list_agencies) |
{
"type": "object",
"required": [
"query"
],
"properties": {
"date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Search the CFR as of this date (YYYY-MM-DD)"
},
"page": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Page number"
},
"order": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Sort order: 'relevance', 'hierarchy', 'newest_first', 'oldest_first'"
},
"query": {
"type": "string",
"description": "Full-text search query over the CFR"
},
"title": {
"anyOf": [
{
"type": "integer",
"maximum": 50,
"minimum": 1
},
{
"type": "null"
}
],
"default": null,
"description": "Restrict to a CFR title number"
},
"per_page": {
"type": "integer",
"default": 20,
"maximum": 20,
"minimum": 1,
"description": "Results per page (max 20)"
},
"agency_slugs": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"default": null,
"description": "Restrict to one or more agency slugs (from list_agencies)"
}
},
"additionalProperties": false
}Get oral argument audio information by ID from CourtListener.
| Argument | Type | Description |
|---|---|---|
| audio_id* | string | The audio recording ID to retrieve |
{
"type": "object",
"required": [
"audio_id"
],
"properties": {
"audio_id": {
"type": "string",
"description": "The audio recording ID to retrieve"
}
},
"additionalProperties": false
}Get an opinion cluster by ID from CourtListener.
| Argument | Type | Description |
|---|---|---|
| cluster_id* | string | The opinion cluster ID to retrieve |
{
"type": "object",
"required": [
"cluster_id"
],
"properties": {
"cluster_id": {
"type": "string",
"description": "The opinion cluster ID to retrieve"
}
},
"additionalProperties": false
}Get court information by ID from CourtListener.
| Argument | Type | Description |
|---|---|---|
| court_id* | string | The court ID to retrieve (e.g., 'scotus', 'ca9') |
{
"type": "object",
"required": [
"court_id"
],
"properties": {
"court_id": {
"type": "string",
"description": "The court ID to retrieve (e.g., 'scotus', 'ca9')"
}
},
"additionalProperties": false
}Get a specific court docket by ID from CourtListener.
| Argument | Type | Description |
|---|---|---|
| docket_id* | string | The docket ID to retrieve |
{
"type": "object",
"required": [
"docket_id"
],
"properties": {
"docket_id": {
"type": "string",
"description": "The docket ID to retrieve"
}
},
"additionalProperties": false
}Get a specific court opinion by ID from CourtListener.
| Argument | Type | Description |
|---|---|---|
| opinion_id* | string | The opinion ID to retrieve |
{
"type": "object",
"required": [
"opinion_id"
],
"properties": {
"opinion_id": {
"type": "string",
"description": "The opinion ID to retrieve"
}
},
"additionalProperties": false
}Get judge or legal professional information by ID from CourtListener.
| Argument | Type | Description |
|---|---|---|
| person_id* | string | The person (judge) ID to retrieve |
{
"type": "object",
"required": [
"person_id"
],
"properties": {
"person_id": {
"type": "string",
"description": "The person (judge) ID to retrieve"
}
},
"additionalProperties": false
}Search oral argument audio recordings in CourtListener.
| Argument | Type | Description |
|---|---|---|
| q* | string | Search query for oral argument audio |
| court | any | Court ID filter (e.g., 'scotus', 'ca9') |
| judge | any | Filter by judge name |
| limit | integer | Max results from this page (upper bound; CL pages ~20) |
| cursor | any | Pagination cursor from a prior response's next_cursor |
| order_by | string | Sort by 'score desc', 'dateArgued desc', or 'dateArgued asc' |
| case_name | any | Filter by case name |
| argued_after | any | Filter arguments after this date (YYYY-MM-DD) |
| argued_before | any | Filter arguments before this date (YYYY-MM-DD) |
Search federal cases (dockets) from PACER in CourtListener.
| Argument | Type | Description |
|---|---|---|
| q* | string | Search query for docket text |
| court | any | Court ID filter (e.g., 'scotus', 'ca9') |
| limit | integer | Max results from this page (upper bound; CL pages ~20) |
| cursor | any | Pagination cursor from a prior response's next_cursor |
| order_by | string | Sort by 'score desc', 'dateFiled desc', or 'dateFiled asc' |
| case_name | any | Filter by case name |
| party_name | any | Filter by party name |
| docket_number | any | Specific docket number to search for |
| date_filed_after | any | Filter dockets filed after this date (YYYY-MM-DD) |
| date_filed_before |
Search federal cases (dockets) with up to three nested documents. If there are more than three matching documents, the more_docs field will be true.
| Argument | Type | Description |
|---|---|---|
| q* | string | Search query for federal cases |
| court | any | Court ID filter (e.g., 'scotus', 'ca9') |
| limit | integer | Max results from this page (upper bound; CL pages ~20) |
| cursor | any | Pagination cursor from a prior response's next_cursor |
| order_by | string | Sort by 'score desc', 'dateFiled desc', or 'dateFiled asc' |
| case_name | any | Filter by case name |
| party_name | any | Filter by party name |
| docket_number | any | Specific docket number to search for |
| date_filed_after | any | Filter dockets filed after this date (YYYY-MM-DD) |
Search case law opinion clusters with nested Opinion documents in CourtListener.
| Argument | Type | Description |
|---|---|---|
| q* | string | Search query for full text of opinions |
| court | any | Court ID filter (e.g., 'scotus', 'ca9') |
| judge | any | Filter by judge name |
| limit | integer | Max results from this page (upper bound; CL pages ~20) |
| cursor | any | Pagination cursor from a prior response's next_cursor |
| cited_gt | any | Minimum number of times opinion has been cited |
| cited_lt | any | Maximum number of times opinion has been cited |
| order_by | string | Sort by 'score desc', 'dateFiled desc', or 'dateFiled asc' |
| case_name | any | Filter by case name |
| filed_after |
Search judges and legal professionals in the CourtListener database.
| Argument | Type | Description |
|---|---|---|
| q* | string | Search query for judges and legal professionals |
| name | any | Filter by person's name |
| limit | integer | Max results from this page (upper bound; CL pages ~20) |
| cursor | any | Pagination cursor from a prior response's next_cursor |
| school | any | Filter by school attended |
| order_by | string | Sort by 'score desc' or 'name asc' |
| appointed_by | any | Filter by appointing authority |
| position_type | any | Filter by position type (e.g., 'jud' for judge) |
| selection_method | any | Filter by selection method |
| political_affiliation |
Search federal filing documents from PACER in the RECAP archive.
| Argument | Type | Description |
|---|---|---|
| q* | string | Search query for RECAP filing documents |
| court | any | Court ID filter (e.g., 'scotus', 'ca9') |
| limit | integer | Max results from this page (upper bound; CL pages ~20) |
| cursor | any | Pagination cursor from a prior response's next_cursor |
| order_by | string | Sort by 'score desc', 'dateFiled desc', or 'dateFiled asc' |
| case_name | any | Filter by case name |
| party_name | any | Filter by party name |
| filed_after | any | Filter documents filed after this date (YYYY-MM-DD) |
| filed_before | any | Filter documents filed before this date (YYYY-MM-DD) |
| docket_number |
Check the status of the CourtListener MCP server. Returns: A dictionary containing server status, system metrics, and service information.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}{
"type": "object",
"required": [
"title",
"date"
],
"properties": {
"date": {
"type": "string",
"description": "Snapshot date (YYYY-MM-DD)"
},
"part": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Part to fetch, e.g. '75'. STRONGLY recommended: whole-title fetches can time out."
},
"title": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "CFR title number (1-50)"
},
"chapter": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Chapter, e.g. 'I'"
},
"section": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Section, e.g. '75.1'"
},
"subpart": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Subpart, e.g. 'C'"
},
"appendix": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Appendix identifier"
},
"subtitle": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Subtitle, e.g. 'A'"
},
"subchapter": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Subchapter, e.g. 'B'"
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"description": "Search query for oral argument audio"
},
"court": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Court ID filter (e.g., 'scotus', 'ca9')"
},
"judge": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by judge name"
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Max results from this page (upper bound; CL pages ~20)"
},
"cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Pagination cursor from a prior response's next_cursor"
},
"order_by": {
"type": "string",
"default": "score desc",
"description": "Sort by 'score desc', 'dateArgued desc', or 'dateArgued asc'"
},
"case_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by case name"
},
"argued_after": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter arguments after this date (YYYY-MM-DD)"
},
"argued_before": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter arguments before this date (YYYY-MM-DD)"
}
},
"additionalProperties": false
}| any |
| Filter dockets filed before this date (YYYY-MM-DD) |
{
"type": "object",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"description": "Search query for docket text"
},
"court": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Court ID filter (e.g., 'scotus', 'ca9')"
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Max results from this page (upper bound; CL pages ~20)"
},
"cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Pagination cursor from a prior response's next_cursor"
},
"order_by": {
"type": "string",
"default": "score desc",
"description": "Sort by 'score desc', 'dateFiled desc', or 'dateFiled asc'"
},
"case_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by case name"
},
"party_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by party name"
},
"docket_number": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Specific docket number to search for"
},
"date_filed_after": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter dockets filed after this date (YYYY-MM-DD)"
},
"date_filed_before": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter dockets filed before this date (YYYY-MM-DD)"
}
},
"additionalProperties": false
}| date_filed_before | any | Filter dockets filed before this date (YYYY-MM-DD) |
{
"type": "object",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"description": "Search query for federal cases"
},
"court": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Court ID filter (e.g., 'scotus', 'ca9')"
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Max results from this page (upper bound; CL pages ~20)"
},
"cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Pagination cursor from a prior response's next_cursor"
},
"order_by": {
"type": "string",
"default": "score desc",
"description": "Sort by 'score desc', 'dateFiled desc', or 'dateFiled asc'"
},
"case_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by case name"
},
"party_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by party name"
},
"docket_number": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Specific docket number to search for"
},
"date_filed_after": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter dockets filed after this date (YYYY-MM-DD)"
},
"date_filed_before": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter dockets filed before this date (YYYY-MM-DD)"
}
},
"additionalProperties": false
}| any |
| Only show opinions filed after this date (YYYY-MM-DD) |
| filed_before | any | Only show opinions filed before this date (YYYY-MM-DD) |
{
"type": "object",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"description": "Search query for full text of opinions"
},
"court": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Court ID filter (e.g., 'scotus', 'ca9')"
},
"judge": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by judge name"
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Max results from this page (upper bound; CL pages ~20)"
},
"cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Pagination cursor from a prior response's next_cursor"
},
"cited_gt": {
"anyOf": [
{
"type": "integer",
"minimum": 0
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum number of times opinion has been cited"
},
"cited_lt": {
"anyOf": [
{
"type": "integer",
"minimum": 0
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum number of times opinion has been cited"
},
"order_by": {
"type": "string",
"default": "score desc",
"description": "Sort by 'score desc', 'dateFiled desc', or 'dateFiled asc'"
},
"case_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by case name"
},
"filed_after": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Only show opinions filed after this date (YYYY-MM-DD)"
},
"filed_before": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Only show opinions filed before this date (YYYY-MM-DD)"
}
},
"additionalProperties": false
}| any |
| Filter by political affiliation |
{
"type": "object",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"description": "Search query for judges and legal professionals"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by person's name"
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Max results from this page (upper bound; CL pages ~20)"
},
"cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Pagination cursor from a prior response's next_cursor"
},
"school": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by school attended"
},
"order_by": {
"type": "string",
"default": "score desc",
"description": "Sort by 'score desc' or 'name asc'"
},
"appointed_by": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by appointing authority"
},
"position_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by position type (e.g., 'jud' for judge)"
},
"selection_method": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by selection method"
},
"political_affiliation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by political affiliation"
}
},
"additionalProperties": false
}| any |
| Specific docket number to search for |
| document_number | any | Specific document number to search for |
| attachment_number | any | Specific attachment number to search for |
{
"type": "object",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"description": "Search query for RECAP filing documents"
},
"court": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Court ID filter (e.g., 'scotus', 'ca9')"
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Max results from this page (upper bound; CL pages ~20)"
},
"cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Pagination cursor from a prior response's next_cursor"
},
"order_by": {
"type": "string",
"default": "score desc",
"description": "Sort by 'score desc', 'dateFiled desc', or 'dateFiled asc'"
},
"case_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by case name"
},
"party_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by party name"
},
"filed_after": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter documents filed after this date (YYYY-MM-DD)"
},
"filed_before": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter documents filed before this date (YYYY-MM-DD)"
},
"docket_number": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Specific docket number to search for"
},
"document_number": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Specific document number to search for"
},
"attachment_number": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Specific attachment number to search for"
}
},
"additionalProperties": false
}