Court Decisions MCP + API avatar

Court Decisions MCP + API

Pricing

from $10.00 / 1,000 searches

Go to Apify Store
Court Decisions MCP + API

Court Decisions MCP + API

Connect your AI agent to court decisions from Germany, Austria, and the EU via MCP Server – or run as Apify Actor. Search by keyword, ECLI, court, source, or date. Structured JSON from official open data APIs (NeuRIS, RIS OGD, EUR-Lex). No API key needed.

Pricing

from $10.00 / 1,000 searches

Rating

0.0

(0)

Developer

Matthias Nitsch

Matthias Nitsch

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

3

Monthly active users

a day ago

Last modified

Share

What is Court Decisions MCP + API?

This Actor gives you programmatic access to court decisions from Germany, Austria, and the EU — from official open data APIs. Currently covering 115,000+ decisions from 14 courts across three jurisdictions.

SourceCountryCourtsAPI
NeuRISGermany7 federal courts (BGH, BVerfG, etc.)REST/JSON
RIS OGDAustria5 supreme/federal courts (OGH, VwGH, etc.)SOAP/XML
EUR-Lex/CELLAREU2 courts (CJEU, General Court)SPARQL

Use it three ways: as a REST API for direct HTTP access, as an MCP Server for AI agents (Claude Desktop, Cursor), or as a standard Apify Actor to search, filter, and export case law in structured JSON.

No API key required. No scraping. Official public API access. One unified schema across all sources.

🚀 Get Started in 3 Minutes

Option A: MCP Server — Add this to your MCP client config (e.g., claude_desktop_config.json):

{
"mcpServers": {
"court-decisions": {
"url": "https://<your-username>--court-decisions.apify.actor/mcp"
}
}
}

Then ask your AI agent: "Find recent BGH decisions about data privacy", "Search Austrian OGH rulings on tenant law", or "Find CJEU judgments on consumer protection"

Option B: REST API — Call the endpoints directly from any HTTP client:

# Search decisions
curl "https://<your-username>--court-decisions.apify.actor/api/search?query=Datenschutz&source=neuris"
# Get a specific decision by ECLI
curl "https://<your-username>--court-decisions.apify.actor/api/decisions/ECLI:DE:BGH:2024:120324UVIZR234.23.0"
# List available courts
curl "https://<your-username>--court-decisions.apify.actor/api/courts?jurisdiction=DE"

Option C: Apify Actor — Click Try for free above. No credit card required.

  1. Choose an action: Search, Get by ECLI, or List Courts
  2. Configure your parameters (optionally filter by source: neuris, ris-ogd, or eur-lex)
  3. Run and download results from the Dataset tab (JSON, CSV, Excel)

🔍 What Can This Actor Do?

REST API

  • 3 JSON endpoints: /api/search, /api/decisions/{ecli}, /api/courts
  • Standard HTTP GET requests — works with curl, Python requests, any HTTP client
  • Interactive API documentation in the Standby tab (OpenAPI 3.0)
  • No special client library needed

MCP Server for AI Agents

  • Connect to Claude Desktop, Cursor, or any MCP-compatible client
  • 3 structured tools: search_decisions, get_decision_by_ecli, list_courts
  • AI-optimized response format with prioritized fields
  • The only MCP server for European case law on Apify

Multi-Source Search

  • Search across Germany, Austria, and the EU in a single query — or filter by source
  • Retrieve individual decisions by ECLI identifier (automatic routing by jurisdiction)
  • Filter by court, date range, and source
  • Paginated results with configurable page size

Structured Output

  • Normalized ECLI-based data model — consistent across all sources
  • Full decision text, headnotes, guiding principles (Leitsaetze), operative part (Tenor)
  • Court metadata, file numbers, keywords
  • Every result includes a source field identifying the data origin
  • Export as JSON, CSV, or Excel via Apify Dataset

