Skip to main content

Official Python SDK for the CourtListener API

Project description

CourtListener API Client

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.). See MCP_README.md for connection details and for running it locally. Free Law Project hosts it at mcp.courtlistener.com. See the MCP documentation on the wiki for setup instructions.

Installation

pip install courtlistener-api-client

Authentication

You'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")

Quickstart

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)

Pagination

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 results

Available Endpoints

Access 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

courtlistener_api_client-1.0.0.tar.gz (131.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

courtlistener_api_client-1.0.0-py3-none-any.whl (165.3 kB view details)

Uploaded Python 3

File details

Details for the file courtlistener_api_client-1.0.0.tar.gz.

File metadata

  • Download URL: courtlistener_api_client-1.0.0.tar.gz
  • Upload date:
  • Size: 131.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for courtlistener_api_client-1.0.0.tar.gz
Algorithm Hash digest
SHA256 d81010e70057e5430a302d6f4d1d41494ce6eb0369d445f830a6c891e149986a
MD5 21a27a32f6008490652b88fd461699c5
BLAKE2b-256 4889aa6281c8063adb33e43bf56b807465d9ddb250610fcf0bacd314d9f6745a

See more details on using hashes here.

File details

Details for the file courtlistener_api_client-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for courtlistener_api_client-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8b7555f82608d0bfc6cbf4550aeff571d12b78ddb380ac4bd8fb47104cb60012
MD5 297ab7c8928712947ef742bac6053fa9
BLAKE2b-256 4194147afafe6adac256f50268ed1088f55a1ffe4a53e3c0f6e6626d8c7bbab8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page