Authenticate with your CourtListener API token via the Authorization: Token {token} header on all requests
Check whether a specific PACER document is already in the RECAP archive with GET /api/rest/v4/recap-query/?docket_entry__docket__court={courtId}&pacer_doc_id={pacer_doc_id}; a non-empty results array means the document is freely available
Retrieve the document entry with GET /api/rest/v4/recap-documents/{id}/ to obtain the filepath_local field, which provides the URL to download the free PDF directly from CourtListener's server
Search dockets by case name, docket number, or party with GET /api/rest/v4/dockets/?court={courtId}&docket_number={docket_number}&format=json and paginate through results using the next field in the response
For documents not in RECAP, submit a Fetch request to purchase them from PACER via the CourtListener Fetch API, which stores them in the archive after retrieval for future free access by other users
Known gotchas
RECAP coverage is crowdsourced; not all courts or cases are in the archive — always check availability before building workflows that assume documents are free
The pacer_doc_id in the recap-query endpoint is the PACER-internal document ID, not the CourtListener document ID; obtain it from docket entry metadata, not from CourtListener's own IDs
Bulk downloading CourtListener documents is subject to their fair-use policy; automated mass downloads that strain infrastructure may result in account suspension
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