Reliability

  • Built-in caching (7-day TTL) for faster repeated access
  • Automatic retry with progressive backoff per source
  • Source-specific rate limit compliance (transparent throttling)
  • Partial failure handling: if one source is down, results from other sources are still returned
  • Clear warnings when a source is temporarily unavailable

👥 Who Is This For?

AI Agent Developers — Give your legal AI agent direct access to case law across jurisdictions. Use the MCP Server to let Claude, GPT, or custom agents search and cite court decisions in real time. Build RAG pipelines for legal research, compliance monitoring, or document analysis.

Legal-Tech Startups — Build legal research tools, compliance checks, or case law databases on top of structured, normalized data covering the DACH region. Use the REST API for direct integration — no special client library required. Pay-per-use pricing instead of expensive subscriptions.

Legal Researchers — Run systematic searches across courts in multiple countries. Export datasets for empirical legal studies, comparative law research, citation analysis, or NLP projects.

Compliance Officers — Monitor new court decisions relevant to your regulatory domain across Germany and Austria. Example: Track GDPR rulings from BGH and OGH by searching for "Datenschutz".

🔌 How Do I Connect as MCP Server?

Add this to your MCP client configuration:

{
"mcpServers": {
"court-decisions": {
"url": "https://<your-username>--court-decisions.apify.actor/mcp"
}
}
}

Example Prompts

Try these with your AI agent:

  • "Find recent BGH decisions about data privacy (Datenschutz)" → Agent calls search_decisions with query "Datenschutz" and court filter "BGH"

  • "Search Austrian OGH rulings on tenant law from 2024" → Agent calls search_decisions with query "Mietrecht", source "ris-ogd", dateFrom "2024-01-01"

  • "Show me the full text of ECLI:DE:BGH:2024:120324UVIZR234.23.0" → Agent calls get_decision_by_ecli — automatically routes to NeuRIS based on the ECLI country code

  • "Find CJEU judgments on consumer protection from 2024" → Agent calls search_decisions with query "consumer protection", source "eur-lex", dateFrom "2024-01-01"

  • "Show me the full text of ECLI:EU:C:2024:123" → Agent calls get_decision_by_ecli — automatically routes to EUR-Lex based on the ECLI country code

  • "Compare how German, Austrian, and EU courts handle data protection claims" → Agent searches all three sources, retrieves decisions from BGH, OGH, and CJEU, synthesizes findings

  • "Which courts are available?" → Agent calls list_courts and returns courts from all jurisdictions with source attribution

MCP Tool Reference

The MCP server exposes these 3 tools:

search_decisions

Search court decisions by keyword. Covers German federal courts (NeuRIS), Austrian courts (RIS), and EU courts including EuGH and EuG (EUR-Lex).

ParameterTypeRequiredDefaultDescription
querystringYesSearch query (e.g. "Kuendigungsschutz", "Verbraucherschutz")
courtstringNoCourt abbreviation (e.g. BGH, BVerfG, BFH, BAG, BVerwG, BSG, EuGH, EuG, OGH)
dateFromstringNoDecisions from date (YYYY-MM-DD)
dateTostringNoDecisions until date (YYYY-MM-DD)
limitnumberNo50Max results (1–300)
sourcestringNoData source filter: neuris (Germany), ris-ogd (Austria), eur-lex (EU)

Returns: SearchResult

FieldTypeDescription
itemsCourtDecisionSummary[]Array of matching decisions
totalItemsnumberTotal number of matching results
pageIndexnumberCurrent page index
pageSizenumberNumber of items per page
hasMorebooleanWhether more results are available
warningsstring[]Optional — source availability warnings

Each CourtDecisionSummary contains: ecli, source, court (name + abbreviation), date, fileNumber, decisionType, and optional headline and guidingPrinciple.

get_decision_by_ecli

Retrieve a single court decision by its ECLI identifier. Supports German (ECLI:DE:...), Austrian (ECLI:AT:...), and EU court decisions (ECLI:EU:...).

