A Python client for the CourtListener API, providing access to millions of legal opinions, dockets, judges, and more from Free Law Project.
Using an LLM? This repo also ships the CourtListener MCP server, which exposes the API to any Model Context Protocol client (Claude Desktop, Cursor, etc.).
Free Law Project hosts it at(Coming Soon.) See MCP_README.md for connection details and for running it locally.mcp.courtlistener.com.
pip install courtlistener-api-clientYou'll need a CourtListener API token. You can get one by creating an account and generating a token in your profile settings.
Set it as an environment variable:
export COURTLISTENER_API_TOKEN="your-token-here"Or pass it directly to the client:
from courtlistener import CourtListener
client = CourtListener(api_token="your-token-here")from courtlistener import CourtListener
client = CourtListener()
# Get a specific opinion by ID
opinion = client.opinions.get(1)
# Search for opinions
response = client.opinions.list(cluster__case_name="Miranda")
# Access results from the current page
for opinion in response.results:
print(opinion)
# Check the total count of matching results
print(response.count)
# Iterate through all results across pages
response = client.dockets.list(court="scotus")
for docket in response:
print(docket)List queries return a ResourceIterator that handles pagination automatically:
results = client.dockets.list(court="scotus")
# Iterate through all results across all pages
for docket in results:
print(docket)
# Or navigate pages manually
results = client.dockets.list(court="scotus")
print(results.results) # current page results
if results.has_next():
results.next()
print(results.results) # next page resultsAccess any endpoint as an attribute on the client. Each endpoint supports .get(id) and .list(**filters).
| Endpoint | Description |
|---|---|
search |
Search opinions, RECAP, judges, and oral arguments |
dockets |
Court dockets |
docket_entries |
Docket entries |
recap_documents |
RECAP documents |
opinions |
Court opinions |
opinions_cited |
Citation relationships |
clusters |
Opinion clusters |
courts |
Court information |
audio |
Oral argument audio |
people |
Judges and other persons |
positions |
Judge positions |
parties |
Case parties |
attorneys |
Attorneys |
financial_disclosures |
Financial disclosures |
alerts |
User alerts |
docket_alerts |
Docket alerts |
tags |
User-created tags |
visualizations |
Visualization data |
schools |
Schools |
educations |
Judge education records |
political_affiliations |
Political affiliations |
aba_ratings |
ABA ratings |
fjc_integrated_database |
FJC integrated database |
See the CourtListener API docs for the full list and available filters.