A focused workspace for cited cases
Does every case in your brief actually exist?
Paste your motion or brief. The tool pulls out every citation and shows you a link to check it yourself — nothing leaves your browser.
Not legal advice. This tool only checks whether a cited case exists in CourtListener and whether the case name matches. It does not check whether the case supports your argument, whether quotes or pin cites are accurate, or whether the case is still good law. A case marked NOT FOUND may still exist (CourtListener's coverage is incomplete); a case marked VERIFIED may still be wrong for your purpose. Read every case you cite.
The English disclaimer above is authoritative.
Primary task
Extract citations from a document
Paste legal text or upload a plain-text file. Review the extracted citations and open each source to check it yourself.
Browser mode only extracts citation formats — it does not check cases online. Click a result link to confirm manually, or use the CLI below for a full check.
Extracted citations
Start by pasting text above or loading the sample.
VERIFIED = the case exists and the case name matches. MISMATCH = the case name at that citation differs from the one you wrote. NOT_FOUND = no case at that citation in CourtListener's database.
| # | Citation | Case name in text | Label | Manual-check links |
|---|
Every result in browser mode is marked NOT_CHECKED. Use the links to verify manually, or see the CLI guide for the full CourtListener check.
All NOT_CHECKED? Use the CLI for a full check →
Citation health report
Browser mode: every citation below is NOT_CHECKED. This report summarizes what was extracted; it does not verify any case. Check each case by hand using the links.
This report does not check whether cases support your argument, whether quotes are accurate, or whether a case is still good law.
In browser mode, only recognized reporters are extracted, so an unknown reporter usually means the citation was not extracted at all. These flags describe the extracted text only; they are not a judgment about quality.
Shareable means the downloaded file: send that file onward. There is no hosted link for your brief, and nothing is stored on a server.
| # | Citation | Case name in text | Year | Pin cite | Structure flags | Category | Anomaly reason | Matching evidence | Check scope | Suggested action | Manual-check links |
|---|
Optional toolSearch query translationTranslate a query to English before extracting citation patterns.
Your original text will appear here after extraction.
Automatic translation requires a translation endpoint you provide in the opinion translator below. Without it, no English query is generated.
Optional toolOpinion translation viewerCompare pasted opinion paragraphs with a machine translation from an endpoint you choose.
Protected text (case names, citations, reporter abbreviations, numbers) is shown verbatim in both columns.
If you enter an endpoint, the pasted opinion text is sent to that endpoint for translation. It is not sent anywhere when no endpoint is configured.
v2 assumes the pasted opinion is in English.
| Original | Translation |
|---|
Optional · saved in this browserDaily Legal Briefing — 每日法律简报Your morning briefing, open-and-see: no account, no email push. Preferences stay in this browser only.
For Chinese-speaking users in the US, or Chinese-friendly legal-aid settings. This tool covers US CourtListener cases only — it does not cover Chinese law.
Preferences are stored in this browser only. When you request today's briefing, saved state, topic and citation query strings are sent to CourtListener.
30-second overview
Manual items
Manual mode: paste CourtListener links or opinion text below.
Advanced optionHow to run the full checkThe full check needs the Python CLI and your own free CourtListener token.
The browser page only extracts citation strings. The CLI can send those extracted strings to CourtListener when you provide your own token; by default it does not send the brief text.
Only checking one brief? The manual links above are enough — no CLI needed.
Batch checks or workflow use? Follow the CLI steps below. First-time setup takes longer than a single check, so allow extra time on your first setup.
CourtListener API documentation — sign in to see your token ↗
Who may use the CourtListener API: membership-based access is for personal, educational, research, journalistic, and exploratory use. Solo practitioners and firms with five or fewer attorneys are welcome, as are small government bodies and small pre-revenue unfunded organizations. It may not power a revenue-positive commercial product, and it may not be used to build tools for an organization — even internal tools count as commercial use. Larger firms and commercial uses need a separate Free Law Project agreement.
Free Law Project API usage details ↗
pip install .
python -m legalcite check brief.md --md report.md
# with: COURTLISTENER_TOKEN set in your environment