ParameterTypeRequiredDefaultDescription
eclistringYesECLI identifier (e.g. "ECLI:DE:BGH:2024:120324UVIZR234.23.0")

Returns: CourtDecision

FieldTypeDescription
eclistringEuropean Case Law Identifier
sourcestringData origin: neuris, ris-ogd, or eur-lex
courtobjectCourt name and abbreviation
datestringDecision date
fileNumberstringCourt file number
decisionTypestringType of decision (e.g. Urteil, Beschluss)
guidingPrinciplestringKey legal principle (Leitsatz)
tenorstringOperative part of the decision
groundsstringFull reasoning of the court
retrievedAtstringTimestamp when the decision was fetched

Additional optional fields: sourceId, fileNumbers, judicialBody, decisionName, keywords, language, headline, headnote, caseFacts, dissentingOpinion, outline, sourceUrl.

list_courts

List available courts with decision counts. Includes German federal courts (NeuRIS), Austrian courts (RIS), and EU courts (EUR-Lex: EuGH, EuG).

ParameterTypeRequiredDefaultDescription
jurisdictionstringNoFilter by jurisdiction: DE, AT, or EU

Returns: Court[]

FieldTypeDescription
idstringCourt identifier
namestringFull court name
sourcestringData source (neuris, ris-ogd, eur-lex)
decisionCountnumberNumber of available decisions
jurisdictionstringJurisdiction code (DE, AT, EU)

🌐 How Do I Use the REST API?

The REST API is available when the Actor runs in Standby mode. Three endpoints return JSON:

Endpoints

MethodPathDescription
GET/api/search?query=...Search decisions by keyword, court, date, source
GET/api/decisions/{ecli}Retrieve a single decision by ECLI
GET/api/courtsList available courts (optionally filter by jurisdiction)

Search Parameters

ParameterRequiredDescription
queryYesFull-text search term (e.g., "Datenschutz")
courtNoCourt abbreviation (e.g., BGH, OGH, EuGH)
dateFromNoStart date (YYYY-MM-DD)
dateToNoEnd date (YYYY-MM-DD)
limitNoMax results (1-300, default 50)
sourceNoFilter by source: neuris, ris-ogd, or eur-lex

Examples

# Search German BGH decisions about data privacy
curl "https://<your-username>--court-decisions.apify.actor/api/search?query=Datenschutz&court=BGH"
# Get a decision by ECLI (automatic source routing)
curl "https://<your-username>--court-decisions.apify.actor/api/decisions/ECLI:DE:BGH:2024:120324UVIZR234.23.0"
# List Austrian courts
curl "https://<your-username>--court-decisions.apify.actor/api/courts?jurisdiction=AT"

Browse the interactive API documentation in the Standby tab above — it shows all endpoints, parameters, and response schemas.

▶️ How Do I Run as Apify Actor?

  1. Click Try for free on this page — no credit card required
  2. Choose an action: Search, Get by ECLI, or List Courts
  3. Configure your parameters (see Input Parameters below)
  4. Run the Actor
  5. Download results from the Dataset tab (JSON, CSV, Excel)

Input Parameters

ParameterTypeDefaultDescription
actionstringsearchAction to perform: search, getByEcli, or listCourts
querystringFull-text search term (e.g., "Datenschutz", "Mietrecht")
courtstringCourt abbreviation (e.g., BGH, BVerfG, OGH, VwGH)
sourcestringFilter by data source: neuris (Germany), ris-ogd (Austria), or eur-lex (EU). Omit to search all.
dateFromstringStart date (ISO format, e.g., "2024-01-01")
dateTostringEnd date (ISO format, e.g., "2024-12-31")
eclistringECLI identifier for direct lookup (routed automatically by country code)
limitnumber50Maximum results per page (max 300)

Input Example

{
"action": "search",
"query": "Datenschutz",
"source": "neuris",
"dateFrom": "2024-01-01",
"limit": 50
}

📋 What Data Can I Extract?

Each court decision includes the following fields — consistent across all sources:

