{"openapi":"3.0.3","info":{"title":"Gnist Context — Court Listener","description":"U.S. court opinions, oral arguments, and judicial records.\n\n- **MCP endpoint:** `https://context.gnist.ai/mcp/court-listener/`\n- **Toolkit page:** `/toolkits/court-listener`\n- **Full API spec:** `/api/openapi.json`\n- **Get an API key:** `/signup`","version":"1.0.0","contact":{"name":"GnistAI","url":"https://gnist.ai"}},"servers":[{"url":"https://context.gnist.ai","description":"Production"}],"paths":{"/rest/court-listener/search_opinions":{"post":{"tags":["Legal"],"summary":"search_opinions","description":"Search US court opinions by keyword, phrase, or party name.\n\nSearches 60M+ published federal and state court opinions via CourtListener.\n\nArgs:\n    query: Search query — keyword, phrase, party name, or legal concept\n           (e.g. \"Apple Samsung patent\", \"qualified immunity\", \"securities fraud\").\n           Use quotes for exact phrase matching (e.g. '\"tortious interference\"').\n    court: Jurisdiction filter — CourtListener court code. Common values:\n           \"scotus\" (Supreme Court), \"ca9\" (9th Circuit), \"ca2\" (2nd Circuit),\n           \"cadc\" (DC Circuit), \"dcd\" (DC District), \"nysd\" (SDNY), \"cand\" (ND Cal).\n           If omitted, searches all federal and state courts.\n    date_from: Return only opinions filed on or after this date (YYYY-MM-DD).\n    date_to: Return only opinions filed on or before this date (YYYY-MM-DD).\n    limit: Maximum results to return (1–100, default 20).\n\nReturns:\n    List of matching opinion clusters with case name, court, date, citation, and text snippet.","operationId":"court_listener_search_opinions","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"query":{"description":"Search query — keyword, phrase, party name, or legal concept (e.g. \"Apple Samsung patent\", \"qualified immunity\", \"securities fraud\"). Use quotes for exact phrase matching (e.g. '\"tortious in...","type":"string"},"court":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Jurisdiction filter — CourtListener court code. Common values: \"scotus\" (Supreme Court), \"ca9\" (9th Circuit), \"ca2\" (2nd Circuit), \"cadc\" (DC Circuit), \"dcd\" (DC District), \"nysd\" (SDNY..."},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Return only opinions filed on or after this date (YYYY-MM-DD)."},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Return only opinions filed on or before this date (YYYY-MM-DD)."},"limit":{"default":20,"description":"Maximum results to return (1–100, default 20).","type":"integer"}},"required":["query"],"type":"object"}}}}}},"/rest/court-listener/get_opinion":{"post":{"tags":["Legal"],"summary":"get_opinion","description":"Retrieve full details for a court opinion cluster by ID.\n\nReturns the full opinion text, citation data, judge, and case metadata.\nUse cluster_id from search_opinions results.\n\nArgs:\n    cluster_id: CourtListener opinion cluster ID (from search_opinions results).\n\nReturns:\n    Full opinion record with case metadata and opinion text (capped at 2000 chars each).\n    Returns an error dict if the opinion is not found.","operationId":"court_listener_get_opinion","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"cluster_id":{"description":"CourtListener opinion cluster ID (from search_opinions results).","type":"integer"}},"required":["cluster_id"],"type":"object"}}}}}},"/rest/court-listener/search_dockets":{"post":{"tags":["Legal"],"summary":"search_dockets","description":"Search court dockets by party name to find litigation history.\n\nSearches PACER/RECAP dockets for cases where a named entity appears as a party.\nUseful for due diligence: mapping a company's full litigation history.\n\nArgs:\n    party_name: Party name to search for — company, person, or organization\n                (e.g. \"Theranos\", \"Elizabeth Holmes\", \"Meta Platforms\").\n                Exact phrase matching is applied automatically.\n    court: Jurisdiction filter — CourtListener court code (e.g. \"ca9\", \"nysd\").\n           If omitted, searches all courts.\n    year_from: Include only cases filed in this year or later.\n    year_to: Include only cases filed in this year or earlier.\n    limit: Maximum results to return (1–100, default 20).\n\nReturns:\n    List of matching dockets with case name, court, date, docket number, and cause.","operationId":"court_listener_search_dockets","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"party_name":{"description":"Party name to search for — company, person, or organization (e.g. \"Theranos\", \"Elizabeth Holmes\", \"Meta Platforms\"). Exact phrase matching is applied automatically.","type":"string"},"court":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Jurisdiction filter — CourtListener court code (e.g. \"ca9\", \"nysd\"). If omitted, searches all courts."},"year_from":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Include only cases filed in this year or later."},"year_to":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Include only cases filed in this year or earlier."},"limit":{"default":20,"description":"Maximum results to return (1–100, default 20).","type":"integer"}},"required":["party_name"],"type":"object"}}}}}},"/rest/court-listener/get_docket":{"post":{"tags":["Legal"],"summary":"get_docket","description":"Retrieve full details for a court docket by ID.\n\nReturns case metadata, parties (plaintiffs and defendants), and filing info.\nUse docket_id from search_dockets results.\n\nArgs:\n    docket_id: CourtListener docket ID (from search_dockets results).\n\nReturns:\n    Full docket record with parties, cause, nature of suit, and key dates.\n    Returns an error dict if the docket is not found.","operationId":"court_listener_get_docket","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"docket_id":{"description":"CourtListener docket ID (from search_dockets results).","type":"integer"}},"required":["docket_id"],"type":"object"}}}}}},"/rest/court-listener/get_citations":{"post":{"tags":["Legal"],"summary":"get_citations","description":"Retrieve the citation graph for a court opinion.\n\nReturns two lists:\n- cites: opinions that this opinion cites (precedents relied upon)\n- cited_by: opinions that later cite this opinion (subsequent authority)\n\nUse cluster_id from search_opinions results. Results are capped at 50 per direction.\n\nArgs:\n    cluster_id: CourtListener opinion cluster ID.\n\nReturns:\n    Citation graph with outbound (cites) and inbound (cited_by) opinion references.","operationId":"court_listener_get_citations","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"cluster_id":{"description":"CourtListener opinion cluster ID.","type":"integer"}},"required":["cluster_id"],"type":"object"}}}}}},"/rest/court-listener/report_feedback":{"post":{"tags":["Legal"],"summary":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","operationId":"court_listener_report_feedback","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"}}}}}}},"tags":[{"name":"Legal","description":"Data sources: Legal"}],"components":{"securitySchemes":{"ApiKeyHeader":{"type":"apiKey","in":"header","name":"gnist-api-key","description":"API key passed via request header."},"ApiKeyQuery":{"type":"apiKey","in":"query","name":"gnist_api_key","description":"API key passed via query parameter."}}}}