get_opinion

Pack: court-listener · Endpoint: https://gateway.pipeworx.io/court-listener/mcp

Get the FULL TEXT of a US court opinion by its CourtListener opinion ID (the opinion_id returned by search_opinions). Served from our hosted mirror of CourtListener bulk data — 8.3 million opinions, 71% state case law, no API key needed. Returns the opinion text, author, type, whether the text came from OCR of a scan, and the snapshot date it was mirrored at. Note the mirrored table carries no filing date — date_created is when CourtListener ingested the record, not when the court ruled. Opinions filed after the snapshot fall through to the live API.

Parameters

NameTypeRequiredDescription
idnumberyesCourtListener opinion ID (numeric)

Example call

Arguments

{
  "id": 12345678
}

curl

curl -X POST https://gateway.pipeworx.io/court-listener/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_opinion","arguments":{"id":12345678}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('get_opinion', {
  "id": 12345678
});

Response shape

Always returns: id, author, type, date_created, download_url, url, text

FieldTypeDescription
idnumberOpinion ID
authorstring | nullAuthor of the opinion
typestring | nullOpinion type
date_createdstring | nullDate opinion was created
download_urlstring | nullURL to download opinion
urlstring | nullURL to opinion on CourtListener
textstring | nullFull or truncated opinion text
Full JSON Schema
{
  "type": "object",
  "properties": {
    "id": {
      "type": "number",
      "description": "Opinion ID"
    },
    "author": {
      "type": [
        "string",
        "null"
      ],
      "description": "Author of the opinion"
    },
    "type": {
      "type": [
        "string",
        "null"
      ],
      "description": "Opinion type"
    },
    "date_created": {
      "type": [
        "string",
        "null"
      ],
      "description": "Date opinion was created"
    },
    "download_url": {
      "type": [
        "string",
        "null"
      ],
      "description": "URL to download opinion"
    },
    "url": {
      "type": [
        "string",
        "null"
      ],
      "description": "URL to opinion on CourtListener"
    },
    "text": {
      "type": [
        "string",
        "null"
      ],
      "description": "Full or truncated opinion text"
    }
  },
  "required": [
    "id",
    "author",
    "type",
    "date_created",
    "download_url",
    "url",
    "text"
  ]
}

Connect

Add this to your MCP client config, or use one-click install buttons:

{
  "mcpServers": {
    "court-listener": {
      "url": "https://gateway.pipeworx.io/court-listener/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build August 8, 2026