FieldDescription
ecliEuropean Case Law Identifier — unique ID across all EU courts
sourceData origin: neuris (Germany), ris-ogd (Austria), or eur-lex (EU)
courtCourt name and abbreviation (e.g., BGH, OGH)
dateDecision date
fileNumberCourt file number (Aktenzeichen / Geschaeftszahl)
decisionTypeType: Urteil/Beschluss (DE) or Erkenntnis/Beschluss (AT)
headlineShort summary of the case
guidingPrincipleKey legal principle (Leitsatz / Rechtssatz)
headnoteEditorial headnote summarizing the ruling
tenorOperative part — the actual order or judgment
groundsFull reasoning of the court
keywordsLegal keywords and topics

Output Example (Germany)

{
"ecli": "ECLI:DE:BGH:2024:120324UVIZR234.23.0",
"sourceId": "KARE600050824",
"source": "neuris",
"court": { "name": "Bundesgerichtshof", "abbreviation": "BGH" },
"date": "2024-03-12",
"fileNumber": "VI ZR 234/23",
"decisionType": "Urteil",
"headline": "Zum Anspruch auf immateriellen Schadensersatz ...",
"guidingPrinciple": "Ein Verstoß gegen die DSGVO ...",
"tenor": "Die Revision des Klägers wird zurückgewiesen ...",
"grounds": "I. Der Kläger nimmt die Beklagte auf Zahlung ...",
"keywords": ["Datenschutz", "DSGVO", "Schadensersatz"],
"retrievedAt": "2026-04-06T10:30:00.000Z"
}

Output Example (Austria)

{
"ecli": "ECLI:AT:OGH0002:2024:0010OB00045.24Z.0319.000",
"sourceId": "JJT_20240319_OGH0002_0010OB00045_24Z0000_000",
"source": "ris-ogd",
"court": { "name": "Oberster Gerichtshof", "abbreviation": "OGH" },
"date": "2024-03-19",
"fileNumber": "1 Ob 45/24z",
"decisionType": "Beschluss",
"headline": "Mietrecht — Kuendigung ...",
"grounds": "Der Revisionsrekurs ist zulässig ...",
"keywords": ["Mietrecht", "Kuendigung"],
"retrievedAt": "2026-04-06T10:31:00.000Z"
}

🏛️ Which Courts Are Covered?

🇩🇪 Germany — 7 Federal Courts (via NeuRIS)

CourtAbbreviationLegal Domain
BundesgerichtshofBGHCivil and criminal law
BundesverfassungsgerichtBVerfGConstitutional law
BundesverwaltungsgerichtBVerwGAdministrative law
BundesfinanzhofBFHTax law
BundesarbeitsgerichtBAGLabor law
BundessozialgerichtBSGSocial law
BundespatentgerichtBPatGPatent law

🇦🇹 Austria — 5 Supreme/Federal Courts (via RIS OGD)

CourtAbbreviationLegal Domain
Oberster GerichtshofOGHCivil and criminal law
VerwaltungsgerichtshofVwGHAdministrative law
VerfassungsgerichtshofVfGHConstitutional law
BundesverwaltungsgerichtBVwGAdministrative law
BundesfinanzgerichtBFGTax and fiscal law

🇪🇺 EU — 2 Courts (via EUR-Lex/CELLAR)

CourtAbbreviationLegal Domain
Court of Justice of the EUEuGH (CJEU)EU law, preliminary rulings
General CourtEuGCompetition, trade, state aid

🔜 Roadmap

  • Switzerland — On the waitlist (no official API available yet).

💰 Pricing

This Actor uses Apify's pay-per-event pricing. You pay $0.01 per result item returned — no subscription, no minimum commitment.

Pricing

EventPriceDescription
Result item$0.01Each decision returned (search result or ECLI lookup)
list_courtsFreeReference data (courts list)

A search returning 10 results costs $0.10. A single ECLI lookup costs $0.01. No results = no charge.

