Legal Case Law and Regulation Search
Search US case law via CourtListener and Harvard Case Law Access Project, and EU law via EUR-Lex. Covers court opinions, dockets, and legislative documents.
CourtListener API (US Case Law)
Free, open API for US federal and state court opinions and dockets.
Base URL: https://www.courtlistener.com/api/rest/v4/
Search Opinions
curl -s "https://www.courtlistener.com/api/rest/v4/search/?q=qualified+immunity&type=o&order_by=score+desc" \
| python3 -c "
import sys, json
data = json.load(sys.stdin)
for r in data.get('results', [])[:10]:
name = r.get('caseName', 'N/A')
court = r.get('court', 'N/A')
date = r.get('dateFiled', 'N/A')
cite = r.get('citation', [r.get('sibling_ids', 'N/A')])
print(f'[{date}] {name}')
print(f' Court: {court}')
print()
"
Search Dockets
curl -s "https://www.courtlistener.com/api/rest/v4/search/?q=antitrust+merger&type=r&order_by=score+desc"
Filter by Date Range
curl -s "https://www.courtlistener.com/api/rest/v4/search/?q=fourth+amendment+digital+privacy&type=o&filed_after=2020-01-01&filed_before=2024-12-31&order_by=dateFiled+desc"
Filter by Court
# Supreme Court opinions
curl -s "https://www.courtlistener.com/api/rest/v4/search/?q=free+speech&type=o&court=scotus&order_by=dateFiled+desc"
# Specific circuit court
curl -s "https://www.courtlistener.com/api/rest/v4/search/?q=patent+eligibility&type=o&court=cafc&order_by=dateFiled+desc"
Common Court Codes
scotus (SCOTUS), ca1-ca11 (Circuit Courts), cafc (Federal Circuit),
cadc (DC Circuit), nyd (SDNY), cand (N.D. Cal).
Harvard Case Law Access Project
Historical US case law (1658-2020). Free API with registration.
Base URL: https://api.case.law/v1/
Search Cases
curl -s "https://api.case.law/v1/cases/?search=miranda+rights&decision_date_min=2000-01-01&page_size=10" \
| python3 -c "
import sys, json
data = json.load(sys.stdin)
for c in data.get('results', []):
name = c.get('name_abbreviation', 'N/A')
date = c.get('decision_date', 'N/A')
court = c.get('court', {}).get('name', 'N/A')
cite = c.get('citations', [{}])[0].get('cite', 'N/A') if c.get('citations') else 'N/A'
print(f'[{date}] {name}')
print(f' Citation: {cite} Court: {court}\n')
"
Search by Citation
curl -s "https://api.case.law/v1/cases/?cite=410+U.S.+113"
Filter by Jurisdiction
curl -s "https://api.case.law/v1/cases/?search=eminent+domain&jurisdiction=cal&decision_date_min=2010-01-01&page_size=10"
EUR-Lex (EU Law)
Access EU legislation, case law, and treaties via the EUR-Lex SPARQL endpoint.
Search EU Legislation via SPARQL
curl -s -G "https://eur-lex.europa.eu/EURLexWebService" \
--data-urlencode "query=SELECT ?doc ?title WHERE {
?doc a <http://publications.europa.eu/ontology/cdm#regulation> ;
<http://publications.europa.eu/ontology/cdm#resource_legal_title> ?title .
FILTER(CONTAINS(LCASE(?title), 'artificial intelligence'))
} LIMIT 10" \
--data-urlencode "format=application/sparql-results+json"
Lookup by CELEX Number
curl -s "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32016R0679" -o gdpr.html
Best Practices
- Use CourtListener for recent US case law; it has the most up-to-date coverage.
- Use Harvard Case Law for historical cases and bulk data access.
- CourtListener requires no API key for basic search; register for higher rate limits.
- Always include date filters to narrow results for broad legal topics.
- For citation lookups, normalize to standard reporter format (e.g., "410 U.S. 113").
- EUR-Lex SPARQL queries can be complex; start with keyword REST search first.
- Never provide legal advice; present search results as reference material only.