API-Referenz
v0.93.0Die REST-API gibt Ihren eigenen Anwendungen die Funktionen des MCP-Servers: Suche, Entscheidungstexte, Verweisnetz, Datenpakete und Citation Check. Jeder Endpunkt entspricht einem MCP-Werkzeug, mit denselben Argumenten, derselben Antwort und demselben Preis.
Erste Schritte
Erstellen Sie ein API-Token unter Einstellungen, API-Token. Das Token handelt für die Organisation, die Sie beim Erstellen geöffnet haben, und jeder Aufruf wird dieser Organisation berechnet. Es läuft nach 365 Tagen ab, wenn Sie keine kürzere Laufzeit wählen. Das Token wird nur einmal angezeigt. Bewahren Sie es wie ein Passwort auf, und widerrufen Sie es sofort, wenn es in falsche Hände gerät.
API-Token in den Einstellungen öffnenSenden Sie das Token bei jeder Anfrage als Bearer-Token:
curl "https://klaracase.de/api/v1/decisions/search?query=Untreue%20Gesch%C3%A4ftsf%C3%BChrer" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Accept: application/json"Berechtigungen des Tokens
Ein Token darf nur, was seine Berechtigungen erlauben. Jeder Endpunkt nennt die Berechtigung, die er braucht. Ein Token ohne diese Berechtigung erhält eine 403 mit dem Code token_ability_missing, und es wird nichts berechnet.
- search: Entscheidungen durchsuchen, auch Gesetze und Entscheidungen zusammen.
- read: Entscheidungen lesen, Abdeckung des Korpus und Filterwerte abrufen.
- graph: das Verweisnetz einer Entscheidung abrufen.
- datapackage: Datenpakete zusammenstellen.
- citation-check: Zitate prüfen, Dokumente hochladen und die Ergebnisse abrufen.
Preise und Credits
Ein Aufruf kostet dieselben Credits wie das entsprechende MCP-Werkzeug. Jeder Endpunkt unten nennt seinen Preis. Ein Ergebnis, das Ihre Organisation in diesem Monat schon bezahlt hat, über die API oder über MCP, kostet nichts mehr. Die 30 kostenlosen Start-Credits für neue verifizierte Nutzer gelten auch für die API. Jede Antwort nennt im Feld credits ihre Kosten und das verbleibende Guthaben.
Ratenbegrenzung und Tageskontingente
Jedes Token darf 60 Anfragen pro Minute stellen. Für Datenpakete, Zitatprüfungen und Uploads gilt zusätzlich eine Grenze von 10 pro Minute. Jede Organisation hat außerdem ein tägliches Kontingent je Tarif für die Suchtreffer und die Volltexte, die sie erhält. Über einer Grenze erhalten Sie eine 429 mit retry_after_seconds. Es wurde nichts ausgeführt und nichts berechnet.
| Tarif | Suchtreffer und Verweise pro Tag | Volltexte pro Tag |
|---|---|---|
| free | 1.000 | 40 |
| starter | 5.000 | 200 |
| professional | 20.000 | 600 |
| enterprise | 60.000 | 2.000 |
Fehler
Jeder Fehler ist ein Problem nach RFC 9457 im Format application/problem+json, mit type, title, status, detail und einem festen code. Eine 402 enthält zusätzlich cost und balance. Eine 429 enthält retry_after_seconds. Eine 422 enthält errors mit den Meldungen je Argument. Eine 403 wegen einer fehlenden Berechtigung enthält required_ability. Schreibt Ihre Organisation allen Mitgliedern die Zwei-Faktor-Anmeldung vor und hat der Nutzer des Tokens sie nicht eingerichtet, erhält jeder Aufruf eine 403 mit dem Code two_factor_required, und es wird nichts berechnet, bis er sie einrichtet.
Versionierung
Die Hauptversion im Pfad, /api/v1, ist der Vertrag. Innerhalb von v1 kommt nur etwas hinzu: neue Felder, neue optionale Parameter und neue Werte. Eine Entfernung oder eine Änderung der Bedeutung erscheint als /api/v2. Das Ende eines Endpunkts kündigen wir mit den Headern Deprecation und Sunset mindestens sechs Monate vorher an. Jede Antwort trägt den Header X-Klaracase-Api-Release mit dem Release, das sie ausgeliefert hat.
OpenAPI-Spezifikation (JSON)Citation Check
/api/v1/citation-checksParameter
textstringbodyDer zu prüfende deutsche Rechtstext (mindestens 50 Zeichen, höchstens 20000; längere Dokumente prüfen Sie im Citation Check der Web-App). Die Länge ist eine Untergrenze, nicht das Tor: Der Text muss außerdem mindestens zwei von fünf unabhängigen Kategorien von Rechtssignalen zeigen, daher wird ein einzelner Gesetzessatz abgelehnt, wie lang er auch sei. Die Offsets der Antwort sind Unicode-Codepoint-Offsets in genau DIESEN String.
reference_datestringbodyOPTIONALES Dokumentdatum, ISO `YYYY-MM-DD`. Es gilt für jedes Gesetzeszitat, dessen eigener Satz kein Datum nennt; ein Satz, der sein eigenes Datum nennt, gewinnt immer. Es steuert den Hinweis zur Nummerierung vor der Reform und ändert kein Verdikt. Jeder Befund meldet in `evidence.citation_date_source` (`sentence` | `reference_date` | `none`), welches Datum er verwendet hat.
document_idstringbodyDie ID eines Uploads mit `status` `ready` (POST /citation-checks nimmt dies oder `text`, nie beides). Die Prüfung verbraucht den Upload.
Anfrage
curl -X POST "https://klaracase.de/api/v1/citation-checks" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Accept: application/json"Antworten
{
"id": "0193b0c5-1a2b-7c3d-8e4f-5a6b7c8d9e0f",
"status": "complete",
"source": "api_v1",
"progress": {
"citations_total": 2,
"citations_checked": 2,
"unique_citations_total": 2
},
"verdict_counts": {
"verified": 1,
"not_found": 1
},
"partial": false,
"unverified_count": 0,
"reason_counts": [
{
"category": "statute_unknown",
"count": 1
}
],
"unique_citations": [
{
"key_basis": "matched_decision",
"target_artifact_id": "0193b0c4-5f1e-7a2b-9c3d-4e5f6a7b8c9d",
"canonical": "BGH 1 StR 185/01",
"spellings": [
"BGH, Urt. v. 15.11.2001 – 1 StR 185/01"
],
"occurrences": 1,
"verdict": "verified",
"reference_type": "case"
},
{
"key_basis": "canonical",
"target_artifact_id": null,
"canonical": "§ 266a Abs. 9 StGB",
"spellings": [
"§ 266a Abs. 9 StGB"
],
"occurrences": 1,
"verdict": "not_found",
"reference_type": "statute"
}
],
"extraction": {
"detected": 2,
"dropped": 0,
"dropped_unreadable": 0,
"dropped_truncation": 0,
"dropped_trailing_noun": 0,
"dropped_stacked_subdivision": 0,
"dropped_refused_collision": 0,
"dropped_by_token": [],
"dropped_unreadable_texts": [],
"refused_contract_collision": [],
"not_verifiable": 0,
"not_verifiable_by_type": [],
"possible_citations_unparsed": 0,
"possible_citations_unparsed_texts": []
},
"notes": [],
"findings_unavailable_reason": null,
"findings_purged_at": null,
"findings": [
{
"id": "0193b0c5-2b3c-7d4e-9f50-6b7c8d9e0f1a",
"raw_text": "BGH, Urt. v. 15.11.2001 – 1 StR 185/01",
"canonical": "BGH 1 StR 185/01",
"type": "case",
"role": null,
"verdict": "verified",
"external_status": "skipped",
"start_offset": 118,
"end_offset": 157,
"occurrence_index": 0,
"confidence": null,
"matched_decision": {
"artifact_id": "0193b0c4-5f1e-7a2b-9c3d-4e5f6a7b8c9d",
"ecli": "ECLI:DE:BGH:2001:151101U1STR185.01.0",
"court": "BGH",
"date": "2001-11-15"
},
"subdivision_check": "not_checked",
"subdivision_advisory": null,
"check_scope": {
"subdivision": "not_applicable",
"article_text_available": null,
"article_text_read": false,
"court": "checked"
},
"ambiguity_advisory": null,
"coverage": null,
"coverage_boundary": null,
"coverage_advisory": null,
"evidence": {
"reason": "exact_match",
"match_strength": "exact"
},
"disputed_at": null
}
],
"submitted_at": "2026-10-01T10:00:00+00:00",
"completed_at": "2026-10-01T10:00:00+00:00",
"created_at": "2026-10-01T10:00:00+00:00",
"payload_truncated": false,
"api_version": "0.93.0",
"changelog_url": "https://klaracase.de/docs/mcp/changelog",
"credits": {
"metered": true,
"cost": 2,
"credits_remaining": 18
}
}{
"type": "https://klaracase.de/docs/api/errors#unauthenticated",
"title": "Unauthorized",
"status": 401,
"detail": "Authentication is required. Send a Klaracase API token as a Bearer token.",
"code": "unauthenticated"
}{
"type": "https://klaracase.de/docs/api/errors#insufficient_credits",
"title": "Payment Required",
"status": 402,
"detail": "Insufficient credits: this call costs 2 credit(s), but organization \"Kanzlei Beispiel\" has 0 remaining this month. Credits renew automatically at the start of each calendar month (UTC). Ask your organization admin to raise the allotment, or retry next month.",
"code": "insufficient_credits",
"cost": 2,
"balance": 0
}{
"type": "https://klaracase.de/docs/api/errors#token_ability_missing",
"title": "Forbidden",
"status": 403,
"detail": "This API token does not carry the `citation-check` ability this endpoint needs. Nothing was executed and nothing was charged. Create a token with that ability in Settings, API tokens.",
"code": "token_ability_missing",
"required_ability": "citation-check"
}{
"type": "https://klaracase.de/docs/api/errors#token_org_missing",
"title": "Conflict",
"status": 409,
"detail": "This API token was created before tokens named an organization, so the API cannot tell which organization it acts for. Create a new token in Settings, API tokens; it acts for the organization you have open.",
"code": "token_org_missing"
}{
"type": "https://klaracase.de/docs/api/errors#validation_failed",
"title": "Unprocessable Content",
"status": 422,
"detail": "The selected text is invalid.",
"code": "validation_failed",
"errors": {
"text": [
"The selected text is invalid."
]
}
}{
"type": "https://klaracase.de/docs/api/errors#rate_limited",
"title": "Too Many Requests",
"status": 429,
"detail": "Too many requests for this token. Wait `retry_after_seconds` and retry. Nothing was executed and nothing was charged.",
"code": "rate_limited",
"retry_after_seconds": 42
}{
"type": "https://klaracase.de/docs/api/errors#backend_unavailable",
"title": "Service Unavailable",
"status": 503,
"detail": "The backend could not complete this call, so nothing was charged. Retry in a few seconds.",
"code": "backend_unavailable"
}/api/v1/citation-checks/{run}Anfrage
curl "https://klaracase.de/api/v1/citation-checks/{run}" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Accept: application/json"Antworten
{
"id": "0193b0c5-1a2b-7c3d-8e4f-5a6b7c8d9e0f",
"status": "complete",
"source": "api_v1",
"progress": {
"citations_total": 2,
"citations_checked": 2,
"unique_citations_total": 2
},
"verdict_counts": {
"verified": 1,
"not_found": 1
},
"partial": false,
"unverified_count": 0,
"reason_counts": [
{
"category": "statute_unknown",
"count": 1
}
],
"unique_citations": [
{
"key_basis": "matched_decision",
"target_artifact_id": "0193b0c4-5f1e-7a2b-9c3d-4e5f6a7b8c9d",
"canonical": "BGH 1 StR 185/01",
"spellings": [
"BGH, Urt. v. 15.11.2001 – 1 StR 185/01"
],
"occurrences": 1,
"verdict": "verified",
"reference_type": "case"
},
{
"key_basis": "canonical",
"target_artifact_id": null,
"canonical": "§ 266a Abs. 9 StGB",
"spellings": [
"§ 266a Abs. 9 StGB"
],
"occurrences": 1,
"verdict": "not_found",
"reference_type": "statute"
}
],
"extraction": {
"detected": 2,
"dropped": 0,
"dropped_unreadable": 0,
"dropped_truncation": 0,
"dropped_trailing_noun": 0,
"dropped_stacked_subdivision": 0,
"dropped_refused_collision": 0,
"dropped_by_token": [],
"dropped_unreadable_texts": [],
"refused_contract_collision": [],
"not_verifiable": 0,
"not_verifiable_by_type": [],
"possible_citations_unparsed": 0,
"possible_citations_unparsed_texts": []
},
"notes": [],
"findings_unavailable_reason": null,
"findings_purged_at": null,
"findings": [
{
"id": "0193b0c5-2b3c-7d4e-9f50-6b7c8d9e0f1a",
"raw_text": "BGH, Urt. v. 15.11.2001 – 1 StR 185/01",
"canonical": "BGH 1 StR 185/01",
"type": "case",
"role": null,
"verdict": "verified",
"external_status": "skipped",
"start_offset": 118,
"end_offset": 157,
"occurrence_index": 0,
"confidence": null,
"matched_decision": {
"artifact_id": "0193b0c4-5f1e-7a2b-9c3d-4e5f6a7b8c9d",
"ecli": "ECLI:DE:BGH:2001:151101U1STR185.01.0",
"court": "BGH",
"date": "2001-11-15"
},
"subdivision_check": "not_checked",
"subdivision_advisory": null,
"check_scope": {
"subdivision": "not_applicable",
"article_text_available": null,
"article_text_read": false,
"court": "checked"
},
"ambiguity_advisory": null,
"coverage": null,
"coverage_boundary": null,
"coverage_advisory": null,
"evidence": {
"reason": "exact_match",
"match_strength": "exact"
},
"disputed_at": null
}
],
"submitted_at": "2026-10-01T10:00:00+00:00",
"completed_at": "2026-10-01T10:00:00+00:00",
"created_at": "2026-10-01T10:00:00+00:00",
"payload_truncated": false,
"api_version": "0.93.0",
"changelog_url": "https://klaracase.de/docs/mcp/changelog",
"credits": {
"metered": true,
"cost": 0,
"credits_remaining": 18
}
}{
"type": "https://klaracase.de/docs/api/errors#unauthenticated",
"title": "Unauthorized",
"status": 401,
"detail": "Authentication is required. Send a Klaracase API token as a Bearer token.",
"code": "unauthenticated"
}{
"type": "https://klaracase.de/docs/api/errors#token_ability_missing",
"title": "Forbidden",
"status": 403,
"detail": "This API token does not carry the `citation-check` ability this endpoint needs. Nothing was executed and nothing was charged. Create a token with that ability in Settings, API tokens.",
"code": "token_ability_missing",
"required_ability": "citation-check"
}{
"type": "https://klaracase.de/docs/api/errors#not_found",
"title": "Not Found",
"status": 404,
"detail": "The requested resource does not exist, or it belongs to another organization.",
"code": "not_found"
}{
"type": "https://klaracase.de/docs/api/errors#token_org_missing",
"title": "Conflict",
"status": 409,
"detail": "This API token was created before tokens named an organization, so the API cannot tell which organization it acts for. Create a new token in Settings, API tokens; it acts for the organization you have open.",
"code": "token_org_missing"
}{
"type": "https://klaracase.de/docs/api/errors#validation_failed",
"title": "Unprocessable Content",
"status": 422,
"detail": "The selected id is invalid.",
"code": "validation_failed",
"errors": {
"id": [
"The selected id is invalid."
]
}
}{
"type": "https://klaracase.de/docs/api/errors#rate_limited",
"title": "Too Many Requests",
"status": 429,
"detail": "Too many requests for this token. Wait `retry_after_seconds` and retry. Nothing was executed and nothing was charged.",
"code": "rate_limited",
"retry_after_seconds": 42
}/api/v1/citation-check-documentsParameter
fileErforderlichstringbodyDas Dokument: PDF, DOCX, Markdown oder reiner Text, bis 25 MB, gesendet als multipart/form-data.
Anfrage
curl -X POST "https://klaracase.de/api/v1/citation-check-documents" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Accept: application/json"Antworten
{
"id": "0193b0c6-3c4d-7e5f-8a60-7c8d9e0f1a2b",
"filename": "schriftsatz.pdf",
"format": "pdf",
"status": "uploaded",
"char_count": null,
"page_count": null,
"pages_without_text_layer": null,
"check_max_chars": 20000,
"quoted_credits": null,
"error_code": null,
"expires_at": "2026-10-02T10:00:00+00:00",
"created_at": "2026-10-01T10:00:00+00:00",
"api_version": "0.93.0",
"changelog_url": "https://klaracase.de/docs/mcp/changelog",
"credits": {
"metered": true,
"cost": 0,
"credits_remaining": 18
}
}{
"type": "https://klaracase.de/docs/api/errors#unauthenticated",
"title": "Unauthorized",
"status": 401,
"detail": "Authentication is required. Send a Klaracase API token as a Bearer token.",
"code": "unauthenticated"
}{
"type": "https://klaracase.de/docs/api/errors#token_ability_missing",
"title": "Forbidden",
"status": 403,
"detail": "This API token does not carry the `citation-check` ability this endpoint needs. Nothing was executed and nothing was charged. Create a token with that ability in Settings, API tokens.",
"code": "token_ability_missing",
"required_ability": "citation-check"
}{
"type": "https://klaracase.de/docs/api/errors#token_org_missing",
"title": "Conflict",
"status": 409,
"detail": "This API token was created before tokens named an organization, so the API cannot tell which organization it acts for. Create a new token in Settings, API tokens; it acts for the organization you have open.",
"code": "token_org_missing"
}{
"type": "https://klaracase.de/docs/api/errors#validation_failed",
"title": "Unprocessable Content",
"status": 422,
"detail": "The selected file is invalid.",
"code": "validation_failed",
"errors": {
"file": [
"The selected file is invalid."
]
}
}{
"type": "https://klaracase.de/docs/api/errors#rate_limited",
"title": "Too Many Requests",
"status": 429,
"detail": "Too many requests for this token. Wait `retry_after_seconds` and retry. Nothing was executed and nothing was charged.",
"code": "rate_limited",
"retry_after_seconds": 42
}/api/v1/citation-check-documents/{document}Anfrage
curl "https://klaracase.de/api/v1/citation-check-documents/{document}" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Accept: application/json"Antworten
{
"id": "0193b0c6-3c4d-7e5f-8a60-7c8d9e0f1a2b",
"filename": "schriftsatz.pdf",
"format": "pdf",
"status": "ready",
"char_count": 14830,
"page_count": 6,
"pages_without_text_layer": 0,
"check_max_chars": 20000,
"quoted_credits": 2,
"error_code": null,
"expires_at": "2026-10-02T10:00:00+00:00",
"created_at": "2026-10-01T10:00:00+00:00",
"api_version": "0.93.0",
"changelog_url": "https://klaracase.de/docs/mcp/changelog",
"credits": {
"metered": true,
"cost": 0,
"credits_remaining": 18
}
}{
"type": "https://klaracase.de/docs/api/errors#unauthenticated",
"title": "Unauthorized",
"status": 401,
"detail": "Authentication is required. Send a Klaracase API token as a Bearer token.",
"code": "unauthenticated"
}{
"type": "https://klaracase.de/docs/api/errors#token_ability_missing",
"title": "Forbidden",
"status": 403,
"detail": "This API token does not carry the `citation-check` ability this endpoint needs. Nothing was executed and nothing was charged. Create a token with that ability in Settings, API tokens.",
"code": "token_ability_missing",
"required_ability": "citation-check"
}{
"type": "https://klaracase.de/docs/api/errors#not_found",
"title": "Not Found",
"status": 404,
"detail": "The requested resource does not exist, or it belongs to another organization.",
"code": "not_found"
}{
"type": "https://klaracase.de/docs/api/errors#token_org_missing",
"title": "Conflict",
"status": 409,
"detail": "This API token was created before tokens named an organization, so the API cannot tell which organization it acts for. Create a new token in Settings, API tokens; it acts for the organization you have open.",
"code": "token_org_missing"
}{
"type": "https://klaracase.de/docs/api/errors#validation_failed",
"title": "Unprocessable Content",
"status": 422,
"detail": "The selected id is invalid.",
"code": "validation_failed",
"errors": {
"id": [
"The selected id is invalid."
]
}
}{
"type": "https://klaracase.de/docs/api/errors#rate_limited",
"title": "Too Many Requests",
"status": 429,
"detail": "Too many requests for this token. Wait `retry_after_seconds` and retry. Nothing was executed and nothing was charged.",
"code": "rate_limited",
"retry_after_seconds": 42
}Verweisnetz
/api/v1/decisions/{id}/citationsParameter
directionoutgoingincomingbothquery„outgoing“ = Entscheidungen, die diese zitiert (references), „incoming“ = Entscheidungen, die diese zitieren (referenced_by), „both“ (Standard) = beide Richtungen.
depth12query1 (Standard) = nur direkte Nachbarn; 2 = zusätzlich Nachbarn von Nachbarn, begrenzt auf 50 verschiedene Nachbarentscheidungen neben der Ausgangsentscheidung und als begrenzte Stichprobe geliefert.
courtstringqueryOptionales Unterscheidungsmerkmal für ein Aktenzeichen als `id`: die kanonische Gerichts-Kurzform, z. B. „BVerfG“ oder „OLG Hamm“. Bei UUID-Abfragen ohne Wirkung.
datestringqueryOptionales Unterscheidungsmerkmal für ein Aktenzeichen als `id`: das Entscheidungsdatum im Format YYYY-MM-DD.
pageintegerquery1-basierte Seite (Standard 1) über die Nachbarlisten der AUSGANGS-Entscheidung, 25 verschiedene Entscheidungen je Richtung, bis Seite 20. Nur bei Tiefe 1 definiert.
Anfrage
curl "https://klaracase.de/api/v1/decisions/{id}/citations" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Accept: application/json"Antworten
{
"source": {
"id": "0193b0c4-5f1e-7a2b-9c3d-4e5f6a7b8c9d",
"aktenzeichen": "1 StR 185/01",
"court": "BGH",
"date": "2001-11-15"
},
"references": [
{
"reference_canonical": "BGH 1 StR 50/15",
"reference_role": "leitentscheidung",
"resolution_status": "resolved",
"in_corpus": true,
"corpus": {
"artifact_id": "0193b0c4-6a2d-7c4e-8f10-2b3c4d5e6f70",
"court": "BGH",
"date": "2015-03-12",
"az": "1 StR 50/15",
"document_type": "Urteil",
"ecli": null,
"corpus_url": "https://klaracase.de/decisions/0193b0c4-6a2d-7c4e-8f10-2b3c4d5e6f70"
},
"from_artifact_id": "0193b0c4-5f1e-7a2b-9c3d-4e5f6a7b8c9d",
"hop": 1
}
],
"referenced_by": [
{
"reference_canonical": "BGH 1 StR 185/01",
"reference_role": null,
"resolution_status": "resolved",
"in_corpus": true,
"corpus": {
"artifact_id": "0193b0c4-7b3e-7d5f-9a21-3c4d5e6f7a81",
"court": "BGH",
"date": "2022-06-08",
"az": "4 StR 200/22",
"document_type": "Beschluss",
"ecli": null,
"corpus_url": "https://klaracase.de/decisions/0193b0c4-7b3e-7d5f-9a21-3c4d5e6f7a81"
},
"from_artifact_id": "0193b0c4-7b3e-7d5f-9a21-3c4d5e6f7a81",
"hop": 1
}
],
"served_direction": "both",
"served_references_total": 1,
"served_referenced_by_total": 1,
"references_total": 1,
"references_resolved_total": 1,
"referenced_by_total": 1,
"references_unresolved_total": 0,
"references_withheld_reasons": [],
"totals_scope": "source_decision_hop_1",
"per_direction_cap": 25,
"unresolved_cap": 25,
"node_cap": 50,
"truncated": false,
"nodes_omitted": 0,
"payload_truncated": false,
"pagination": {
"page": 1,
"page_size": 25,
"max_page": 20,
"reachable_distinct_max": 500,
"references_pages": 1,
"referenced_by_pages": 1,
"has_more_references": false,
"has_more_referenced_by": false,
"applies_at_depth": 1
},
"fortgeltung_checked": false,
"fortgeltung_note": "Rechtskraft/Fortgeltung (whether a decision is still good law) is NOT checked. A decision returned here may have been quashed or superseded on appeal, and the ABSENCE of any such note is not evidence that it still stands.",
"api_version": "0.93.0",
"changelog_url": "https://klaracase.de/docs/mcp/changelog",
"credits": {
"metered": true,
"cost": 2,
"credits_remaining": 25
}
}{
"type": "https://klaracase.de/docs/api/errors#unauthenticated",
"title": "Unauthorized",
"status": 401,
"detail": "Authentication is required. Send a Klaracase API token as a Bearer token.",
"code": "unauthenticated"
}{
"type": "https://klaracase.de/docs/api/errors#insufficient_credits",
"title": "Payment Required",
"status": 402,
"detail": "Insufficient credits: this call costs 2 credit(s), but organization \"Kanzlei Beispiel\" has 0 remaining this month. Credits renew automatically at the start of each calendar month (UTC). Ask your organization admin to raise the allotment, or retry next month.",
"code": "insufficient_credits",
"cost": 2,
"balance": 0
}{
"type": "https://klaracase.de/docs/api/errors#token_ability_missing",
"title": "Forbidden",
"status": 403,
"detail": "This API token does not carry the `graph` ability this endpoint needs. Nothing was executed and nothing was charged. Create a token with that ability in Settings, API tokens.",
"code": "token_ability_missing",
"required_ability": "graph"
}{
"type": "https://klaracase.de/docs/api/errors#not_found",
"title": "Not Found",
"status": 404,
"detail": "The requested resource does not exist, or it belongs to another organization.",
"code": "not_found"
}{
"type": "https://klaracase.de/docs/api/errors#token_org_missing",
"title": "Conflict",
"status": 409,
"detail": "This API token was created before tokens named an organization, so the API cannot tell which organization it acts for. Create a new token in Settings, API tokens; it acts for the organization you have open.",
"code": "token_org_missing"
}{
"type": "https://klaracase.de/docs/api/errors#validation_failed",
"title": "Unprocessable Content",
"status": 422,
"detail": "The selected direction is invalid.",
"code": "validation_failed",
"errors": {
"direction": [
"The selected direction is invalid."
]
}
}{
"type": "https://klaracase.de/docs/api/errors#rate_limited",
"title": "Too Many Requests",
"status": 429,
"detail": "Too many requests for this token. Wait `retry_after_seconds` and retry. Nothing was executed and nothing was charged.",
"code": "rate_limited",
"retry_after_seconds": 42
}{
"type": "https://klaracase.de/docs/api/errors#backend_unavailable",
"title": "Service Unavailable",
"status": 503,
"detail": "The backend could not complete this call, so nothing was charged. Retry in a few seconds.",
"code": "backend_unavailable"
}Korpus
/api/v1/corpus/coverageParameter
branchordentlichverwaltungsozialarbeitfinanzverfassungpatentunbekanntqueryDen Bericht auf einen Gerichtsbarkeits-Slug einschränken. Eine Gerichtsbarkeit ist eine GERICHTSZUSTÄNDIGKEIT, nie ein Rechtsgebiet: „patent“ ist das Bundespatentgericht. Weglassen, um jede Gerichtsbarkeit zu melden.
topintegerqueryObergrenze für die Zeilen je Gericht, die geschäftigsten zuerst (Standard 20, Maximum 100). Die Zusammenfassung je Gerichtsbarkeit wird nie begrenzt.
Anfrage
curl "https://klaracase.de/api/v1/corpus/coverage" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Accept: application/json"Antworten
{
"total_decisions": {
"value": 100000,
"is_floor": false
},
"branches": [
{
"branch": "ordentlich",
"count": {
"value": 60000,
"is_floor": false
},
"earliest": "1950-10",
"latest": "2026-09",
"court_founding_year": 1950,
"court_founding_basis": "branch_wide_weakest_court_floor",
"has_dates_below_floor": false,
"instance_mix": {
"federal": {
"value": 25000,
"is_floor": false
},
"appellate": {
"value": 20000,
"is_floor": false
},
"first_instance_and_regional": {
"value": 15000,
"is_floor": false
},
"other": {
"value": 0,
"is_floor": false
},
"note": "Instanzmix: 42% Bundesgerichte, 33% Obergerichte, 25% Eingangs- und Landgerichte. …"
},
"top_courts": [
{
"court": "BGH",
"count": {
"value": 25000,
"is_floor": false
},
"earliest": "1950-10",
"latest": "2026-09"
}
]
}
],
"courts": [
{
"court": "BGH",
"branch": "ordentlich",
"count": {
"value": 25000,
"is_floor": false
},
"earliest": "1950-10",
"latest": "2026-09",
"court_founding_year": 1950,
"court_founding_basis": "court_floor",
"has_dates_below_floor": false
}
],
"courts_returned": 20,
"courts_total": 400,
"corpus_floors": "Earliest decision we hold per Gerichtsbarkeit … ordentlich 1950+. …",
"coverage_ranges": {
"note": "The ingestion boundary every `out_of_coverage` verdict is decided against. …",
"scope": "all",
"verified_at": "2026-08-13",
"ranges": [
{
"bucket": "BGH_STRAFRECHT",
"court": "BGH",
"label": "BGH Strafsachen",
"from": "1950-10-02",
"until": null,
"sources": [
"ris"
],
"exhaustive": true,
"ocr": true,
"note": "Strafsenate ab 1950.",
"holdings_earliest": null
}
]
},
"as_of": "2026-10-01T09:58:12+00:00",
"filter_coverage_caveats": "Three known blind spots, all on scanned decisions. …",
"law_coverage": {
"note": "The law texts behind the citation check are German federal statutes, plus the EU and international instruments listed beside this note. …",
"eu": [
"AEUV",
"DSGVO"
],
"international": [
"EMRK"
]
},
"api_version": "0.93.0",
"changelog_url": "https://klaracase.de/docs/mcp/changelog",
"credits": {
"metered": true,
"cost": 0,
"credits_remaining": 30
}
}{
"type": "https://klaracase.de/docs/api/errors#unauthenticated",
"title": "Unauthorized",
"status": 401,
"detail": "Authentication is required. Send a Klaracase API token as a Bearer token.",
"code": "unauthenticated"
}{
"type": "https://klaracase.de/docs/api/errors#token_ability_missing",
"title": "Forbidden",
"status": 403,
"detail": "This API token does not carry the `read` ability this endpoint needs. Nothing was executed and nothing was charged. Create a token with that ability in Settings, API tokens.",
"code": "token_ability_missing",
"required_ability": "read"
}{
"type": "https://klaracase.de/docs/api/errors#token_org_missing",
"title": "Conflict",
"status": 409,
"detail": "This API token was created before tokens named an organization, so the API cannot tell which organization it acts for. Create a new token in Settings, API tokens; it acts for the organization you have open.",
"code": "token_org_missing"
}{
"type": "https://klaracase.de/docs/api/errors#validation_failed",
"title": "Unprocessable Content",
"status": 422,
"detail": "The selected branch is invalid.",
"code": "validation_failed",
"errors": {
"branch": [
"The selected branch is invalid."
]
}
}{
"type": "https://klaracase.de/docs/api/errors#rate_limited",
"title": "Too Many Requests",
"status": 429,
"detail": "Too many requests for this token. Wait `retry_after_seconds` and retry. Nothing was executed and nothing was charged.",
"code": "rate_limited",
"retry_after_seconds": 42
}{
"type": "https://klaracase.de/docs/api/errors#backend_unavailable",
"title": "Service Unavailable",
"status": 503,
"detail": "The backend could not complete this call, so nothing was charged. Retry in a few seconds.",
"code": "backend_unavailable"
}/api/v1/corpus/facets/{field}Parameter
typedecisionlawqueryDie Zählung auf einen Artefakttyp beschränken. Weglassen, um über beide zu zählen. Bei field="cited_norms" ohne Wirkung.
normstringqueryPflicht bei field="cited_norms", sonst ohne Wirkung: die Norm, deren Familie aufgelistet wird, z. B. „§ 543 BGB“. Wird vor der Verwendung kanonisiert und zurückgemeldet.
prefixstringqueryPräfixfilter auf den Facettenwert, ohne Beachtung der Groß-/Kleinschreibung. Ein abschließendes Leerzeichen zählt mit: prefix="AG " schließt „AGH Niedersachsen“ aus, prefix="AG" behält es.
Anfrage
curl "https://klaracase.de/api/v1/corpus/facets/{field}" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Accept: application/json"Antworten
{
"field": "court_name",
"applies_to": "DECISION",
"values": {
"BGH": {
"value": 90000,
"is_floor": false
},
"BVerfG": {
"value": 20000,
"is_floor": false
},
"BVerwG": {
"value": 15000,
"is_floor": false
}
},
"total_values": 3,
"truncated": false,
"value_limit": 500,
"count_basis": "indexed_passages",
"as_of": "2026-10-01T09:40:00+00:00",
"api_version": "0.93.0",
"changelog_url": "https://klaracase.de/docs/mcp/changelog",
"credits": {
"metered": true,
"cost": 0,
"credits_remaining": 30
}
}{
"type": "https://klaracase.de/docs/api/errors#unauthenticated",
"title": "Unauthorized",
"status": 401,
"detail": "Authentication is required. Send a Klaracase API token as a Bearer token.",
"code": "unauthenticated"
}{
"type": "https://klaracase.de/docs/api/errors#token_ability_missing",
"title": "Forbidden",
"status": 403,
"detail": "This API token does not carry the `read` ability this endpoint needs. Nothing was executed and nothing was charged. Create a token with that ability in Settings, API tokens.",
"code": "token_ability_missing",
"required_ability": "read"
}{
"type": "https://klaracase.de/docs/api/errors#token_org_missing",
"title": "Conflict",
"status": 409,
"detail": "This API token was created before tokens named an organization, so the API cannot tell which organization it acts for. Create a new token in Settings, API tokens; it acts for the organization you have open.",
"code": "token_org_missing"
}{
"type": "https://klaracase.de/docs/api/errors#validation_failed",
"title": "Unprocessable Content",
"status": 422,
"detail": "The selected type is invalid.",
"code": "validation_failed",
"errors": {
"type": [
"The selected type is invalid."
]
}
}{
"type": "https://klaracase.de/docs/api/errors#rate_limited",
"title": "Too Many Requests",
"status": 429,
"detail": "Too many requests for this token. Wait `retry_after_seconds` and retry. Nothing was executed and nothing was charged.",
"code": "rate_limited",
"retry_after_seconds": 42
}{
"type": "https://klaracase.de/docs/api/errors#backend_unavailable",
"title": "Service Unavailable",
"status": 503,
"detail": "The backend could not complete this call, so nothing was charged. Retry in a few seconds.",
"code": "backend_unavailable"
}Datenpakete
/api/v1/datapackagesParameter
idsErforderlicharraybody1–10 Entscheidungs-ids. DIE REIHENFOLGE ZÄHLT: Das Antwortbudget verwirft Entscheidungen vom ENDE her. Duplikate werden zu einer Entscheidung zusammengefasst; `requested`, `included` und `deduped` melden das.
include_citationsbooleanbodyDie ausgehenden Verweise jeder Entscheidung einbeziehen (Standard true).
full_textbooleanbodyVollständige Urteile statt Auszügen von ~700 Zeichen liefern (Standard false). Token-intensiv: Bevorzugen Sie Auszüge plus gezielte get_decision-Aufrufe.
max_charsintegerbodyTextobergrenze je Entscheidung, wenn `full_text` true ist (Standard 60000, Minimum 500, Maximum 200000). Eine Obergrenze, keine Zusage: Das Antwortbudget geht vor.
Anfrage
curl -X POST "https://klaracase.de/api/v1/datapackages" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Accept: application/json"Antworten
{
"decisions": [
{
"id": "0193b0c4-5f1e-7a2b-9c3d-4e5f6a7b8c9d",
"aktenzeichen": "1 StR 185/01",
"court": "BGH",
"date": "2001-11-15",
"document_type": "Urteil",
"ecli": "ECLI:DE:BGH:2001:151101U1STR185.01.0",
"jurisdiction": "DE",
"excerpt": "Tenor … Gründe: I. Der Angeklagte war Geschäftsführer …",
"excerpt_span": "document_start",
"text_length": 48213,
"truncated": true,
"fortgeltung_checked": false,
"fortgeltung_note": "Rechtskraft/Fortgeltung (whether a decision is still good law) is NOT checked. A decision returned here may have been quashed or superseded on appeal, and the ABSENCE of any such note is not evidence that it still stands."
}
],
"citation_edges": [
{
"reference_canonical": "BGH 1 StR 50/15",
"reference_role": "leitentscheidung",
"resolution_status": "resolved",
"in_corpus": true,
"corpus": {
"artifact_id": "0193b0c4-6a2d-7c4e-8f10-2b3c4d5e6f70",
"court": "BGH",
"date": "2015-03-12",
"az": "1 StR 50/15",
"document_type": "Urteil",
"ecli": null,
"corpus_url": "https://klaracase.de/decisions/0193b0c4-6a2d-7c4e-8f10-2b3c4d5e6f70"
},
"from_artifact_id": "0193b0c4-5f1e-7a2b-9c3d-4e5f6a7b8c9d"
}
],
"edge_accounting": [
{
"from_artifact_id": "0193b0c4-5f1e-7a2b-9c3d-4e5f6a7b8c9d",
"unit": "edge_rows",
"edges_total": 1,
"edges_included": 1,
"edges_resolved_included": 1,
"edges_unresolved_included": 0,
"edges_resolved_total": 1,
"edges_unresolved_total": 0,
"targets_resolved_included": 1,
"targets_resolved_total": 1
}
],
"per_source_resolved_target_cap": 25,
"per_source_unresolved_edge_row_cap": 25,
"requested": 1,
"included": 1,
"deduped": 0,
"text_mode": "excerpt",
"max_chars": 700,
"truncated": false,
"payload_truncated": false,
"assembled_at": "2026-10-01T10:00:00+00:00",
"api_version": "0.93.0",
"changelog_url": "https://klaracase.de/docs/mcp/changelog",
"credits": {
"metered": true,
"cost": 5,
"credits_remaining": 20
}
}{
"type": "https://klaracase.de/docs/api/errors#unauthenticated",
"title": "Unauthorized",
"status": 401,
"detail": "Authentication is required. Send a Klaracase API token as a Bearer token.",
"code": "unauthenticated"
}{
"type": "https://klaracase.de/docs/api/errors#insufficient_credits",
"title": "Payment Required",
"status": 402,
"detail": "Insufficient credits: this call costs 5 credit(s), but organization \"Kanzlei Beispiel\" has 0 remaining this month. Credits renew automatically at the start of each calendar month (UTC). Ask your organization admin to raise the allotment, or retry next month.",
"code": "insufficient_credits",
"cost": 5,
"balance": 0
}{
"type": "https://klaracase.de/docs/api/errors#token_ability_missing",
"title": "Forbidden",
"status": 403,
"detail": "This API token does not carry the `datapackage` ability this endpoint needs. Nothing was executed and nothing was charged. Create a token with that ability in Settings, API tokens.",
"code": "token_ability_missing",
"required_ability": "datapackage"
}{
"type": "https://klaracase.de/docs/api/errors#token_org_missing",
"title": "Conflict",
"status": 409,
"detail": "This API token was created before tokens named an organization, so the API cannot tell which organization it acts for. Create a new token in Settings, API tokens; it acts for the organization you have open.",
"code": "token_org_missing"
}{
"type": "https://klaracase.de/docs/api/errors#validation_failed",
"title": "Unprocessable Content",
"status": 422,
"detail": "The selected ids is invalid.",
"code": "validation_failed",
"errors": {
"ids": [
"The selected ids is invalid."
]
}
}{
"type": "https://klaracase.de/docs/api/errors#rate_limited",
"title": "Too Many Requests",
"status": 429,
"detail": "Too many requests for this token. Wait `retry_after_seconds` and retry. Nothing was executed and nothing was charged.",
"code": "rate_limited",
"retry_after_seconds": 42
}{
"type": "https://klaracase.de/docs/api/errors#backend_unavailable",
"title": "Service Unavailable",
"status": 503,
"detail": "The backend could not complete this call, so nothing was charged. Retry in a few seconds.",
"code": "backend_unavailable"
}Entscheidungen
/api/v1/decisions/{id}Parameter
max_charsintegerqueryMaximale Zeichenzahl des zurückzugebenden Textes (Standard 40000, Minimum 500).
rn_fromintegerqueryOptionaler Bereichsanfang: die erste zurückzugebende Randnummer. Es kommen ganze Abschnitte zurück, lesen Sie die gelieferte Spanne daher an `returned_range` ab.
rn_tointegerqueryOptionales Bereichsende: die höchste zurückzugebende Randnummer (einschließlich). Muss >= rn_from sein.
sectionstringqueryOptionaler benannter Abschnitt statt des ganzen Textes. Einer von: Tenor, Leitsatz, Tatbestand, Gründe (ohne Beachtung der Groß-/Kleinschreibung). Prüfen Sie `available_sections`, bevor Sie fragen.
courtstringqueryOptionales Unterscheidungsmerkmal für ein Aktenzeichen als `id`: die Gerichts-Kurzform, z. B. „BGH“. Wird als wortweises Präfix abgeglichen. Bei UUID-Abfragen ohne Wirkung.
datestringqueryOptionales Unterscheidungsmerkmal für ein Aktenzeichen als `id`: das Entscheidungsdatum im Format YYYY-MM-DD.
Anfrage
curl "https://klaracase.de/api/v1/decisions/{id}" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Accept: application/json"Antworten
{
"id": "0193b0c4-5f1e-7a2b-9c3d-4e5f6a7b8c9d",
"aktenzeichen": "1 StR 185/01",
"court": "BGH",
"date": "2001-11-15",
"jurisdiction": "DE",
"metadata": {
"document_type": "Urteil",
"ecli": "ECLI:DE:BGH:2001:151101U1STR185.01.0",
"file_numbers": [
"1 StR 185/01"
]
},
"fortgeltung_checked": false,
"fortgeltung_note": "Rechtskraft/Fortgeltung (whether a decision is still good law) is NOT checked. A decision returned here may have been quashed or superseded on appeal, and the ABSENCE of any such note is not evidence that it still stands.",
"full_text": "Tenor … Gründe: I. … 21 Die Revision ist unbegründet …",
"text_length": 48213,
"truncated": true,
"rn_source": "printed",
"rn_source_note": "The Randnummern are the court's own printed numbers.",
"available_sections": [
"Tenor",
"Gründe"
],
"available_range": {
"rn_from": 1,
"rn_to": 64,
"rn_source": "printed"
},
"available_range_scope": "decision",
"has_rn_anchors": true,
"api_version": "0.93.0",
"changelog_url": "https://klaracase.de/docs/mcp/changelog",
"credits": {
"metered": true,
"cost": 1,
"credits_remaining": 27
}
}{
"type": "https://klaracase.de/docs/api/errors#unauthenticated",
"title": "Unauthorized",
"status": 401,
"detail": "Authentication is required. Send a Klaracase API token as a Bearer token.",
"code": "unauthenticated"
}{
"type": "https://klaracase.de/docs/api/errors#insufficient_credits",
"title": "Payment Required",
"status": 402,
"detail": "Insufficient credits: this call costs 1 credit(s), but organization \"Kanzlei Beispiel\" has 0 remaining this month. Credits renew automatically at the start of each calendar month (UTC). Ask your organization admin to raise the allotment, or retry next month.",
"code": "insufficient_credits",
"cost": 1,
"balance": 0
}{
"type": "https://klaracase.de/docs/api/errors#token_ability_missing",
"title": "Forbidden",
"status": 403,
"detail": "This API token does not carry the `read` ability this endpoint needs. Nothing was executed and nothing was charged. Create a token with that ability in Settings, API tokens.",
"code": "token_ability_missing",
"required_ability": "read"
}{
"type": "https://klaracase.de/docs/api/errors#not_found",
"title": "Not Found",
"status": 404,
"detail": "The requested resource does not exist, or it belongs to another organization.",
"code": "not_found"
}{
"type": "https://klaracase.de/docs/api/errors#token_org_missing",
"title": "Conflict",
"status": 409,
"detail": "This API token was created before tokens named an organization, so the API cannot tell which organization it acts for. Create a new token in Settings, API tokens; it acts for the organization you have open.",
"code": "token_org_missing"
}{
"type": "https://klaracase.de/docs/api/errors#validation_failed",
"title": "Unprocessable Content",
"status": 422,
"detail": "The selected max_chars is invalid.",
"code": "validation_failed",
"errors": {
"max_chars": [
"The selected max_chars is invalid."
]
}
}{
"type": "https://klaracase.de/docs/api/errors#rate_limited",
"title": "Too Many Requests",
"status": 429,
"detail": "Too many requests for this token. Wait `retry_after_seconds` and retry. Nothing was executed and nothing was charged.",
"code": "rate_limited",
"retry_after_seconds": 42
}{
"type": "https://klaracase.de/docs/api/errors#backend_unavailable",
"title": "Service Unavailable",
"status": 503,
"detail": "The backend could not complete this call, so nothing was charged. Retry in a few seconds.",
"code": "backend_unavailable"
}Suche
/api/v1/decisions/searchParameter
queryErforderlichstringquerySuchanfrage in deutscher rechtsbegrifflicher Formulierung, z. B. „Widerrufsrecht Fernabsatzvertrag Wertersatz Verbraucher“. 2–500 Zeichen; längere Eingaben werden ABGELEHNT.
courtstringqueryFilter auf den indexierten Gerichtsnamen. Dieses Vokabular ist GEMISCHT und geht bis auf die Senatsebene, übergeben Sie daher das Gericht, nicht den Senat; nutzen Sie list_facets(field="court_name").
branchordentlichverwaltungsozialarbeitfinanzverfassungpatentunbekanntqueryFilter nach Gerichtsbarkeit. Sie benennt die GERICHTSZUSTÄNDIGKEIT, die entschieden hat, NIE das Rechtsgebiet. „patent“ ist allein das Bundespatentgericht: Patententscheidungen des BGH liegen unter „ordentlich“.
document_typeUrteilBeschlussVerfügungSonstigeGerichtsbescheidSchlussanträgequeryAuf einen Dokumenttyp der Entscheidung beschränken; list_facets liefert die Zahlen dazu.
cited_normstringqueryAuf Entscheidungen beschränken, deren extrahierte Normenkette dieses Gesetz zitiert, z. B. „§ 906 BGB“. Ein kanonisches §-Token; Untergliederungen sind eingeschlossen („§ 823 BGB“ trifft „§ 823 Abs. 1 BGB“).
date_fromstringqueryFrühestes Entscheidungsdatum, einschließlich, im Format YYYY-MM-DD (z. B. „2015-01-01“). GENAUIGKEITS-VORBEHALT: Eine gescannte Entscheidung kann ein FALSCHES gespeichertes Datum tragen; siehe `date_source`/`date_confidence`.
date_tostringquerySpätestes Entscheidungsdatum, einschließlich, im Format YYYY-MM-DD (z. B. „2020-12-31“), nicht früher als date_from. GENAUIGKEITS-VORBEHALT: Eine gescannte Entscheidung kann ein FALSCHES gespeichertes Datum tragen; siehe `date_source`/`date_confidence`.
modekeywordsemantichybridqueryAbrufmodus. „hybrid“ (Standard) verbindet semantisch und Keyword. „keyword“ verlangt ALLE Abfragebegriffe zugleich und wird nicht neu gerankt; eine Abfrage, die durchgehend ein Zitat ist („§ 550a BGB“, „VIII ZR 311/02“), wird GENAU abgeglichen, ohne Tippfehlertoleranz, sodass eine ähnliche Nummer sie nicht beantworten kann. „semantic“ ist reine Vektorsuche. Nicht gesetzt heißt nicht garantiert hybrid: Ein genauer Bezeichner wird automatisch als keyword eingestuft.
limitintegerqueryMaximale Ergebnisse. Standard 20, was zugleich die harte Obergrenze ist, daher kann dies das Fenster nur verkleinern.
pageintegerquery1-basierte Seitenzahl, Standard 1, Maximum 10, für Ergebnisse jenseits der ersten Seite, wenn `candidate_pool` größer als `limit` ist.
bridgebooleanqueryOb der Server vor dem Abruf kuratierte deutsche Rechtsregister-Begriffe HINZUFÜGEN darf (Standard true); das Ergebnis steht in `query_expansion`.
Anfrage
curl "https://klaracase.de/api/v1/decisions/search" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Accept: application/json"Antworten
{
"results": [
{
"id": "0193b0c4-5f1e-7a2b-9c3d-4e5f6a7b8c9d",
"aktenzeichen": "1 StR 185/01",
"court": "BGH",
"date": "2001-11-15",
"document_type": "Urteil",
"title": "BGH, Urteil vom 15.11.2001",
"snippet": "… die <mark>Vermögensbetreuungspflicht</mark> des Geschäftsführers …",
"snippets": [
{
"text": "… die <mark>Vermögensbetreuungspflicht</mark> des Geschäftsführers …",
"rn": 21
}
],
"chunk_title": "Gründe",
"rn_range": "21-23",
"fundstelle": null,
"fortgeltung_checked": false,
"fortgeltung_note": "Rechtskraft/Fortgeltung (whether a decision is still good law) is NOT checked. A decision returned here may have been quashed or superseded on appeal, and the ABSENCE of any such note is not evidence that it still stands.",
"confidence": "high"
}
],
"payload_truncated": false,
"total_available": {
"value": 42,
"is_floor": false
},
"total_available_basis": "matching_indexed_passages_lexical_arm",
"candidate_pool": 42,
"pool_exhaustive": false,
"truncated": true,
"page": 1,
"limit": 20,
"mode": "hybrid",
"frequently_cited_by_results": [],
"query_expansion": {
"status": "abstained",
"applied": false,
"reason": "no_lay_term",
"note": "Nothing was added to your query: it was retrieved exactly as you typed it. …"
},
"api_version": "0.93.0",
"changelog_url": "https://klaracase.de/docs/mcp/changelog",
"credits": {
"metered": true,
"cost": 1,
"credits_remaining": 29
},
"top_confidence": "high"
}{
"type": "https://klaracase.de/docs/api/errors#unauthenticated",
"title": "Unauthorized",
"status": 401,
"detail": "Authentication is required. Send a Klaracase API token as a Bearer token.",
"code": "unauthenticated"
}{
"type": "https://klaracase.de/docs/api/errors#insufficient_credits",
"title": "Payment Required",
"status": 402,
"detail": "Insufficient credits: this call costs 1 credit(s), but organization \"Kanzlei Beispiel\" has 0 remaining this month. Credits renew automatically at the start of each calendar month (UTC). Ask your organization admin to raise the allotment, or retry next month.",
"code": "insufficient_credits",
"cost": 1,
"balance": 0
}{
"type": "https://klaracase.de/docs/api/errors#token_ability_missing",
"title": "Forbidden",
"status": 403,
"detail": "This API token does not carry the `search` ability this endpoint needs. Nothing was executed and nothing was charged. Create a token with that ability in Settings, API tokens.",
"code": "token_ability_missing",
"required_ability": "search"
}{
"type": "https://klaracase.de/docs/api/errors#token_org_missing",
"title": "Conflict",
"status": 409,
"detail": "This API token was created before tokens named an organization, so the API cannot tell which organization it acts for. Create a new token in Settings, API tokens; it acts for the organization you have open.",
"code": "token_org_missing"
}{
"type": "https://klaracase.de/docs/api/errors#validation_failed",
"title": "Unprocessable Content",
"status": 422,
"detail": "The selected query is invalid.",
"code": "validation_failed",
"errors": {
"query": [
"The selected query is invalid."
]
}
}{
"type": "https://klaracase.de/docs/api/errors#rate_limited",
"title": "Too Many Requests",
"status": 429,
"detail": "Too many requests for this token. Wait `retry_after_seconds` and retry. Nothing was executed and nothing was charged.",
"code": "rate_limited",
"retry_after_seconds": 42
}{
"type": "https://klaracase.de/docs/api/errors#backend_unavailable",
"title": "Service Unavailable",
"status": 503,
"detail": "The backend could not complete this call, so nothing was charged. Retry in a few seconds.",
"code": "backend_unavailable"
}/api/v1/searchParameter
queryErforderlichstringquerySuchanfrage in deutscher rechtsbegrifflicher Formulierung, z. B. „Widerrufsrecht Fernabsatzvertrag Wertersatz Verbraucher“. 2–500 Zeichen; längere Eingaben werden ABGELEHNT, nicht gekürzt.
jurisdictionstringqueryRechtsraum-Code. Er schränkt NUR die Gesetzes-Sektion ein, denn keine Entscheidung trägt dieses Feld; er leert daher nie `sections.decisions`, und `filters_applied_sections.jurisdiction` sagt das. Werte `DE`, `EU` (Unionsrecht und die Verträge) und `XI` (völkerrechtlich); Zahlen dazu über list_facets.
courtstringqueryFilter nach Gerichtsname auf der Entscheidungs-Sektion, kanonische deutsche Kurzform, z. B. „BGH“.
branchordentlichverwaltungsozialarbeitfinanzverfassungpatentunbekanntqueryGerichtsbarkeit: Sie benennt die GERICHTSZUSTÄNDIGKEIT, die entschieden hat, NIE das Rechtsgebiet. „patent“ ist das Bundespatentgericht, und Patententscheidungen des BGH liegen unter „ordentlich“.
date_fromstringqueryFrühestes Entscheidungsdatum, einschließlich, im Format YYYY-MM-DD.
date_tostringquerySpätestes Entscheidungsdatum, einschließlich, im Format YYYY-MM-DD, NICHT früher als date_from.
modekeywordsemantichybridqueryAbrufmodus. „hybrid“ (Standard) verbindet semantisch und Keyword; „keyword“ wird nicht neu gerankt; „semantic“ ist reine Vektorsuche.
document_typeUrteilBeschlussVerfügungSonstigeGerichtsbescheidSchlussanträgequeryDie Entscheidungs-Sektion auf einen Dokumenttyp beschränken.
cited_normstringqueryDie Entscheidungs-Sektion auf Entscheidungen beschränken, deren EXTRAHIERTE Normenkette dieses Gesetz zitiert, z. B. „§ 906 BGB“. Wird kanonisiert, und Untergliederungen sind eingeschlossen.
limitintegerqueryMaximale Ergebnisse JE Sektion (Standard 5, serverseitig hart auf 10 begrenzt).
bridgebooleanqueryOb der Server vor dem Abruf Begriffe HINZUFÜGEN darf (Standard true). Das umfasst jede serverseitige Ergänzung Ihrer Abfrage, `query_expansion` eingeschlossen. Übergeben Sie false, um Ihre wörtliche Abfrage zu suchen; dann wird nichts hinzugefügt.
Anfrage
curl "https://klaracase.de/api/v1/search" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Accept: application/json"Antworten
{
"sections": {
"laws": [
{
"id": "0193b0c4-8c4f-7e60-ab32-4d5e6f7a8b92",
"artifact_type": "LAW",
"aktenzeichen": null,
"court": null,
"date": null,
"document_type": null,
"title": "§ 266 StGB Untreue",
"snippet": "… <mark>Vermögensbetreuungspflicht</mark> …",
"snippets": [
{
"text": "… <mark>Vermögensbetreuungspflicht</mark> …"
}
],
"chunk_title": null,
"rn_range": null,
"fundstelle": null,
"breadcrumb": null,
"abbreviation": "StGB",
"law_type": "Gesetz",
"jurisdiction": "DE",
"confidence": "high"
}
],
"decisions": [
{
"id": "0193b0c4-5f1e-7a2b-9c3d-4e5f6a7b8c9d",
"artifact_type": "DECISION",
"aktenzeichen": "1 StR 185/01",
"court": "BGH",
"date": "2001-11-15",
"document_type": "Urteil",
"title": "BGH, Urteil vom 15.11.2001",
"snippet": "… <mark>Vermögensbetreuungspflicht</mark> …",
"snippets": [
{
"text": "… <mark>Vermögensbetreuungspflicht</mark> …",
"rn": 21
}
],
"chunk_title": "Gründe",
"rn_range": "21-23",
"fundstelle": null,
"fortgeltung_checked": false,
"fortgeltung_note": "Rechtskraft/Fortgeltung (whether a decision is still good law) is NOT checked. A decision returned here may have been quashed or superseded on appeal, and the ABSENCE of any such note is not evidence that it still stands.",
"confidence": "medium"
}
]
},
"section_totals": {
"laws": {
"total_available": {
"value": 3,
"is_floor": false
},
"total_available_basis": "matching_indexed_passages_lexical_arm",
"candidate_pool": 3,
"pool_exhaustive": true,
"truncated": false
},
"decisions": {
"total_available": {
"value": 7,
"is_floor": false
},
"total_available_basis": "matching_indexed_passages_lexical_arm",
"candidate_pool": 7,
"pool_exhaustive": true,
"truncated": true
}
},
"limit": 5,
"total_available": {
"value": 10,
"is_floor": false
},
"total_available_basis": "matching_indexed_passages_lexical_arm",
"pool_exhaustive": true,
"truncated": true,
"mode": "hybrid",
"query_expansion": {
"status": "abstained",
"applied": false,
"reason": "no_lay_term",
"note": "Nothing was added to your query: it was retrieved exactly as you typed it. …"
},
"frequently_cited_by_results": [],
"norms_cited_by_decision_results": [],
"api_version": "0.93.0",
"changelog_url": "https://klaracase.de/docs/mcp/changelog",
"credits": {
"metered": true,
"cost": 1,
"credits_remaining": 28
},
"top_confidence": "high"
}{
"type": "https://klaracase.de/docs/api/errors#unauthenticated",
"title": "Unauthorized",
"status": 401,
"detail": "Authentication is required. Send a Klaracase API token as a Bearer token.",
"code": "unauthenticated"
}{
"type": "https://klaracase.de/docs/api/errors#insufficient_credits",
"title": "Payment Required",
"status": 402,
"detail": "Insufficient credits: this call costs 1 credit(s), but organization \"Kanzlei Beispiel\" has 0 remaining this month. Credits renew automatically at the start of each calendar month (UTC). Ask your organization admin to raise the allotment, or retry next month.",
"code": "insufficient_credits",
"cost": 1,
"balance": 0
}{
"type": "https://klaracase.de/docs/api/errors#token_ability_missing",
"title": "Forbidden",
"status": 403,
"detail": "This API token does not carry the `search` ability this endpoint needs. Nothing was executed and nothing was charged. Create a token with that ability in Settings, API tokens.",
"code": "token_ability_missing",
"required_ability": "search"
}{
"type": "https://klaracase.de/docs/api/errors#token_org_missing",
"title": "Conflict",
"status": 409,
"detail": "This API token was created before tokens named an organization, so the API cannot tell which organization it acts for. Create a new token in Settings, API tokens; it acts for the organization you have open.",
"code": "token_org_missing"
}{
"type": "https://klaracase.de/docs/api/errors#validation_failed",
"title": "Unprocessable Content",
"status": 422,
"detail": "The selected query is invalid.",
"code": "validation_failed",
"errors": {
"query": [
"The selected query is invalid."
]
}
}{
"type": "https://klaracase.de/docs/api/errors#rate_limited",
"title": "Too Many Requests",
"status": 429,
"detail": "Too many requests for this token. Wait `retry_after_seconds` and retry. Nothing was executed and nothing was charged.",
"code": "rate_limited",
"retry_after_seconds": 42
}{
"type": "https://klaracase.de/docs/api/errors#backend_unavailable",
"title": "Service Unavailable",
"status": 503,
"detail": "The backend could not complete this call, so nothing was charged. Retry in a few seconds.",
"code": "backend_unavailable"
}Auf dieser Seite