Citation check API: compare every citation with the corpus
Send a text to the API. You get a result for every citation in it, such as verified in the corpus, not found or discrepancy. Built for legal software, agents and review steps in your workflow.
Data processing. The AI services that receive your search query process it in the EU. The providers belong to companies based in the USA. More on privacy and security
One text in, one result per citation out
The check runs synchronously. The response names the status of the run, the number of results per value and the result of every citation. In the example a decision of the Federal Court of Justice is in the corpus, and the Higher Regional Court Atlantis does not exist.
Request
curl -X POST "https://klaracase.de/api/v1/citation-checks" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{
"text": "Der Bundesgerichtshof hat mit Urteil vom 11.12.2014, Az. 3 StR 265/14, eine Vermögensbetreuungspflicht des Fraktionsvorsitzenden bejaht. Das Oberlandesgericht Atlantis hat dagegen mit Urteil vom 03.05.2019, Az. 4 U 123/18, anders entschieden."
}'Example response, shortened
{
"id": "01a1996a-2c2e-72dd-8227-96f4204c2aa8",
"status": "complete",
"verdict_counts": {
"verified_corpus": 1,
"not_found": 1
},
"unique_citations": [
{
"canonical": "3 StR 265/14",
"occurrences": 1,
"verdict": "verified_corpus",
"reference_type": "case"
},
{
"canonical": "4 U 123/18",
"occurrences": 1,
"verdict": "not_found",
"reference_type": "case"
}
],
"api_version": "0.96.0",
"credits": {
"metered": true,
"cost": 2,
"credits_remaining": 17
}
}Both examples were recorded once. This page does not call the API itself.
The seven verdicts
The list is closed. A verdict says something about the citation in the corpus, never about the author of the text.
| Value in the API | Display | Meaning |
|---|---|---|
| verified_corpus | Verified in our holdings | A decision with this file number is in the corpus. This does not say that it is still good law today. |
| verified_external | Verified in external register | Not in the corpus, but confirmed in an external register. Over the API only our own corpus is checked for now. The web app knows this verdict, and your code should be able to handle it. |
| ambiguous | Matches in our holdings | The file number matches several decisions in the corpus. Your code or your user picks the one that was meant. |
| out_of_coverage | Outside our coverage | The citation lies outside the period or the area of law that the corpus covers. It was not checked and does not count as a problem. |
| not_found | Not found | Not found in the corpus. This does not prove that the decision does not exist. Please check the citation by hand. |
| unverifiable | Could not be verified | The citation could not be turned into a form that can be checked. |
| discrepancy | Discrepancy | The citation was found, but a detail of it does not fit, such as the court, the date or a paragraph that does not exist. |
What not_found means
not_found means: we did not find the citation in our corpus. It does not mean the decision does not exist, and it says nothing about the author of the text. The API checks our own corpus only. The web app also asks an external register, so not_found over the API is the weaker signal. Treat it as a task for a manual check, not as a ruling.
What the check does not do
A verified result shows that the decision exists. It does not show that it is still good law. The API does not check whether a decision was set aside.
Price per check
A check costs at least 2 credits. Above that, the length counts: 1 credit per started 5,000 characters. The same text in the same period costs 0 credits. Uploading a file costs nothing.
| Length of the text | Credits |
|---|---|
| up to 10,000 characters | 2 |
| up to 15,000 characters | 3 |
| up to 20,000 characters | 4 |
Length and pace
A text may be up to 20,000 characters long. The API refuses a longer text before it charges any credits. Or upload a file (PDF, DOCX, MD or TXT) and check it afterwards. Checks are limited to 10 requests per minute per token.
Klaracase is not affiliated with any court or the federal government.
Start with the citation check API
Data processing. The API and the MCP server use the same search as the web app. OpenRouter and Voyage AI process the text of a search query in the EU. Citation Check examines texts on our server in Germany, without AI services. More on privacy and security