Typical Monthly Cost

Use CaseEstimated Results/MonthEstimated Cost
Occasional research (student, journalist)50–200$0.50–$2
Regular case law lookups (solo lawyer)200–500$2–$5
AI agent integration (startup, MCP)500–2,000$5–$20
Cross-border comparative research200–1,000$2–$10

Free Tier

Apify provides free starter credits for new accounts — no credit card required.

No results, minimal cost: If a search returns no results, no result events are charged.

For exact pricing details, see the Pricing tab above.

✅ Data Sources & Legality

This Actor accesses official government open data APIs only:

SourceProviderLicenseURL
NeuRISGerman Federal Ministry of JusticeOpen Datarechtsinformationen.bund.de
RIS OGDAustrian Federal ChancelleryCC BY 4.0data.bka.gv.at
EUR-Lex/CELLAREU Publications OfficeEU Open Datapublications.europa.eu
  • No authentication or API key required for any source
  • No personal data is collected or processed
  • Court decisions are public documents by law
  • Data is accessed via official public APIs — not by scraping
  • Compliant with GDPR and open data principles
  • RIS OGD data used under CC BY 4.0 — attribution: Bundeskanzleramt, Rechtsinformationssystem
  • EUR-Lex data used under EU Open Data licence

⚠️ Limitations

  • Supreme/federal courts only. State court decisions are not available. This covers the 14 highest courts across DE, AT, and EU.
  • Search result cap (Germany). The NeuRIS API returns a maximum of 10,000 results per query. Use specific filters to narrow results. For individual decisions, use the ECLI lookup — no cap.
  • NeuRIS in test phase. The German source has been in public test phase since April 2025. Occasional instability is possible. The Actor includes automatic retry with progressive backoff.
  • Partial failure handling. If one source is temporarily unavailable, results from other sources are still returned. A warnings field indicates which source had issues.
  • Content language. All court decisions are in German. Metadata field names are in English for ease of integration.

🇩🇪🇦🇹🇪🇺 Fuer deutschsprachige Nutzer

Dieser Actor bietet programmatischen Zugang zu Gerichtsentscheidungen aus Deutschland, Oesterreich und der EU ueber die offiziellen Open-Data-APIs NeuRIS, RIS OGD und EUR-Lex/CELLAR.

Abgedeckte Gerichte:

  • 🇩🇪 BGH, BVerfG, BVerwG, BFH, BAG, BSG, BPatG (7 Bundesgerichte)
  • 🇦🇹 OGH, VwGH, VfGH, BVwG, BFG (5 Hoechstgerichte)
  • 🇪🇺 EuGH, EuG (2 EU-Gerichte)

Drei Nutzungswege:

  1. REST-API — Direkt per HTTP abrufbar (/api/search, /api/decisions/{ecli}, /api/courts). Funktioniert mit jedem HTTP-Client. Interaktive API-Dokumentation im Standby-Tab.

  2. MCP-Server — Direkt in Claude Desktop, Cursor oder andere AI-Agents einbinden. Ihr Agent kann Entscheidungen aus allen drei Jurisdiktionen suchen, abrufen und zitieren. Einrichtung in unter 5 Minuten.

  3. Apify Actor — Suchparameter eingeben, optional nach Quelle filtern, Ergebnisse als Dataset (JSON/CSV/Excel) herunterladen.

Kostenlos testen — Apify bietet Startguthaben fuer neue Accounts. Keine Kreditkarte erforderlich.

Alle Daten stammen aus offiziellen oeffentlichen APIs. Es werden keine personenbezogenen Daten verarbeitet. Gerichtsentscheidungen sind oeffentliche Dokumente. RIS-OGD-Daten unter CC BY 4.0 (Bundeskanzleramt, Rechtsinformationssystem). EUR-Lex-Daten unter EU Open Data Lizenz.

💬 Feedback & Support

Found a bug or have a feature request? Open an issue on GitHub or reach out via the Apify community.