| name | courtlistener |
| title | CourtListener REST API v4 |
| description | Search U.S. case law, PACER dockets, judges, oral arguments, and citations via CourtListener REST API v4. Use bash+curl+jq against https://www.courtlistener.com/api/rest/v4/. |
| author | PlebeiusGaragicus |
| author_url | https://github.com/PlebeiusGaragicus/dot-pi/tree/main/shared/skills/courtlistener |
| license | MIT |
| version | 0.1.0 |
| execution_mode | open |
| jurisdiction | us |
| practice | litigation |
| language | en |
CourtListener REST API v4
Use curl + jq to query CourtListener. Do NOT scrape the HTML website — it is blocked by CloudFront WAF. Always use the API endpoints below.
Base URL: https://www.courtlistener.com/api/rest/v4/
Anonymous access works (no token needed) but has lower rate limits. Authenticated users get 5,000 requests/hour.
Search API (primary entry point)
The search endpoint mirrors the website's search with GET parameters:
curl -s "https://www.courtlistener.com/api/rest/v4/search/?q=QUERY&type=o" | jq '.results[:5]'
Type parameter
| Value | Data |
|---|
o | Case law opinions (default) |
r | RECAP dockets + up to 3 nested docs |
rd | RECAP filing documents only |
d | Federal dockets only |
p | Judges |
oa | Oral argument audio |
Examples
curl -s "https://www.courtlistener.com/api/rest/v4/search/?q=fourth+amendment+cell+phone&type=o" \
| jq '.results[:3] | .[] | {caseName, dateFiled, court, citation, cluster_id}'
curl -s "https://www.courtlistener.com/api/rest/v4/search/?q=Apple+v+Epic&type=r" \
| jq '.results[:3] | .[] | {caseName, docketNumber, court, dateFiled}'
curl -s "https://www.courtlistener.com/api/rest/v4/search/?q=Ketanji+Brown+Jackson&type=p" \
| jq '.results[:3]'
curl -s "https://www.courtlistener.com/api/rest/v4/search/?q=qualified+immunity&type=oa" \
| jq '.results[:3] | .[] | {caseName, dateArgued, court, download_url}'
Advanced operators