echr_search

Pack: hudoc · Endpoint: https://gateway.pipeworx.io/hudoc/mcp

Search European Court of Human Rights (ECHR / Strasbourg) case law by free text, Convention Article, respondent state and/or date. Returns case name, application number(s), Article(s) engaged, the conclusion (violation/no violation), importance level and the itemid to read the full judgment with echr_judgment. Use for “what has Strasbourg ruled on Article 8 against France”, “recent Article 10 freedom-of-expression judgments”, etc. Covers judgments by default; pass collection to search decisions, advisory opinions, resolutions, communicated cases or reports instead.

Parameters

NameTypeRequiredDescription
querystringnoFree-text words to match anywhere in the case (case name, conclusion text, keywords), e.g. “surveillance”, “freedom of expression”. Optional if article/respondent narrow enough on their own.
articlestringnoConvention Article number, e.g. “8” (private/family life), “10” (freedom of expression), “6” (fair trial). Matches the Article and its sub-paragraphs.
respondentstringnoRespondent state — ISO3 code (e.g. “FRA”, “GBR”) or common name (e.g. “France”, “United Kingdom”). One of the 46 Council of Europe states, or Russia for pre-2022 cases.
collectionstringnoDocument type to search (default “judgments”). “decisions” = admissibility decisions; “communicated_cases” = pending cases the Court has notified the government of, no ruling yet.
importancenumbernoHUDOC importance level: 1 = highest (leading cases), 4 = lowest. Omit for all.
date_fromstringnoISO date (YYYY-MM-DD). Only documents on or after this date.
date_tostringnoISO date (YYYY-MM-DD). Only documents on or before this date.
limitnumbernoMax results, default 10, max 25.

Example call

Arguments

{
  "article": "8",
  "respondent": "GBR",
  "date_from": "2024-01-01",
  "date_to": "2026-12-31",
  "limit": 5
}

curl

curl -X POST https://gateway.pipeworx.io/hudoc/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"echr_search","arguments":{"article":"8","respondent":"GBR","date_from":"2024-01-01","date_to":"2026-12-31","limit":5}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('echr_search', {
  "article": "8",
  "respondent": "GBR",
  "date_from": "2024-01-01",
  "date_to": "2026-12-31",
  "limit": 5
});

More examples

{
  "query": "surveillance",
  "article": "8",
  "respondent": "FRA",
  "date_from": "2023-01-01"
}

Response shape

Always returns: query, total_matches, count, results, source

FieldTypeDescription
queryobjectEcho of the resolved filters actually sent to HUDOC, after country-name and date normalisation.
total_matchesnumberTotal documents in HUDOC matching the query, which is usually far larger than count — page with limit.
countnumberNumber of results returned in this response.
resultsarrayMatching documents, most recent first.
notestringPresent ONLY when results is empty: how to broaden the query. Its presence means zero matches, not an error.
sourcestringAttribution string for the HUDOC database.
Full JSON Schema
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "description": "Echo of the resolved filters actually sent to HUDOC, after country-name and date normalisation.",
      "properties": {
        "text": {
          "type": [
            "string",
            "null"
          ],
          "description": "Free-text phrase searched, or null."
        },
        "article": {
          "type": [
            "string",
            "null"
          ],
          "description": "Convention Article filter applied, or null."
        },
        "respondent": {
          "type": [
            "string",
            "null"
          ],
          "description": "Respondent state as the ISO3 code HUDOC uses (e.g. \"FRA\"), resolved from the caller's input, or null."
        },
        "collection": {
          "type": "string",
          "description": "Document collection searched: judgments, decisions, advisory_opinions, resolutions, communicated_cases or reports."
        },
        "importance": {
          "type": [
            "number",
            "null"
          ],
          "description": "Importance level filter (1 = leading case, 4 = lowest), or null."
        },
        "date_from": {
          "type": [
            "string",
            "null"
          ],
          "description": "Lower date bound (YYYY-MM-DD), or null."
        },
        "date_to": {
          "type": [
            "string",
            "null"
          ],
          "description": "Upper date bound (YYYY-MM-DD), or null."
        }
      }
    },
    "total_matches": {
      "type": "number",
      "description": "Total documents in HUDOC matching the query, which is usually far larger than count — page with limit."
    },
    "count": {
      "type": "number",
      "description": "Number of results returned in this response."
    },
    "results": {
      "type": "array",
      "description": "Matching documents, most recent first.",
      "items": {
        "type": "object",
        "properties": {
          "itemid": {
            "type": [
              "string",
              "null"
            ],
            "description": "HUDOC document id, e.g. \"001-219226\". Pass to echr_judgment for the full text."
          },
          "case_name": {
            "type": [
              "string",
              "null"
            ],
            "description": "Case title, e.g. \"CASE OF DRELON v. FRANCE\"."
          },
          "doctype": {
            "type": [
              "string",
              "null"
            ],
            "description": "HUDOC document type code, e.g. \"HEJUD\" (Chamber/Grand Chamber judgment)."
          },
          "respondent": {
            "type": [
              "string",
              "null"
            ],
            "description": "Respondent state ISO3 code."
          },
          "article": {
            "type": [
              "string",
              "null"
            ],
            "description": "Semicolon-separated Convention Articles engaged, including sub-paragraphs, e.g. \"8;8-1;8-2\"."
          },
          "importance": {
            "type": [
              "number",
              "null"
            ],
            "description": "Importance level: 1 = leading case, 4 = lowest."
          },
          "date": {
            "type": [
              "string",
              "null"
            ],
            "description": "Judgment date, ISO 8601."
          },
          "application_numbers": {
            "type": [
              "string",
              "null"
            ],
            "description": "Semicolon-separated application numbers, e.g. \"3153/16;27758/18\"."
          },
          "conclusion": {
            "type": [
              "string",
              "null"
            ],
            "description": "The Court's conclusion in its own words, e.g. \"Violation of Article 8 ...\" or \"No violation of Article 8 ...\"."
          },
          "citation_url": {
            "type": [
              "string",
              "null"
            ],
            "description": "Public hudoc.echr.coe.int URL for the document."
          },
          "read_full_text_with": {
            "type": [
              "string",
              "null"
            ],
            "description": "Ready-to-run echr_judgment call that returns this document's full text."
          }
        }
      }
    },
    "note": {
      "type": "string",
      "description": "Present ONLY when results is empty: how to broaden the query. Its presence means zero matches, not an error."
    },
    "source": {
      "type": "string",
      "description": "Attribution string for the HUDOC database."
    }
  },
  "required": [
    "query",
    "total_matches",
    "count",
    "results",
    "source"
  ]
}

Connect

Add this to your MCP client config, or use one-click install buttons:

{
  "mcpServers": {
    "hudoc": {
      "url": "https://gateway.pipeworx.io/hudoc/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build September 15, 2026