Authenticate to CourtListener using 'Authorization: Token YOUR_TOKEN'
Query GET https://www.courtlistener.com/api/rest/v4/opinions/ filtering by cluster__citations__reporter and cluster__citations__volume and cluster__citations__page to match a specific citation
Alternatively, use the search endpoint GET /api/rest/v4/search/?type=o&q=CITATION_STRING to resolve citations via full-text search
Each opinion record links to an opinion cluster via the cluster field; fetch the cluster to obtain the court, date_filed, case_name, and all associated opinions (majority, dissent, concurrence)
The plain_text or html field on the opinion object contains the full opinion text; download_url points to the original court PDF if available
Known gotchas
A single case can have multiple opinion objects under one cluster; check the type field (e.g., lead, dissent, concurrence) to select the correct opinion
CourtListener opinion coverage is extensive but not complete for all lower courts and historical periods; gaps exist especially for older district court slip opinions
Rate limits apply; use the Retry-After header when receiving 429 responses and implement exponential backoff
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp