amazing.cat

API for developers

The cat (amazing.cat) accepts structured MCP tool calls: search, case cards, texts, quotations and statistics.

Live examples checked: 2026-10-08T20:43:57.369789+00:00. Source texts and search queries are in Russian; the guide is available in two languages.

Access and limits

For server programs, send Authorization: Bearer YOUR_AMAZINGCAT_TOKEN with every MCP request. Get a free token at https://mcp.amazingcat.net/#get or through the proof-of-work API. OAuth supports web connectors and your own clients with browser authorization; MCP requests still use Bearer after OAuth. Keep tokens out of URLs, HTML, public repositories and client-side JavaScript. Store them in an environment variable or server-side secret store.

Plan/keyPer 60 sPer UTC dayAvailability
free2005000A free token issued now through /issue or OAuth allows 200 charged requests in a rolling 60-second window and 5,000 per UTC calendar day. The current increased limits may change; /issue returns rpm and daily when issuing a token.
legacy_free20500Previously issued static free keys may retain individual limits of 20/minute and 500/day. Current general-plan limits do not override the quota stored for such a key.
paid12020000An existing paid key allows 120/minute and 20,000 per UTC day. Its minute limit is lower than the currently increased Free limit; its daily allowance is higher. PRO is configured at RUB 1,000 per 30 days, but public subscription checkout is currently hidden and payment configuration is in test mode. Contact support for individual access; existing paid keys are accepted by the service.

Quota counts charged HTTP requests carrying Bearer, not returned documents. Only initialize is free. notifications/initialized, tools/list, tools/call and other methods each charge one request; GET SSE and session-closing DELETE also count. Handshake methods pass even when quota is exhausted, but continue charging except for initialize. Reuse the session and tool list: creating a session for every search adds protocol overhead. Accepted requests that later fail also count. Limits apply to each specific token; counters live in process memory. Daily reset is at 00:00 UTC.

Get a free token · Proof-of-work token issuance script

OAuth · PKCE S256

Use discovery, register an exact callback URI and authorize through a browser. Send MCP requests from your backend: cross-origin browser calls are currently unsupported.

  1. Discover OAuth through WWW-Authenticate on a 401 response or the metadata URLs above. Use scope=mcp and canonical resource=https://mcp.amazingcat.net/mcp.
  2. For your own web client, POST redirect_uris to /register; the 201 response includes client_id. This is a public client: no client secret is required. An exactly registered HTTPS callback may use your own domain. HTTP is accepted only for localhost and 127.0.0.1; custom URI schemes are unsupported.
  3. Without registration, HTTPS callbacks on claude.ai, claude.com, anthropic.com, chatgpt.com, openai.com and their subdomains are accepted; localhost and 127.0.0.1 are also allowed. Register an exact callback for your integration.
  4. Generate random code_verifier and state. Compute code_challenge=BASE64URL(SHA256(code_verifier)) without padding. Open /authorize with the listed parameters. The free resource issues a code automatically without a login form. Validate state and the discovery issuer in the callback.
  5. Exchange code with POST /token using application/x-www-form-urlencoded. redirect_uri must match exactly; the code is single-use and expires after 300 seconds. Store access_token and refresh_token on the server. The response provides token_type=Bearer, scope=mcp and expires_in.
  6. Refresh using grant_type=refresh_token. Free advertises expires_in=7776000 (90 days); PRO advertises 86400 (1 day) and checks the active subscription on requests. For existing PRO access, use /pro/mcp, separate discovery at /.well-known/oauth-protected-resource/pro/mcp and issuer https://mcp.amazingcat.net/pro. /pro/authorize requires an active paid key.

POST /register with redirect_uris; /authorize with response_type=code, client_id, redirect_uri, code_challenge, code_challenge_method=S256, scope=mcp, resource and state. Validate callback state and iss. POST /token (form) with grant_type=authorization_code, code, redirect_uri, code_verifier and client_id. Refresh with grant_type=refresh_token and refresh_token. Resource URI: https://mcp.amazingcat.net/mcp. A registered HTTPS callback may use your domain; HTTP is accepted for localhost/127.0.0.1.

The /token response contains access_token, token_type=Bearer, expires_in, refresh_token and scope=mcp. Free advertises expires_in=7776000 (90 days); PRO advertises 86400. Refresh according to expires_in; paid credentials also require an active subscription.

Errors

HTTPSignalAction
401unauthorizedBearer is missing or invalid; a free key cannot access /pro/mcp. Check the header or perform OAuth. WWW-Authenticate provides resource_metadata.
200HTTP 200 + Retry-AfterWhen quota is exhausted, tools/call returns HTTP 200, a limit notice in JSON-RPC result.content and isError:false. Retry-After gives the wait in seconds. This is not a search result: the tool was not executed. Repeat the same call after the delay; HTTP 200 or isError:false alone does not prove a successful search.
429rate_limitedFor other methods at quota exhaustion: error=rate_limited, detail, retry_after_seconds, hint and Retry-After. Handshake methods still pass. Respect the server-provided delay.
400bad_json / bad_request / bad_pow/issue errors: malformed JSON, incomplete fields or an incorrect proof-of-work solution.
403bad_challenge / expiredChallenge signature is invalid or the challenge expired. Fetch a new /issue/challenge.
409replayThe solved challenge has already been used.
429ip_limit/issue token-issuance limit is exhausted; this is separate from MCP request quota. The response contains detail and support.
400invalid_grant / unsupported_grant_type/token errors: invalid or used code/refresh_token, mismatched redirect_uri or PKCE, or unsupported grant. An inactive PRO subscription also produces invalid_grant.
{
  "error": "unauthorized",
  "detail": "требуется Authorization: Bearer <token>. Веб-клиенты подключаются по OAuth автоматически; для CLI токен: https://mcp.amazingcat.net"
}

MCP and responses

MCP over Streamable HTTP, one endpoint: https://mcp.amazingcat.net/mcp. JSON-RPC 2.0, UTF-8.

  1. initialize: negotiate the protocol version and retain the response Mcp-Session-Id header.
  2. notifications/initialized: notification without id; response is 202 with an empty body.
  3. tools/list: discover actual tool names and inputSchema; nextCursor continues the list.
  4. tools/call: params.name + params.arguments.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2025-06-18",
    "capabilities": {},
    "clientInfo": {
      "name": "my-integration",
      "version": "1.0"
    }
  }
}
Authorization: Bearer YOUR_AMAZINGCAT_TOKEN
Content-Type: application/json
Accept: application/json, text/event-stream
Mcp-Session-Id: SESSION_ID_FROM_INITIALIZE
MCP-Protocol-Version: 2025-06-18

Send Mcp-Session-Id and the negotiated MCP-Protocol-Version on subsequent requests. The session header does not replace Bearer. Some tools have a session argument for the search/retrieval workflow; it is a separate ID. Reinitialize after an expired-session 404. Close with DELETE /mcp using authentication and session headers.

Responses use application/json or text/event-stream. For SSE, join data: lines within each event and select the JSON-RPC response with your request id. Do not call response.json() on SSE. Ordinary live responses used SSE; quota responses may use JSON. Clients must support both.

A result.content[] text block often contains another JSON string. Decode the JSON-RPC/SSE envelope, then JSON inside content[].text. Check HTTP status, JSON-RPC error, result.isError, inner error/ошибка, partial flags and warnings.

MCP transport specification

Clients

Store the token in an environment variable. The commands below use a placeholder; supply your own key before running them. The downloadable scripts were executed against the live endpoint.

export AMAZINGCAT_TOKEN="YOUR_AMAZINGCAT_TOKEN"

Procedural deadline · curl JSON-RPC

curl.sh

bash curl.sh
Code
#!/usr/bin/env bash
# Bash, curl 7.76+, Python 3. Set AMAZINGCAT_TOKEN in the environment; bash curl.sh.
set -euo pipefail
: "${AMAZINGCAT_TOKEN:?Set AMAZINGCAT_TOKEN in the server environment}"
umask 077
work=$(mktemp -d)
endpoint='https://mcp.amazingcat.net/mcp'
cleanup() {
  if [[ -f "$work/session-headers" ]]; then
    curl --silent --show-error --max-time 15 -X DELETE \
      -H "@$work/session-headers" "$endpoint" -o /dev/null || true
  fi
  rm -rf "$work"
}
trap cleanup EXIT

# Keep credentials out of curl's command-line arguments and temporary public files.
python3 - "$work/headers" <<'PY'
import os, pathlib, sys
token = os.environ["AMAZINGCAT_TOKEN"]
if "\r" in token or "\n" in token:
    raise SystemExit("Invalid token")
pathlib.Path(sys.argv[1]).write_text(
    "Authorization: Bearer " + token + "\n"
    "Accept: application/json, text/event-stream\n"
    "Content-Type: application/json\n", encoding="utf-8")
PY

# Decode either JSON or UTF-8 SSE. In SSE, select the matching JSON-RPC id.
cat > "$work/decode.py" <<'PY'
import json, pathlib, sys
body = pathlib.Path(sys.argv[1]).read_text(encoding="utf-8")
expected_id = int(sys.argv[2])
if body.lstrip().startswith("{"):
    message = json.loads(body)
else:
    message = None
    data = []
    for line in body.splitlines() + [""]:
        if line.startswith("data:"):
            data.append(line[5:].lstrip(" "))
        elif not line and data:
            event = json.loads("\n".join(data))
            data = []
            if event.get("id") == expected_id:
                message = event
                break
    if message is None:
        raise SystemExit("SSE ended without the matching JSON-RPC response")
if message.get("id") != expected_id or "error" in message:
    raise SystemExit("Unexpected JSON-RPC response or protocol error")
json.dump(message["result"], sys.stdout, ensure_ascii=False)
PY

post() {
  local name=$1 payload=$2 expected_id=${3:-}
  curl --silent --show-error --fail-with-body --no-buffer --max-time 120 \
    -X POST "$endpoint" -H "@$work/headers" \
    --data-binary "$payload" -D "$work/$name.headers" \
    -o "$work/$name.body" -w '%{http_code}' > "$work/$name.status"
  if [[ -n "$expected_id" ]]; then
    python3 "$work/decode.py" "$work/$name.body" "$expected_id" > "$work/$name.json"
  elif [[ "$(cat "$work/$name.status")" != 202 ]]; then
    echo 'Initialized notification was not accepted' >&2
    exit 1
  fi
}

post initialize '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"amazingcat-curl-example","version":"1.0"}}}' 1

# Preserve Mcp-Session-Id if supplied; use the negotiated protocol version.
python3 - "$work" <<'PY'
import json, pathlib, sys
work = pathlib.Path(sys.argv[1])
headers = work.joinpath("headers").read_text(encoding="utf-8")
sid = None
for line in work.joinpath("initialize.headers").read_text(encoding="utf-8").splitlines():
    if line.lower().startswith("mcp-session-id:"):
        sid = line.split(":", 1)[1].strip()
if sid:
    headers += "Mcp-Session-Id: " + sid + "\n"
version = json.loads(work.joinpath("initialize.json").read_text(encoding="utf-8"))["protocolVersion"]
headers += "MCP-Protocol-Version: " + version + "\n"
work.joinpath("headers").write_text(headers, encoding="utf-8")
if sid:
    work.joinpath("session-headers").write_text(headers, encoding="utf-8")
PY

post initialized '{"jsonrpc":"2.0","method":"notifications/initialized"}'
post tools-list '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' 2
post tools-call '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"kas_search","arguments":{"text":"восстановление OR пропуск","norms":"ГПК 112","year_from":2026,"year_to":2026,"court":2,"kind":"civil","limit":1,"detail":"brief"}}}' 3

# A 200 response may contain a quota/application error; check the MCP result too.
python3 - "$work" <<'PY'
import json, pathlib, sys
work = pathlib.Path(sys.argv[1])
read = lambda name: json.loads(work.joinpath(name + ".json").read_text(encoding="utf-8"))
result = read("tools-call")
if result.get("isError"):
    raise SystemExit("Tool returned an MCP error; inspect it privately")
texts = [b["text"] for b in result.get("content", []) if b.get("type") == "text"]
if not texts:
    raise SystemExit("Tool returned no text content")
try:
    data = json.loads(texts[0])
except json.JSONDecodeError:
    raise SystemExit("Tool returned non-JSON text; check quota/errors") from None
if not isinstance(data, dict) or data.get("error") or data.get("ошибка"):
    raise SystemExit("Tool returned an application error")
types = {}
for name in ("initialize", "tools-list", "tools-call"):
    for line in work.joinpath(name + ".headers").read_text(encoding="utf-8").splitlines():
        if line.lower().startswith("content-type:"):
            types[name] = line.split(":", 1)[1].strip()
print(json.dumps({
    "protocol_version": read("initialize")["protocolVersion"],
    "session_present": work.joinpath("session-headers").exists(),
    "tools_count": len(read("tools-list")["tools"]),
    "tool": "kas_search", "is_error": bool(result.get("isError")),
    "найдено": data.get("найдено"), "returned": len(data.get("результаты", [])),
    "response_content_types": types,
    "http_status": {name: int(work.joinpath(name + ".status").read_text())
                    for name in ("initialize", "initialized", "tools-list", "tools-call")},
}, ensure_ascii=False))
PY

Shortened real output:

{
  "protocol_version": "2025-06-18",
  "session_present": true,
  "tools_count": 62,
  "tool": "kas_search",
  "is_error": false,
  "найдено": 285,
  "returned": 1,
  "http_status": {
    "initialize": 200,
    "initialized": 202,
    "tools-list": 200,
    "tools-call": 200
  }
}

Bankruptcy · Python mcp SDK

sdk.py

python -m pip install mcp==1.30.0 httpx==0.28.1
python sdk.py
Code
"""Python 3.10+. pip install -r requirements.txt; set AMAZINGCAT_TOKEN."""
import asyncio
import json
import os
from datetime import timedelta

import httpx
from mcp import ClientSession
from mcp.client.streamable_http import streamable_http_client


async def main():
    # Keep the token on your server. Never embed it in a browser bundle.
    async with httpx.AsyncClient(
        headers={"Authorization": f"Bearer {os.environ['AMAZINGCAT_TOKEN']}"},
        timeout=httpx.Timeout(120.0, connect=15.0),
    ) as http:
        async with streamable_http_client(
            "https://mcp.amazingcat.net/mcp", http_client=http
        ) as (read, write, session_id):
            async with ClientSession(
                read, write, read_timeout_seconds=timedelta(seconds=120)
            ) as session:
                # initialize() also sends notifications/initialized.
                # The transport handles session/version headers and JSON/SSE.
                initialized = await session.initialize()
                tools = await session.list_tools()
                if not any(tool.name == "find_term" for tool in tools.tools):
                    raise RuntimeError("find_term is unavailable for this token")
                result = await session.call_tool(
                    "find_term", {"phrase": "банкротство", "court": "КС", "limit": 1, "detail": "compact"}
                )
                if result.isError:
                    raise RuntimeError("Tool returned an MCP error; inspect it privately")
                text = next((b.text for b in result.content if b.type == "text"), None)
                # HTTP 200 does not by itself prove success: plain text can be a quota error.
                if text is None:
                    raise RuntimeError("Tool returned no text content")
                try:
                    data = json.loads(text)
                except json.JSONDecodeError:
                    raise RuntimeError("Tool returned non-JSON text; check quota/errors") from None
                if not isinstance(data, dict) or data.get("error") or data.get("ошибка"):
                    raise RuntimeError("Tool returned an application error")
                # Print counters, avoiding personal names in the sample output.
                print(json.dumps({
                    "protocol_version": initialized.protocolVersion,
                    "session_present": bool(session_id()),
                    "tools_count": len(tools.tools),
                    "tool": "find_term", "is_error": bool(result.isError),
                    "найдено": data.get("найдено"),
                    "returned": len(data.get("results", [])),
                }, ensure_ascii=False))
        # terminate_on_close=True (the default) sends DELETE for the MCP session.


if __name__ == "__main__":
    asyncio.run(main())

Shortened real output:

{
  "protocol_version": "2025-11-25",
  "session_present": true,
  "tools_count": 62,
  "tool": "find_term",
  "is_error": false,
  "найдено": null,
  "returned": 1
}

Inheritance · Python requests

raw.py

python -m pip install requests
python raw.py
Code
import json
import os
from raw import MCP

def main():
    client = MCP(os.environ["AMAZINGCAT_TOKEN"])
    try:
        client.initialize()
        print("tools:", len(client.rpc("tools/list")["tools"]))
        result = client.call("kas_search", {"text": "принятие SENTENCE наследства", "court": 0, "kind": "civil", "limit": 1, "detail": "brief"})
        print(json.dumps(result, ensure_ascii=False))
    finally:
        client.close()


if __name__ == "__main__":
    main()

Shortened real output:

{
  "найдено": 32283,
  "page": {
    "next_cursor": 1
  },
  "returned": 1,
  "application_error": false,
  "tools_count": 62
}

Parental duties, administrative offences · TypeScript

client.ts

npm install @modelcontextprotocol/sdk@1.32.1 tsx@4.23.15
npx tsx client.ts
Code
// Node.js 20+. npm install; AMAZINGCAT_TOKEN=... npm start
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";

async function main() {
  const token = process.env.AMAZINGCAT_TOKEN;
  if (!token) throw new Error("Set AMAZINGCAT_TOKEN in the server environment");
  const transport = new StreamableHTTPClientTransport(
    new URL("https://mcp.amazingcat.net/mcp"),
    { requestInit: { headers: { Authorization: `Bearer ${token}` } } },
  );
  const client = new Client({ name: "amazingcat-api-example", version: "1.0.0" });
  try {
    // connect() performs initialize + notifications/initialized.
    // The transport handles session/version headers and JSON/SSE.
    await client.connect(transport);
    const tools = await client.listTools();
    if (!tools.tools.some((tool) => tool.name === "get_norm_text")) {
      throw new Error("get_norm_text is unavailable for this token");
    }
    const result = await client.callTool({
      name: "get_norm_text", arguments: { norms: "5.35 КоАП", with_practice: false },
    }, undefined, { timeout: 120_000 });
    if (result.isError) throw new Error("Tool returned an MCP error; inspect it privately");
    const blocks = result.content as Array<{ type: string; text?: string }>;
    const text = blocks.find((block) => block.type === "text")?.text;
    if (!text) throw new Error("Tool returned no text content");
    let data: Record<string, unknown>;
    try {
      data = JSON.parse(text);
    } catch {
      throw new Error("Tool returned non-JSON text; check quota/errors");
    }
    if (!data || typeof data !== "object" || data.error || data["ошибка"]) {
      throw new Error("Tool returned an application error");
    }
    // Print counters, avoiding personal names in the sample output.
    console.log(JSON.stringify({
      protocol_version: transport.protocolVersion,
      session_present: Boolean(transport.sessionId), tools_count: tools.tools.length,
      tool: "get_norm_text", is_error: Boolean(result.isError),
      "найдено": data["найдено"],
      returned: Array.isArray(data["norms"]) ? data["norms"].length : 0,
    }));
  } finally {
    try {
      if (transport.sessionId) await transport.terminateSession();
    } finally {
      await client.close();
    }
  }
}

main().catch((error: unknown) => {
  console.error(error instanceof Error ? error.message : "MCP example failed");
  process.exitCode = 1;
});

Shortened real output:

{
  "protocol_version": "2025-11-25",
  "session_present": true,
  "tools_count": 62,
  "tool": "get_norm_text",
  "is_error": false,
  "returned": 1
}

requirements.txt · package.json · Python SDK · TypeScript SDK v1

Parameters and operators

kas_search: court=1…9 selects a numbered cassation court; court=0 selects all. Use kas_stats for supported values. oblsud_search accepts a GAS court code such as 77OS0000; resolve it with oblsud_courts. raysud_courts provides district codes. A case number without a court can be ambiguous. A UID contains the court code, instance, year, serial and check number; it differs from a website card UUID.

ParameterMeaning
queryPlain question/words. Cassation and regional search normalize lexical terms with morphological prefixes; search_practice also performs semantic search. These are different engines.
textExplicit lexical expression: AND/OR/NOT, NEAR/N, ADJACENT, SENTENCE, PARAGRAPH. Not a universal parameter across all tools.
phraseVerbatim phrase without semantic inference. find_term(phrase) searches higher courts; kas_search/oblsud_search have their own phrase parameter.
normsBoolean provision expression: ГК 196 AND ГПК 56. find_by_norm takes article=200 ГК; *_by_norm takes code=КАС and article=219. Do not assume find_by_norm supports the same expression grammar.
detailHigher-court tools: full/compact. kas_search: brief/subject/facts/full; oblsud_search: brief/subject/facts/reasoning/resolution/full. detail changes card/snippet content; retrieve the selected full document separately through *_act/get_case.
kind / prockas_search.kind: civil/admin/koap/criminal/all; admin means KAS proceedings, koap means administrative offences. all = civil + admin + koap. oblsud_search uses proc for proceedings and kind for document type.

Write operators in uppercase Latin letters. AND requires both terms, OR either, NOT excludes; NEAR/N sets word proximity; ADJACENT requires adjacent terms in either order; SENTENCE/PARAGRAPH are sentence/paragraph filters. The current kas_search(text) AND NOT example returns the FTS5 error shown below. Inspect the parsed expression and funnel. ADJACENT has a separate meaning for adjacent provision references in norms; do not assume these operators apply to other tool families.

Pagination differs: kas/oblsud/fas search uses page.next_cursor; *_acts uses cursor_next and omitted IDs; browse_practice uses offset; raysud_courts uses next_cursor. For *_act windows use original offset/length and returned continuation, never the masked string length. part=full may still span multiple responses. For law_get_text, continue using pagination.next_request when truncated=true.

Recognized participant names are masked; some families keep judges’ names public as public officeholders. Some responses also hide personal contact/identity details. A mask is not a verbatim quotation. Higher-court acts provide source_url and qr.qr_image_url for the original. For other families, inspect the actual source fields rather than assuming every response contains a QR.

law_get_text(as_of) requests a revision at a date. An _warning can mean the nearest available revision differs from the text on the requested date. get_norm_text retrieves the current revision and has no as_of parameter; inspect redaction_verified/redaction_warning and use law_history plus law_get_text for history.

Task examples

Every displayed call was executed live. Below are excerpts of JSON inside content[].text: fields are omitted and arrays usually retain only the first item; counts are unchanged. These illustrate response shapes, not permanent corpus counters. An API limitation badge marks a real refusal/partial result rather than a successful search.

15 generalized tasks from actual usage: 10 scenarios below, four client examples and one batch integration. In linked steps, client is the MCP client from raw.py. It sends tools/call; case numbers and UIDs come from the previous response and are omitted from published excerpts.

Assignment of claims and debt collection

Read the selected act: text, masking and QR Verified

2026-10-08T20:40:22.038838+00:00 · 0.639 s

assignment_read = client.call('get_case', {
    'court': 'ВС',
    'doc_id': assignment_search['results'][0]['doc_id']
})

Shortened real result; variable: assignment_read.

{
  "source": "ВС РФ",
  "court": "ВС",
  "doc_id": 1728170,
  "date": "2019-01-15",
  "url": "https://www.vsrf.ru/lk/practice/stor_pdf/1728170",
  "norms": [
    "ст. 1110 ГК РФ"
  ],
  "analyzed": true,
  "result": "Апелляционное определение Нижегородского облсуда от 10.04.2018 отменено, дело направлено на новое апелляционное рассмотрение в тот же суд.",
  "source_url": "https://www.vsrf.ru/lk/practice/stor_pdf/1728170",
  "qr": {
    "qr_image_url": "https://mcp.amazingcat.net/qr/6f0c8217ae15ca35.png",
    "qr_encodes": "https://www.vsrf.ru/lk/practice/stor_pdf/1728170"
  },
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); ссылки и QR ведут на оригиналы."
}

Exclude insurance disputes: NOT operator API limitation

2026-10-08T20:40:22.159481+00:00 · 0.12 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "kas_search",
    "arguments": {
      "text": "уступка AND NOT страхование",
      "court": 1,
      "kind": "civil",
      "limit": 1,
      "detail": "brief"
    }
  }
}

Shortened real result; variable: assignment_exclude.

{
  "error": "tool_failed",
  "tool": "kas_search",
  "retryable": false,
  "retry_after_seconds": null,
  "detail": "OperationalError: fts5: syntax error near \"NOT\""
}

AND NOT currently returns an API error; this shows the verified refusal. Do not interpret it as an absence of cases.

When limitation periods start

Practice under Civil Code article 200 Verified

2026-10-08T20:40:41.849601+00:00 · 0.811 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "find_by_norm",
    "arguments": {
      "article": "200 ГК",
      "court": "ВС",
      "limit": 1,
      "detail": "compact"
    }
  }
}

Shortened real result; variable: limitation_norm.

{
  "norm": "200 ГК",
  "corpora": {
    "ВС РФ · определения коллегий (vsrf.ru, разбор opus-grounded)": {
      "всего": 456,
      "содержательных": 417,
      "отказных_определений": 13,
      "без_аналитики": 26,
      "показано": 10,
      "документы": [
        {
          "source": "ВС РФ",
          "court": "ВС",
          "doc_id": 2115084,
          "date": "2022-04-26",
          "url": "https://www.vsrf.ru/lk/practice/stor_pdf/2115084",
          "norms": [
            "ст. 195 ГК РФ"
          ],
          "analyzed": true,
          "result": "Решение Хостинского районного суда г. Сочи от 13.07.2020, апелляционное определение Краснодарского краевого суда от 28.01.2021 и определение 4-го КСОЮ от 27.05.2021 отменены. Дело направлено на новое …",
          "source_url": "https://www.vsrf.ru/lk/practice/stor_pdf/2115084",
          "qr": {
            "qr_image_url": "https://mcp.amazingcat.net/qr/ec95adbd9e9cc3d6.png",
            "qr_encodes": "https://www.vsrf.ru/lk/practice/stor_pdf/2115084"
          }
        }
      ]
    }
  },
  "акт": "ст. 200 ГК",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); ссылки и QR ведут на оригиналы.",
  "_detail": "compact: карточки без полного текста; полный текст акта — get_case(doc_id, court)."
}

Civil Code 196 and Civil Procedure Code 56 Verified

2026-10-08T20:40:53.098177+00:00 · 11.248 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "kas_search",
    "arguments": {
      "norms": "ГК 196 AND ГПК 56",
      "court": 1,
      "kind": "civil",
      "limit": 1,
      "detail": "brief"
    }
  }
}

Shortened real result; variable: limitation_expression.

{
  "найдено": 1551,
  "показано": 1,
  "вид_производства": "гражданские",
  "результаты": [
    {
      "act_id": 1401941,
      "суд": "1 КСОЮ",
      "дата": "2026-08-21"
    }
  ],
  "максимум_карточек_в_ответе": 526,
  "page": {
    "showing": "1-1 of 1551",
    "sorted_by": "дата, новые первыми",
    "next_cursor": 1
  },
  "предупреждение": "совпадений 1551, обработаны первые 400. Сузьте фильтрами, иначе хвост не виден",
  "_снимок_от": "2026-10-08T20:40:00.316649+00:00",
  "_снимок_полной_сверки": "2026-10-08T19:12:19.705788+00:00",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Next provision-linked card: offset Verified

2026-10-08T20:40:54.359487+00:00 · 1.26 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "browse_practice",
    "arguments": {
      "court": "ВС",
      "article": "200 ГК",
      "limit": 1,
      "offset": 1
    }
  }
}

Shortened real result; variable: limitation_page.

{
  "court": "ВС",
  "offset": 1,
  "limit": 1,
  "returned": 1,
  "has_more": true,
  "next_offset": 2,
  "results": [
    {
      "id": 2442126,
      "doc_id": 2442126,
      "court": "ВС",
      "date": "2025-01-21",
      "url": "https://www.vsrf.ru/lk/practice/stor_pdf/2442126",
      "norms": [
        {
          "norm": "ст. 159 УК РФ"
        }
      ],
      "source_url": "https://www.vsrf.ru/lk/practice/stor_pdf/2442126",
      "qr": {
        "qr_image_url": "https://mcp.amazingcat.net/qr/d62de39d3429699d.png",
        "qr_encodes": "https://www.vsrf.ru/lk/practice/stor_pdf/2442126"
      }
    }
  ],
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); ссылки и QR ведут на оригиналы."
}

Criminal sentencing

Plenum: sentencing Verified

2026-10-08T20:41:10.894936+00:00 · 16.535 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "find_term",
    "arguments": {
      "phrase": "назначение наказания",
      "court": "Пленум",
      "limit": 1,
      "detail": "compact"
    }
  }
}

Shortened real result; variable: criminal_plenum.

{
  "court": "Пленум",
  "returned": 1,
  "results": [
    {
      "source": "Пленум ВС РФ",
      "court": "Пленум",
      "doc_id": 35905,
      "date": "2026-05-21",
      "title": "О внесении изменений в отдельные постановления Пленума Верховного Суда Российской Федерации по уголовным делам",
      "url": "https://www.vsrf.ru/documents/all/35905/",
      "norms": [
        {
          "norm": "ч. 1 ст. 210 УК РФ",
          "страница": 2,
          "абзац": 5,
          "цитата": "Ответственность по части 1 статьи 210 УК РФ за координацию"
        }
      ],
      "source_url": "https://www.vsrf.ru/documents/all/35905/",
      "qr": {
        "qr_image_url": "https://mcp.amazingcat.net/qr/6db2c18598a41657.png",
        "qr_encodes": "https://www.vsrf.ru/documents/all/35905/"
      }
    }
  ],
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); ссылки и QR ведут на оригиналы.",
  "_detail": "compact: карточки без полного текста; полный текст акта — get_case(doc_id, court)."
}

Utility payments

Supreme Court reviews: utilities Verified

2026-10-08T20:41:15.076783+00:00 · 4.181 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "find_term",
    "arguments": {
      "phrase": "коммунальные услуги",
      "court": "ОбзорВС",
      "limit": 1,
      "detail": "compact"
    }
  }
}

Shortened real result; variable: utilities_review.

{
  "court": "ОбзорВС",
  "returned": 1,
  "results": [
    {
      "source": "Обзор Президиума ВС РФ",
      "court": "ОбзорВС",
      "doc_id": 36136,
      "date": "2026-07-03",
      "title": "Обзор судебной практики Верховного Суда Российской Федерации № 2 (2026)",
      "url": "https://www.vsrf.ru/documents/all/36136/",
      "norms": [],
      "source_url": "https://www.vsrf.ru/documents/all/36136/",
      "qr": {
        "qr_image_url": "https://mcp.amazingcat.net/qr/eb5b19474311c62c.png",
        "qr_encodes": "https://www.vsrf.ru/documents/all/36136/"
      }
    }
  ],
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); ссылки и QR ведут на оригиналы.",
  "_detail": "compact: карточки без полного текста; полный текст акта — get_case(doc_id, court)."
}

Cassation: terms in one paragraph Verified

2026-10-08T20:41:32.976454+00:00 · 17.899 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "kas_search",
    "arguments": {
      "text": "коммунальные PARAGRAPH услуги",
      "kind": "civil",
      "limit": 1,
      "detail": "brief"
    }
  }
}

Shortened real result; variable: utilities_paragraph.

{
  "найдено": 83194,
  "показано": 1,
  "вид_производства": "гражданские",
  "результаты": [
    {
      "act_id": 1396710,
      "суд": "3 КСОЮ",
      "дата": "2026-09-07"
    }
  ],
  "максимум_карточек_в_ответе": 526,
  "page": {
    "showing": "1-1 of 83194",
    "sorted_by": "релевантность",
    "next_cursor": 1
  },
  "предупреждение": "совпадений 83194, обработаны первые 400. Сузьте фильтрами, иначе хвост не виден",
  "_снимок_от": "2026-10-08T20:41:02.733387+00:00",
  "_снимок_полной_сверки": "2026-10-08T19:12:19.705788+00:00",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Unauthorized construction

Historical commercial court: unauthorized construction Verified

2026-10-08T20:41:37.130229+00:00 · 4.153 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "find_term",
    "arguments": {
      "phrase": "самовольная постройка",
      "court": "ВАС",
      "limit": 1,
      "detail": "compact"
    }
  }
}

Shortened real result; variable: property_vas.

{
  "court": "ВАС",
  "returned": 1,
  "results": [
    {
      "source": "ВАС РФ",
      "court": "ВАС",
      "doc_id": 19056,
      "date": "2014-07-01",
      "url": "https://www.vsrf.ru/documents/all/19056/",
      "norms": [
        "ст. 14 ФЗ № 443-1"
      ],
      "analyzed": true,
      "result": "Постановление Федерального арбитражного суда Западно-Сибирского округа от 13.03.2014 отменено. Решение Арбитражного суда Новосибирской области от 06.09.2013 и постановление Седьмого арбитражного апелл…",
      "source_url": "https://www.vsrf.ru/documents/all/19056/",
      "qr": {
        "qr_image_url": "https://mcp.amazingcat.net/qr/db6b18ddfa7e123e.png",
        "qr_encodes": "https://www.vsrf.ru/documents/all/19056/"
      }
    }
  ],
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); ссылки и QR ведут на оригиналы.",
  "_detail": "compact: карточки без полного текста; полный текст акта — get_case(doc_id, court)."
}

Supreme Court: Civil Code article 222 Verified

2026-10-08T20:41:38.128138+00:00 · 0.997 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "find_by_norm",
    "arguments": {
      "article": "222 ГК",
      "court": "ВС",
      "limit": 1,
      "detail": "compact"
    }
  }
}

Shortened real result; variable: property_norm.

{
  "norm": "222 ГК",
  "corpora": {
    "ВС РФ · определения коллегий (vsrf.ru, разбор opus-grounded)": {
      "всего": 374,
      "содержательных": 363,
      "отказных_определений": 2,
      "без_аналитики": 9,
      "показано": 10,
      "документы": [
        {
          "source": "ВС РФ",
          "court": "ВС",
          "doc_id": 2472598,
          "date": "2025-06-17",
          "url": "https://www.vsrf.ru/lk/practice/stor_pdf/2472598",
          "norms": [
            "ст. 222 ГК РФ"
          ],
          "analyzed": true,
          "result": "Апелляционное определение Краснодарского краевого суда и определение Четвёртого кассационного суда отменить, оставить в силе решение суда первой инстанции (в иске отказано).",
          "source_url": "https://www.vsrf.ru/lk/practice/stor_pdf/2472598",
          "qr": {
            "qr_image_url": "https://mcp.amazingcat.net/qr/33b00c6bf011c06e.png",
            "qr_encodes": "https://www.vsrf.ru/lk/practice/stor_pdf/2472598"
          }
        }
      ]
    }
  },
  "акт": "ст. 222 ГК",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); ссылки и QR ведут на оригиналы.",
  "_detail": "compact: карточки без полного текста; полный текст акта — get_case(doc_id, court)."
}

Employment reinstatement

First matching employment case card Verified

2026-10-08T20:41:47.020989+00:00 · 1.647 s

labour_card = client.call('kas_case', {
    'act_id': labour_search['результаты'][0]['act_id']
})

Shortened real result; variable: labour_card.

{
  "act_id": 613147,
  "суд": "7 КСОЮ",
  "дата": "2025-08-26",
  "знаков_в_тексте": 26854,
  "источник": "https://7kas.sudrf.ru/modules.php?name=sud_delo&name_op=doc&number=10848805&delo_id=2800001&new=2800001&text_number=1&srv_num=1",
  "стороны": [
    {
      "роль": "ИСТЕЦ",
      "наименование": "С******в Р***ь М**********ч",
      "скрыто": false
    }
  ],
  "_снимок_от": "2026-10-08T20:41:02.733387+00:00",
  "_снимок_полной_сверки": "2026-10-08T19:12:19.705788+00:00",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Open by the number returned in search Verified

2026-10-08T20:41:48.134619+00:00 · 1.112 s

labour_number = client.call('kas_case', {
    'court': 7,
    'number': labour_search['результаты'][0]['номер_определения']
})

Shortened real result; variable: labour_number.

{
  "act_id": 613147,
  "суд": "7 КСОЮ",
  "дата": "2025-08-26",
  "знаков_в_тексте": 26854,
  "источник": "https://7kas.sudrf.ru/modules.php?name=sud_delo&name_op=doc&number=10848805&delo_id=2800001&new=2800001&text_number=1&srv_num=1",
  "стороны": [
    {
      "роль": "ИСТЕЦ",
      "наименование": "С******в Р***ь М**********ч",
      "скрыто": false
    }
  ],
  "_снимок_от": "2026-10-08T20:41:02.733387+00:00",
  "_снимок_полной_сверки": "2026-10-08T19:12:19.705788+00:00",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Open by case UID Verified

2026-10-08T20:41:50.077462+00:00 · 1.941 s

labour_uid = client.call('kas_case', {
    'court': 7,
    'uid': labour_card['УИД']
})

Shortened real result; variable: labour_uid.

{
  "act_id": 613147,
  "суд": "7 КСОЮ",
  "дата": "2025-08-26",
  "знаков_в_тексте": 26854,
  "источник": "https://7kas.sudrf.ru/modules.php?name=sud_delo&name_op=doc&number=10848805&delo_id=2800001&new=2800001&text_number=1&srv_num=1",
  "стороны": [
    {
      "роль": "ИСТЕЦ",
      "наименование": "С******в Р***ь М**********ч",
      "скрыто": false
    }
  ],
  "_снимок_от": "2026-10-08T20:41:02.733387+00:00",
  "_снимок_полной_сверки": "2026-10-08T19:12:19.705788+00:00",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Find proceedings by case UID Verified

2026-10-08T20:41:50.242395+00:00 · 0.163 s

labour_route = client.call('case_by_uid', {
    'uid': labour_card['УИД']
})

Shortened real result; variable: labour_route.

{
  "найдено": 4,
  "производства": [
    {
      "инстанция": "первая инстанция",
      "суд": "Свердловский районный суд г. Перми (Пермский край)",
      "код_суда": "59RS0007",
      "результат": "Иск (заявление, жалоба) УДОВЛЕТВОРЕН ЧАСТИЧНО",
      "карточка_на_сайте_суда": "https://sverdlov--perm.sudrf.ru/modules.php?name=sud_delo&srv_num=1&name_op=case&case_id=458112710&case_uid=f00cc8ca-1b75-4939-8944-d6d96b3f70a5&delo_id=1540005&new="
    }
  ],
  "показано": 4,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Resolve the district court from the UID Verified

2026-10-08T20:41:50.634335+00:00 · 0.39 s

labour_district_courts = client.call('raysud_courts', {
    'limit': 1,
    'code': labour_card['УИД'][:8]
})

Shortened real result; variable: labour_district_courts.

{
  "_снимок_номеров": {},
  "_снимок_актов": {},
  "_снимок_фасетов": {},
  "найдено": 1,
  "показано": 1,
  "суды": [
    {
      "код": "59RS0007",
      "суд": "Свердловский районный суд г. Перми (Пермский край)",
      "регион": "Пермский край",
      "карточек_дел": 53729,
      "источник": "district.db"
    }
  ],
  "next_cursor": null,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск. Адреса, даты рождения, паспортные данные, СНИЛС, ИНН физлица, телефоны и e-mail скрыты."
}

District card for the same first-instance case API limitation

2026-10-08T20:41:50.841617+00:00 · 0.206 s

labour_district_card = client.call('raysud_case', {
    'limit': 1,
    'court': labour_card['УИД'][:8],
    'uid': labour_card['УИД']
})

Shortened real result; variable: labour_district_card.

{
  "ошибка": "обезличивание недоступно, выдача остановлена"
}

District act retrieval shape; current masking refusal API limitation

2026-10-08T20:41:51.222868+00:00 · 0.38 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "raysud_act",
    "arguments": {
      "act_id": 2,
      "part": "full",
      "length": 200
    }
  }
}

Shortened real result; variable: labour_district_act.

{
  "ошибка": "обезличивание недоступно, выдача остановлена"
}

This is a separate demonstration act_id from the live service, not the employment case above. The API currently stops retrieval when masking is unavailable.

Full selected cassation act Verified

2026-10-08T20:41:51.958875+00:00 · 0.734 s

labour_full = client.call('kas_act', {
    'part': 'full',
    'act_id': labour_search['результаты'][0]['act_id']
})

Shortened real result; variable: labour_full.

{
  "act_id": 613147,
  "часть": "акт целиком",
  "знаков": 26854,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

First 200 source characters Verified

2026-10-08T20:41:52.162114+00:00 · 0.202 s

labour_window = client.call('kas_act', {
    'offset': 0,
    'length': 200,
    'act_id': labour_search['результаты'][0]['act_id']
})

Shortened real result; variable: labour_window.

{
  "act_id": 613147,
  "знаков_всего": 26854,
  "окно": [
    0
  ],
  "продолжение_есть": true,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Facts of two selected acts: first page Verified

2026-10-08T20:41:52.577041+00:00 · 0.413 s

labour_batch = client.call('kas_acts', {
    'part': 'facts',
    'limit': 1,
    'cursor': 0,
    'act_ids': ",".join(str(row['act_id']) for row in labour_search['результаты'][:2])
})

Shortened real result; variable: labour_batch.

{
  "часть": "фабула",
  "запрошено": 2,
  "максимум_актов_в_ответе": 67,
  "средний_размер_части_знаков": 1491,
  "бюджет_ответа_знаков": 100000,
  "отдано": 1,
  "page": {
    "showing": "1-1 of 2",
    "next_cursor": 1
  },
  "акты": [
    {
      "act_id": 613147,
      "суд": "7 КСОЮ",
      "дата": "2025-08-26",
      "знаков": 1495,
      "текст": "С******в Р.М., С*******а Н.П. обратились в суд с иском к Государственному бюджетному учреждению здравоохранения Пермского края «Городская клиническая больница № 2 имени Фёдора Христофоровича Граля» (д…"
    }
  ],
  "знаков_в_ответе": 1495,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Second selected act: cursor Verified

2026-10-08T20:41:52.793315+00:00 · 0.214 s

labour_batch_page = client.call('kas_acts', {
    'part': 'facts',
    'limit': 1,
    'cursor': 1,
    'act_ids': ",".join(str(row['act_id']) for row in labour_search['результаты'][:2])
})

Shortened real result; variable: labour_batch_page.

{
  "часть": "фабула",
  "запрошено": 2,
  "максимум_актов_в_ответе": 67,
  "средний_размер_части_знаков": 1491,
  "бюджет_ответа_знаков": 100000,
  "отдано": 1,
  "page": {
    "showing": "2-2 of 2",
    "next_cursor": null
  },
  "акты": [
    {
      "act_id": 168403,
      "суд": "7 КСОЮ",
      "дата": "2025-12-09",
      "знаков": 1450,
      "текст": "Л***е А.И. обратилась в суд с иском к ООО «Фармасинтез-Тюмень», в котором с учетом уточнения исковых требований просила взыскать средний заработок за время вынужденного прогула за период с 31 июля 202…"
    }
  ],
  "знаков_в_ответе": 1450,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Maintenance claims

Court code for regional filtering Verified

2026-10-08T20:41:53.032134+00:00 · 0.237 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "oblsud_courts",
    "arguments": {
      "contains": "Чуваш"
    }
  }
}

Shortened real result; variable: family_courts.

{
  "судов_в_индексе": 84,
  "карточек_дел": 11526512,
  "актов_выкачано_всего": 5246926,
  "текстов_актов_в_базе": 5246926,
  "суды": [
    {
      "код": "21OS0000",
      "суд": "Верховный Суд Чувашской Республики (Чувашская Республика - Чувашия)",
      "карточек_дел": 125452,
      "актов_выкачано": 44448,
      "источник": "индекс"
    }
  ],
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Card by the number returned in search Verified

2026-10-08T20:42:02.527692+00:00 · 0.354 s

family_card = client.call('oblsud_case', {
    'court': '21OS0000',
    'number': family_search['результаты'][0]['номер']
})

Shortened real result; variable: family_card.

{
  "источник": "индекс amazing.cat (карточка собрана с сайта суда)",
  "суд": {
    "код": "21OS0000",
    "наименование": "Верховный Суд Чувашской Республики (Чувашская Республика - Чувашия)"
  },
  "вид_производства": "Гражданские дела - апелляция",
  "стороны": [
    {
      "роль": "ИСТЕЦ(ЗАЯВИТЕЛЬ)",
      "наименование": "Ж****а Н*****я Ю*****а"
    }
  ],
  "результат": "РЕШЕНИЕ оставлено БЕЗ ИЗМЕНЕНИЯ",
  "актов_опубликовано": 1,
  "акты": [
    {
      "act_key": "21OS0000|doc|7930018|1",
      "дата_документа": "11.10.2023",
      "вид_документа": "Определение",
      "url": "/modules.php?name=sud_delo&name_op=doc&number=7930018&delo_id=5&new=5&text_number=1&srv_num=1",
      "текст_в_базе": true,
      "знаков": 26557,
      "документов_на_странице": 1
    }
  ],
  "ссылка_на_карточку": "https://vs.chv.sudrf.ru/modules.php?name=sud_delo&srv_num=1&name_op=case&case_id=11510066&case_uid=154b060b-fe1f-4a96-986c-534dfcc51750&delo_id=5&new=5",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Reopen by the card UID Verified

2026-10-08T20:42:02.757193+00:00 · 0.227 s

family_uid = client.call('oblsud_case', {
    'court': '21OS0000',
    'uid': family_card['uid']
})

Shortened real result; variable: family_uid.

{
  "источник": "индекс amazing.cat (карточка собрана с сайта суда)",
  "суд": {
    "код": "21OS0000",
    "наименование": "Верховный Суд Чувашской Республики (Чувашская Республика - Чувашия)"
  },
  "вид_производства": "Гражданские дела - апелляция",
  "стороны": [
    {
      "роль": "ИСТЕЦ(ЗАЯВИТЕЛЬ)",
      "наименование": "Ж****а Н*****я Ю*****а"
    }
  ],
  "результат": "РЕШЕНИЕ оставлено БЕЗ ИЗМЕНЕНИЯ",
  "актов_опубликовано": 1,
  "акты": [
    {
      "act_key": "21OS0000|doc|7930018|1",
      "дата_документа": "11.10.2023",
      "вид_документа": "Определение",
      "url": "/modules.php?name=sud_delo&name_op=doc&number=7930018&delo_id=5&new=5&text_number=1&srv_num=1",
      "текст_в_базе": true,
      "знаков": 26557,
      "документов_на_странице": 1
    }
  ],
  "ссылка_на_карточку": "https://vs.chv.sudrf.ru/modules.php?name=sud_delo&srv_num=1&name_op=case&case_id=11510066&case_uid=154b060b-fe1f-4a96-986c-534dfcc51750&delo_id=5&new=5",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Full selected regional act Verified

2026-10-08T20:42:03.533281+00:00 · 0.77 s

family_full = client.call('oblsud_act', {
    'part': 'full',
    'act_key': family_search['результаты'][0]['act_key']
})

Shortened real result; variable: family_full.

{
  "act_id": 2127158,
  "act_key": "21OS0000|doc|7930018|1",
  "часть": "full",
  "знаков": 26557,
  "код_суда": "21OS0000",
  "суд": "Верховный Суд Чувашской Республики (Чувашская Республика - Чувашия)",
  "вид_документа": "Определение",
  "дата": "2023-10-11",
  "источник": "https://vs.chv.sudrf.ru/modules.php?name=sud_delo&name_op=doc&number=7930018&delo_id=5&new=5&text_number=1&srv_num=1",
  "часть_не_выделена": false,
  "знаков_всего": 26557,
  "окно": [
    0
  ],
  "продолжение_есть": false,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Regional text window: offset/length Verified

2026-10-08T20:42:03.753585+00:00 · 0.219 s

family_window = client.call('oblsud_act', {
    'offset': 0,
    'length': 200,
    'act_key': family_search['результаты'][0]['act_key']
})

Shortened real result; variable: family_window.

{
  "источник": "из базы (собрано ранее)",
  "суд": {
    "код": "21OS0000",
    "наименование": "Верховный Суд Чувашской Республики (Чувашская Республика - Чувашия)"
  },
  "act_key": "21OS0000|doc|7930018|1",
  "дата_документа": "11.10.2023",
  "вид_документа": "Определение",
  "часть_страницы": 0,
  "документов_на_странице": 1,
  "знаков_всего": 26557,
  "окно": [
    0
  ],
  "продолжение_есть": true,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Verify the maintenance wording Verified

2026-10-08T20:42:03.983379+00:00 · 0.227 s

family_quote = client.call('oblsud_verify_quote', {
    'quote': 'взыскании алиментов',
    'act_key': family_search['результаты'][0]['act_key']
})

Shortened real result; variable: family_quote.

{
  "результаты": [],
  "найдено": 1,
  "показано": 1,
  "пул_разных_актов": 0,
  "_снимок_полной_сверки": "2026-10-08T20:16:32.947764+00:00",
  "_снимок_фасетов": "2026-10-07T03:19:42.938362+00:00",
  "act_key": "21OS0000|doc|7930018|1",
  "подтверждено": true,
  "проверено_частей": 1,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Family Code 80: acts at a selected date Verified

2026-10-08T20:42:04.746304+00:00 · 0.76 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "oblsud_by_norm",
    "arguments": {
      "code": "СК",
      "article": "80",
      "court": "21OS0000",
      "date_from": "2026-05-27",
      "date_to": "2026-05-27",
      "query": "алиментов",
      "limit": 1
    }
  }
}

Shortened real result; variable: family_norm.

{
  "результаты": [
    {
      "act_id": 403535,
      "act_key": "21OS0000|doc|9617019|1",
      "суд": "Верховный Суд Чувашской Республики (Чувашская Республика - Чувашия)",
      "код_суда": "21OS0000",
      "дата": "2026-05-27",
      "вид_документа": "Определение",
      "вид_производства": "admin",
      "judge_id": 2996140511861903,
      "источник": "https://vs.chv.sudrf.ru/modules.php?name=sud_delo&name_op=doc&number=9617019&delo_id=42&new=&text_number=1&srv_num=1"
    }
  ],
  "найдено": 1,
  "показано": 1,
  "пул_разных_актов": 1,
  "_снимок_полной_сверки": "2026-10-08T20:16:32.947764+00:00",
  "охват": {
    "срез": "21OS0000, 2026-05-27 — 2026-05-27",
    "известно_документов": 24,
    "собрано_документов": 24,
    "в_поиске_разных_актов": 24,
    "нормы": {
      "обработано_документов": 24,
      "со_ссылками": 24,
      "частей": 24,
      "ошибок": 0,
      "уникальных_связей": 527,
      "упоминаний": 730
    }
  },
  "_снимок_фасетов": "2026-10-07T03:19:42.938362+00:00",
  "cursor_next": null,
  "sorted_by": "дата, новые первыми",
  "page": {
    "sorted_by": "дата, новые первыми",
    "showing": "1-1 of 1",
    "next_cursor": null
  },
  "норма": {
    "code": "СК",
    "article": "80"
  },
  "include_frame": true,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Statistics for the selected court Verified

2026-10-08T20:42:04.915361+00:00 · 0.166 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "oblsud_stats",
    "arguments": {
      "court": "21OS0000"
    }
  }
}

Shortened real result; variable: family_stats.

{
  "результаты": [],
  "найдено": 44448,
  "показано": 0,
  "пул_разных_актов": 0,
  "_снимок_полной_сверки": "2026-10-08T20:16:32.947764+00:00",
  "охват": {
    "срез": "21OS0000",
    "известно_документов": 47037,
    "собрано_документов": 44448,
    "в_поиске_разных_актов": 44448,
    "нормы": {
      "обработано_документов": 44448,
      "со_ссылками": 44070,
      "частей": 44448,
      "ошибок": 0,
      "уникальных_связей": 657667,
      "упоминаний": 874607
    }
  },
  "_снимок_фасетов": "2026-10-07T03:19:42.938362+00:00",
  "производства": [
    {
      "n": 21839
    }
  ],
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Acts of the selected court by year Verified

2026-10-08T20:42:05.199652+00:00 · 0.28 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "oblsud_aggregate",
    "arguments": {
      "by": "year",
      "court": "21OS0000",
      "limit": 3
    }
  }
}

Shortened real result; variable: family_years.

{
  "результаты": [],
  "найдено": 44448,
  "показано": 3,
  "пул_разных_актов": 44448,
  "_снимок_полной_сверки": "2026-10-08T20:16:32.947764+00:00",
  "охват": {
    "срез": "21OS0000",
    "известно_документов": 47037,
    "собрано_документов": 44448,
    "в_поиске_разных_актов": 44448,
    "нормы": {
      "обработано_документов": 44448,
      "со_ссылками": 44070,
      "частей": 44448,
      "ошибок": 0,
      "уникальных_связей": 657667,
      "упоминаний": 874607
    }
  },
  "_снимок_фасетов": "2026-10-07T03:19:42.938362+00:00",
  "распределение": [
    {
      "разных_актов": 4205
    }
  ],
  "сумма_показанных_групп": 11675,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

The aggregate slice is selected by court code; the maintenance text filter is not passed here.

Bailiff inaction: KAS proceedings

KAS article 219: filing deadline Verified

2026-10-08T20:42:13.100088+00:00 · 1.179 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "kas_by_norm",
    "arguments": {
      "code": "КАС",
      "article": "219",
      "kind": "admin",
      "court": 2,
      "limit": 1
    }
  }
}

Shortened real result; variable: administrative_norm.

{
  "норма": "КАС 219",
  "найдено": 434,
  "обработано_в_этом_вызове": 400,
  "показано": 1,
  "результаты": [
    {
      "act_id": 2955,
      "суд": "2 КСОЮ",
      "дата": "2026-01-21",
      "знаков_в_тексте": 19589,
      "смещение": 10018
    }
  ],
  "_снимок_от": "2026-10-08T20:42:05.217772+00:00",
  "_снимок_полной_сверки": "2026-10-08T19:12:19.705788+00:00",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

KAS text at a date Verified

2026-10-08T20:42:13.547333+00:00 · 0.444 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "law_get_text",
    "arguments": {
      "act": "КАС",
      "articles": "219",
      "as_of": "2025-01-01"
    }
  }
}

Shortened real result; variable: administrative_law.

{
  "act": {
    "docid": 170464,
    "name": "Кодекс административного судопроизводства Российской Федерации",
    "law_group": "kas_rf",
    "redaction_date": "20260510",
    "n_articles": 427,
    "plain_chars": 757998,
    "token_estimate": 252666,
    "source_url": "https://mcp.amazingcat.net/russian_law/kas_rf",
    "redaction_verified": true,
    "actual_redaction_date": "20260510",
    "actual_redid": 490431
  },
  "as_of": "2025-01-01",
  "articles": [
    {
      "act": "Кодекс административного судопроизводства Российской Федерации",
      "article": "219",
      "as_of": "2025-01-01",
      "redaction_date": "20240819",
      "valid_until": "20250108",
      "redid": 457498,
      "text": "Статья 219. Срок обращения с административным исковым заявлением в суд\n1. Если настоящим Кодексом не установлены иные сроки обращения с административным исковым заявлением в суд, административное иско…"
    }
  ],
  "_note": "Текст в редакции, действовавшей на указанную дату (источник ЭБПИ)."
}

Recovery of legal costs

Outcomes for the selected court and year Verified

2026-10-08T20:42:52.539850+00:00 · 1.819 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "kas_aggregate",
    "arguments": {
      "by": "outcome",
      "court": 3,
      "kind": "civil",
      "year_from": 2026,
      "year_to": 2026,
      "limit": 3
    }
  }
}

Shortened real result; variable: costs_outcomes.

{
  "вид_производства": "гражданские",
  "всего_в_срезе": 10490,
  "показано_значений": 3,
  "счётчики": [
    {
      "дел": 8489
    }
  ],
  "_снимок_от": "2026-10-08T20:42:05.217772+00:00",
  "_снимок_полной_сверки": "2026-10-08T19:12:19.705788+00:00",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

This aggregate covers civil acts of the selected court/year. The tool has no text parameter: this is a different slice, not outcomes of the lexical costs matches.

Courts 1…9 and supported fields Verified

2026-10-08T20:42:52.975518+00:00 · 0.433 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "kas_stats",
    "arguments": {}
  }
}

Shortened real result; variable: costs_stats.

{
  "корпус": "кассационные суды общей юрисдикции (КСОЮ), суды 1–9",
  "бюджет_ответа_знаков": 100000,
  "актов": 1402707,
  "дел": 1809516,
  "актов_в_полнотексте": 1402707,
  "период": {
    "с": "2019-10-03",
    "по": "2026-10-01"
  },
  "по_судам": {
    "1": 226143,
    "2": 212040,
    "3": 134633,
    "4": 230215,
    "5": 88339,
    "6": 186222,
    "7": 49886,
    "8": 184842,
    "9": 90387
  },
  "по_годам": {
    "2019": 13109,
    "2020": 133550,
    "2021": 214927,
    "2022": 227247,
    "2023": 236496,
    "2024": 227319,
    "2025": 215739,
    "2026": 134320
  },
  "судей_в_справочнике": 944,
  "_снимок_от": "2026-10-08T20:42:05.217772+00:00",
  "_снимок_полной_сверки": "2026-10-08T19:12:19.705788+00:00",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Verify the selected quotation Verified

2026-10-08T20:42:53.101838+00:00 · 0.122 s

costs_quote = client.call('kas_verify_quote', {
    'quote': 'судебные расходы',
    'act_id': costs_search['результаты'][0]['act_id']
})

Shortened real result; variable: costs_quote.

{
  "подтверждено": false,
  "act_id": 1273602,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Morphological variants and ADJACENT may find a different word form. verify_quote separately checks the exact quotation; false is a verified negative result.

Procurement specifications

First 200 characters of the FAS decision Verified

2026-10-08T20:43:01.300041+00:00 · 7.559 s

procurement_text = client.call('fas_doc', {
    'offset': 0,
    'length': 200,
    'doc': procurement_search['результаты'][0]['uuid']
})

Shortened real result; variable: procurement_text.

{
  "корпус": "решения ФАС России (административная практика, НЕ суд)",
  "запрошено": 1,
  "отдано": 1,
  "документы": [
    {
      "did": 3054,
      "url": "https://br.fas.gov.ru/ca/upravlenie-kontrolya-razmeshcheniya-gosudarstvennogo-zakaza/6bf2bb1d-2ece-45f1-89f6-5053f1a16d11/",
      "вид_документа": "Решение",
      "знаков_всего": 8828,
      "окно": [
        0
      ],
      "продолжение_есть": true
    }
  ],
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Verify the wording in the FAS decision Verified

2026-10-08T20:43:01.585702+00:00 · 0.282 s

procurement_quote = client.call('fas_verify_quote', {
    'quote': 'техническое задание',
    'doc': procurement_search['результаты'][0]['uuid']
})

Shortened real result; variable: procurement_quote.

{
  "корпус": "решения ФАС России (административная практика, НЕ суд)",
  "подтверждено": true,
  "did": 3054,
  "url": "https://br.fas.gov.ru/ca/upravlenie-kontrolya-razmeshcheniya-gosudarstvennogo-zakaza/6bf2bb1d-2ece-45f1-89f6-5053f1a16d11/",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Batch integration

Returning goods and terminating a consumer contract

Reuse one MCP session, bound concurrency and pace requests to your key’s quota. Follow next_cursor, then retrieve selected act_ids with *_acts. Retry the same read-only call after Retry-After/server_busy or transient 502/503/504, using a finite retry budget and jitter. Schedule daily-quota retries for later. A 401 needs credential refresh; partial results need coverage checks or narrower filters.

batch.py + raw.py

"""Bounded batch search with pagination and retries. pip install requests

Keep raw.py in the same directory. Use your token's actual rpm, not a plan name.
"""
import json
import os

from raw import MCP


def pages(client, query, court, max_pages=2):
    cursor = 0
    session = ""
    for _ in range(max_pages):
        result = client.call("kas_search", {
            "phrase": query, "court": court, "kind": "civil", "detail": "brief",
            "limit": 2, "cursor": cursor, "session": session,
        })
        session = result.get("session", session)  # Tool workflow ID, distinct from MCP header.
        yield result
        if result.get("частично"):
            raise RuntimeError("Partial search: narrow the query before treating this as complete")
        following = result.get("page", {}).get("next_cursor")
        if following is None:
            return
        if following <= cursor:
            raise RuntimeError("Cursor did not advance")
        cursor = following
    # An explicit application bound: max_pages is not corpus exhaustion.


def main():
    client = MCP(os.environ["AMAZINGCAT_TOKEN"], rpm=int(os.getenv("AMAZINGCAT_RPM", "200")))
    try:
        client.initialize()
        for query in ("возврат товара", "расторжение договора"):
            for page in pages(client, query, court=1):
                print(json.dumps({"query": query, "found": page.get("найдено"),
                                  "shown": page.get("показано"), "page": page.get("page")},
                                 ensure_ascii=False))
    finally:
        client.close()


if __name__ == "__main__":
    main()

The example requests at most two pages per query. If the response is limited to the first 400 matches, partition exports by court/year and retain warnings. Search results can change during ingestion: persist arguments, cursor and IDs, deduplicate records. Use aggregate to compare distributions instead of top-ranked results.

Real output of the first two pages:

[
  {
    "found": 219,
    "shown": 2,
    "query": "возврат товара",
    "page": {
      "next_cursor": 2
    }
  },
  {
    "found": 219,
    "shown": 2,
    "query": "возврат товара",
    "page": {
      "next_cursor": 4
    }
  }
]

Tool reference

62 tools from live tools/list · 2026-10-08T20:40:15.443139+00:00. JSON · inputSchema

Names, server descriptions and schemas are generated from the live service. A listed tool does not guarantee access to a paid feature or availability of a specific act’s text.

search_practice

Semantic and full-text discovery across higher-court corpora; use get_case to verify the selected act.

Live server description (Russian, server-provided)

Смысловой/полнотекстовый поиск по практике высших судов РФ (обезличено, со ссылками и QR). Вызывать для поиска судебной практики с учётом режима активации в инструкциях подключения: по обращению «amazingcat» / «кот» / «котик» либо автоматически, если выбран этот режим. Выдача иерархична: constitutional_context (КС) → vs_guidance (Пленумы) → latest_practice (определения ВС) → results (объединённо). Каждый акт несёт source_url (оригинал на сайте суда) и qr.qr_image_url. Для полного текста — get_case(doc_id, court). query — запрос на русском (институт права, обстоятельства спора, термины). limit — число результатов. article — фильтр по статье, напр. "333 ГК", "348.10 ТК", "100.1 ФКЗ". court — корпус: "ВС" / "КС" / "Пленум" / "ВАС" / "ОбзорВС" (пусто = все). detail — "full" (по умолчанию) или "compact": только карточка + позиция суда, без фабулы и фрагментов; полный текст акта — get_case(doc_id, court).

ParameterTypeRequiredDefault
querystringyes—
limitinteger—10
articlestring—""
courtstring—""
detailstring—"full"
inputSchema · JSON Schema
{
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "limit": {
      "default": 10,
      "title": "Limit",
      "type": "integer"
    },
    "article": {
      "default": "",
      "title": "Article",
      "type": "string"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "detail": {
      "default": "full",
      "title": "Detail",
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "title": "search_practiceArguments",
  "type": "object"
}

find_by_norm

Higher-court practice linked to a legal provision; optional corpus filter.

Live server description (Russian, server-provided)

Практика по НОРМЕ статьи сразу по трём корпусам: определения ВС, постановления КС, пункты Пленумов. Вызывать для поиска судебной практики с учётом режима активации в инструкциях подключения: по обращению «amazingcat» / «кот» / «котик» либо автоматически, если выбран этот режим. article — "348.10 ТК", "333 ГК", "159 УК", "40 Конституции". court — необяз. фильтр ВС/КС/Пленум/ВАС/ОбзорВС. detail — "full" (по умолчанию) или "compact" (карточка + позиция суда, без полного текста). Корпус ВС ранжирован по содержательности: акты с позицией коллегии вперёд, отказные определения судьи ВС и акты без аналитической карточки — в хвосте. Каждый акт обезличен и снабжён source_url + QR на оригинал.

ParameterTypeRequiredDefault
articlestringyes—
limitinteger—30
courtstring—""
detailstring—"full"
inputSchema · JSON Schema
{
  "properties": {
    "article": {
      "title": "Article",
      "type": "string"
    },
    "limit": {
      "default": 30,
      "title": "Limit",
      "type": "integer"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "detail": {
      "default": "full",
      "title": "Detail",
      "type": "string"
    }
  },
  "required": [
    "article"
  ],
  "title": "find_by_normArguments",
  "type": "object"
}

practice_under_norms

Compact higher-court guidance grouped by several legal provisions.

Live server description (Russian, server-provided)

Позиция высших судов РФ СРАЗУ ПО НЕСКОЛЬКИМ НОРМАМ — компактно, сгруппировано по нормам. Вызывать для поиска судебной практики с учётом режима активации в инструкциях подключения: по обращению «amazingcat» / «кот» / «котик» либо автоматически, если выбран этот режим. Укажи нормы, под которые готовишь правовую позицию (как в иске/жалобе/отзыве). По каждой норме вернётся набор актов с готовой позицией суда (position), source_url и QR — БЕЗ полного текста. Один вызов заменяет несколько find_by_norm. Полный текст любого акта — get_case(doc_id, court). norms — нормы через запятую/точку с запятой, напр. "393.1 ГК; 32 ЗоЗПП; 330 ГПК". query — необязательный тезис: если задан, внутри каждой нормы акты ранжируются под него. court — фильтр корпуса: "ВС" / "КС" / "Пленум" (пусто = все). limit_per_norm — сколько актов на норму (по умолчанию 5).

ParameterTypeRequiredDefault
normsstring—""
querystring—""
courtstring—""
limit_per_norminteger—5
inputSchema · JSON Schema
{
  "properties": {
    "norms": {
      "default": "",
      "title": "Norms",
      "type": "string"
    },
    "query": {
      "default": "",
      "title": "Query",
      "type": "string"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "limit_per_norm": {
      "default": 5,
      "title": "Limit Per Norm",
      "type": "integer"
    }
  },
  "title": "practice_under_normsArguments",
  "type": "object"
}

find_term

Lexical phrase or case-number lookup across higher-court acts, including full-text chunks; does not search laws.

Live server description (Russian, server-provided)

Лексический поиск точной фразы или НОМЕРА акта/дела (напр. "<case-number>") по корпусу ВС/КС/Пленумов/ВАС/Обзоров ВС. Вызывать для поиска судебной практики с учётом режима активации в инструкциях подключения: по обращению «amazingcat» / «кот» / «котик» либо автоматически, если выбран этот режим. НЕ ищет по текстам законов и кодексов. Для текста закона используй get_norm_text, law_get_text или law_search; нулевая выдача find_term не означает, что текста статьи нет в law-корпусе. Удобно для скриншотов: извлеки номер дела из изображения и найди акт. Выдача обезличена, с source_url + QR. court — фильтр по корпусу: "ВС" / "КС" / "Пленум" / "ВАС" / "ОбзорВС" (пусто = все). detail — "full" (по умолчанию) или "compact" (карточка + позиция суда, без полного текста).

ParameterTypeRequiredDefault
phrasestringyes—
limitinteger—20
courtstring—""
detailstring—"full"
inputSchema · JSON Schema
{
  "properties": {
    "phrase": {
      "title": "Phrase",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "detail": {
      "default": "full",
      "title": "Detail",
      "type": "string"
    }
  },
  "required": [
    "phrase"
  ],
  "title": "find_termArguments",
  "type": "object"
}

list_tags

Frequent subject tags in Supreme Court and Plenum practice.

Live server description (Russian, server-provided)

Частотный список тематических тегов корпуса. court: "ВС" / "Пленум" / пусто = оба.

ParameterTypeRequiredDefault
min_countinteger—2
courtstring—""
limitinteger—200
inputSchema · JSON Schema
{
  "properties": {
    "min_count": {
      "default": 2,
      "title": "Min Count",
      "type": "integer"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "limit": {
      "default": 200,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "list_tagsArguments",
  "type": "object"
}

search_by_tag

Select Supreme Court or Plenum acts by a subject tag.

Live server description (Russian, server-provided)

Подборка актов по тематическому тегу. court: "ВС" / "Пленум" / пусто = оба. Обезличено, с source_url + QR. Корпус ВС: содержательные акты (позиция коллегии) вперёд, отказные определения — в хвосте.

ParameterTypeRequiredDefault
tagstringyes—
limitinteger—20
courtstring—""
exactboolean—false
inputSchema · JSON Schema
{
  "properties": {
    "tag": {
      "title": "Tag",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "exact": {
      "default": false,
      "title": "Exact",
      "type": "boolean"
    }
  },
  "required": [
    "tag"
  ],
  "title": "search_by_tagArguments",
  "type": "object"
}

browse_practice

Flat paginated higher-court cards with offset, year, provision and tag filters.

Live server description (Russian, server-provided)

Плоская постраничная подборка актов (реквизиты, теги, source_url + QR), без подробного анализа. query — смысловой/полнотекстовый запрос; tag — фильтр по тегу; year_from/year_to — годовой диапазон.

ParameterTypeRequiredDefault
querystring—""
limitinteger—30
offsetinteger—0
courtstring—""
articlestring—""
tagstring—""
year_frominteger—null
year_tointeger—null
inputSchema · JSON Schema
{
  "properties": {
    "query": {
      "default": "",
      "title": "Query",
      "type": "string"
    },
    "limit": {
      "default": 30,
      "title": "Limit",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "title": "Offset",
      "type": "integer"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "article": {
      "default": "",
      "title": "Article",
      "type": "string"
    },
    "tag": {
      "default": "",
      "title": "Tag",
      "type": "string"
    },
    "year_from": {
      "default": null,
      "title": "Year From",
      "type": "integer"
    },
    "year_to": {
      "default": null,
      "title": "Year To",
      "type": "integer"
    }
  },
  "title": "browse_practiceArguments",
  "type": "object"
}

find_similar

Similar acts for a case_id returned by search.

Live server description (Russian, server-provided)

Похожие акты по embedding для case_id из выдачи: определения ВС РФ, а также близкие пункты Пленумов / Обзоров ВС (поле court в карточке). Обезличено, с case_number, source_url + QR.

ParameterTypeRequiredDefault
case_idintegeryes—
limitinteger—10
inputSchema · JSON Schema
{
  "properties": {
    "case_id": {
      "title": "Case Id",
      "type": "integer"
    },
    "limit": {
      "default": 10,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "case_id"
  ],
  "title": "find_similarArguments",
  "type": "object"
}

get_case

Full masked card/text by doc_id and corpus; includes original-source URL and QR when available.

Live server description (Russian, server-provided)

Полная (обезличенная) карточка/текст акта по корпусу. court: "ВС" / "КС" / "Пленум" / "ВАС" / "ОбзорВС". Содержит source_url + QR.

ParameterTypeRequiredDefault
doc_idintegeryes—
courtstring—"ВС"
inputSchema · JSON Schema
{
  "properties": {
    "doc_id": {
      "title": "Doc Id",
      "type": "integer"
    },
    "court": {
      "default": "ВС",
      "title": "Court",
      "type": "string"
    }
  },
  "required": [
    "doc_id"
  ],
  "title": "get_caseArguments",
  "type": "object"
}

get_case_details

Alias of get_case.

Live server description (Russian, server-provided)

Алиас get_case: полная обезличенная карточка/текст акта по doc_id и корпусу.

ParameterTypeRequiredDefault
doc_idintegeryes—
courtstring—"ВС"
inputSchema · JSON Schema
{
  "properties": {
    "doc_id": {
      "title": "Doc Id",
      "type": "integer"
    },
    "court": {
      "default": "ВС",
      "title": "Court",
      "type": "string"
    }
  },
  "required": [
    "doc_id"
  ],
  "title": "get_case_detailsArguments",
  "type": "object"
}

locate_pinpoint

PRO: locate a quotation on an source PDF page and paragraph. Being listed does not grant free access.

Live server description (Russian, server-provided)

PRO: точная привязка цитаты к PDF акта — страница, визуальный абзац (считая СВЕРХУ страницы), пункт (для Пленума/Обзора) + готовая сноска с URL и QR. Вызывать ПОСЛЕ выбора дословной цитаты из полного текста акта (get_case): передать court ("ВС"/"КС"/"Пленум"/"ОбзорВС"/"ВАС"), doc_id из карточки и дословный фрагмент quote. Если фраза найдена в PDF — вернёт page / visual_paragraph_on_page / act_point для ЭТОЙ цитаты; иначе честно сообщит, что точный pinpoint не установлен (без догадок). Для Пленума/Обзора act_point (номер пункта) возвращается только при наличии PDF акта локально — иначе честный quote_only без догадок. Доступно на тарифе PRO.

ParameterTypeRequiredDefault
courtstringyes—
doc_idintegeryes—
quotestringyes—
inputSchema · JSON Schema
{
  "properties": {
    "court": {
      "title": "Court",
      "type": "string"
    },
    "doc_id": {
      "title": "Doc Id",
      "type": "integer"
    },
    "quote": {
      "title": "Quote",
      "type": "string"
    }
  },
  "required": [
    "court",
    "doc_id",
    "quote"
  ],
  "title": "locate_pinpointArguments",
  "type": "object"
}

stats

Higher-court corpus and index coverage.

Live server description (Russian, server-provided)

Охват базы по корпусам (ВС/КС/Пленумы), норм-индекс, RAG. Личных данных не содержит.

ParameterTypeRequiredDefault
inputSchema · JSON Schema
{
  "properties": {},
  "title": "statsArguments",
  "type": "object"
}

law_find

Resolve a law or code and inspect its size and table of contents.

Live server description (Russian, server-provided)

Найти закон/кодекс по аббревиатуре, номеру или названию («ГК», «44-ФЗ», «о защите прав потребителей»). Возвращает кандидатов с реквизитами и РАЗМЕРОМ (plain_chars/token_estimate/n_articles) — по нему реши, какую часть запрашивать через law_get_text (статья/диапазон/раздел). Неоднозначное («ВК» = Воздушный и Водный) вернёт несколько кандидатов — уточни следующим запросом.

ParameterTypeRequiredDefault
querystringyes—
limitinteger—8
inputSchema · JSON Schema
{
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "limit": {
      "default": 8,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "law_findArguments",
  "type": "object"
}

law_get_text

Retrieve complete articles, ranges or sections; as_of requests a historical revision, subject to coverage warnings.

Live server description (Russian, server-provided)

Текст закона целиком или в части. Сначала вызови law_find, чтобы узнать размер и оглавление. act — аббревиатура/номер/название («ГК», «44-ФЗ», «Воздушный кодекс»). articles — статья/диапазон/список: «333» | «1-100» | «333,395,85-1». Дотовая статья (с надстрочным суффиксом в оригинале, напр. ст. 203.1) распознаётся в любой форме — «203.1», «203-1», «2031»; в ответе — каноничная форма через точку. section — фильтр по разделу/главе (подстрока из оглавления), если не заданы articles. as_of — дата правоотношений «ГГГГ-ММ-ДД»: вернуть текст в редакции, действовавшей на эту дату. offset — служебная пагинация для продолжения широкого запроса; бери из pagination.next_request. Шапка act отражает акт, из которого РЕАЛЬНО взяты статьи: «НК» + ст. 333.19 → в шапке часть вторая (117-ФЗ) с её редакцией. Если статьи пришли из нескольких актов (частей) группы — в шапке сводная карточка с multi_act=true и список acts, а реквизиты и редакция — у каждой статьи. Если ничего не задано и акт большой — вернётся оглавление с подсказкой по диапазону. ВАЖНО: текст найденной статьи возвращается целиком, без скрытой обрезки. Поэтому для больших актов и крупных статей не запрашивай широкие диапазоны одним вызовом: сначала law_find, затем точную статью или короткий диапазон; если нужно много статей, делай несколько отдельных вызовов. Если широкий запрос не помещается, ответ содержит truncated=true и pagination.next_request с точными аргументами следующего вызова. Без pagination ответ не считается продолжимым.

ParameterTypeRequiredDefault
actstringyes—
articlesstring—""
sectionstring—""
as_ofstring—""
max_charsinteger—60000
offsetinteger—0
inputSchema · JSON Schema
{
  "properties": {
    "act": {
      "title": "Act",
      "type": "string"
    },
    "articles": {
      "default": "",
      "title": "Articles",
      "type": "string"
    },
    "section": {
      "default": "",
      "title": "Section",
      "type": "string"
    },
    "as_of": {
      "default": "",
      "title": "As Of",
      "type": "string"
    },
    "max_chars": {
      "default": 60000,
      "title": "Max Chars",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "title": "Offset",
      "type": "integer"
    }
  },
  "required": [
    "act"
  ],
  "title": "law_get_textArguments",
  "type": "object"
}

get_norm_text

Current statutory provision text with revision verification and optional higher-court practice; no as_of parameter.

Live server description (Russian, server-provided)

Дословный текст НОРМ закона РФ — для цитаты/сноски. Главный путь, когда норма упомянута в тексте. norms — ОДНА или СРАЗУ НЕСКОЛЬКО норм в одной строке через «;» или запятую, напр. "333 ГК; 1102 Гражданский кодекс; 32 ЗоЗПП; 56 ГПК". Закон в каждой норме можно указывать: • общепринятым сокращением — ГК, ГПК, АПК, КАС, УК, УПК, КоАП, НК, ТК, ЖК, СК, ЗК, ВК, ЗоЗПП…; • полным названием — «Гражданский кодекс», «о защите прав потребителей»; • номером акта — «44-ФЗ», «2300-1». Дотовая статья (с надстрочным суффиксом в оригинале, напр. ст. 203.1) понимается в любой форме — «203.1 ГПК», «203-1 ГПК», «2031 ГПК»; каноничная форма в ответе — через точку. Возвращает по каждой норме: ДОСЛОВНЫЙ текст статьи, ссылку на вьюер для сноски и (with_practice) практику ВС/КС по норме. Неоднозначное сокращение («107 ВК» = Воздушный и Водный кодекс) вернёт текст из всех подходящих актов — уточни следующим запросом. ВАЖНО: статьи возвращаются целиком, без скрытой обрезки. Если нужно проверить много норм или потенциально крупные статьи (например НК), вызывай инструмент несколькими небольшими порциями; для точной цитаты одной нормы лучше один вызов = одна норма. РЕДАКЦИЯ: у каждой нормы есть redaction_date и redaction_verified — true (редакция сверена с ЭБПИ и действует), false (снапшот базы отстал; тогда текст по возможности заменён на текст ДЕЙСТВУЮЩЕЙ редакции — см. redaction_warning) или null (сверить не удалось — не выдавай текст как действующий, проверь law_history). Ссылаться на норму как на действующую можно только при redaction_verified=true либо text_redaction="actual_ebpi".

ParameterTypeRequiredDefault
normsstringyes—
with_practiceboolean—true
limit_practiceinteger—4
inputSchema · JSON Schema
{
  "properties": {
    "norms": {
      "title": "Norms",
      "type": "string"
    },
    "with_practice": {
      "default": true,
      "title": "With Practice",
      "type": "boolean"
    },
    "limit_practice": {
      "default": 4,
      "title": "Limit Practice",
      "type": "integer"
    }
  },
  "required": [
    "norms"
  ],
  "title": "get_norm_textArguments",
  "type": "object"
}

law_history

Available revision dates for a law.

Live server description (Russian, server-provided)

История редакций акта (для запроса текста на дату X) + законы-правки, затрагивающие акт. Возвращает список редакций ЭБПИ с датами вступления (reddate) и redid — по ним law_get_text(as_of=…) выдаёт текст на нужную дату. Глубина истории зависит от акта (часто консолидация с ~2022).

ParameterTypeRequiredDefault
actstringyes—
inputSchema · JSON Schema
{
  "properties": {
    "act": {
      "title": "Act",
      "type": "string"
    }
  },
  "required": [
    "act"
  ],
  "title": "law_historyArguments",
  "type": "object"
}

law_stats

Legislation catalogue and text coverage.

Live server description (Russian, server-provided)

Охват корпуса законов: сколько актов, проиндексировано, по видам; дата снапшота.

ParameterTypeRequiredDefault
inputSchema · JSON Schema
{
  "properties": {},
  "title": "law_statsArguments",
  "type": "object"
}

npa_org_find

Local fuzzy lookup of issuing authorities and their catalogue codes.

Live server description (Russian, server-provided)

Локальный справочник органов Банка B: нечеткий поиск ведомства/органа по названию или алиасу (например: Минтранс, Росавиация, ФССП). Возвращает code для последующего поиска по каталогу.

ParameterTypeRequiredDefault
querystringyes—
limitinteger—10
inputSchema · JSON Schema
{
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "limit": {
      "default": 10,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "npa_org_findArguments",
  "type": "object"
}

npa_kind_find

Local fuzzy lookup of regulatory document types.

Live server description (Russian, server-provided)

Локальный справочник видов актов Банка B: нечеткий поиск вида акта (например: Приказ, Постановление, Распоряжение). Возвращает code для npa_catalog_search.

ParameterTypeRequiredDefault
querystringyes—
limitinteger—10
inputSchema · JSON Schema
{
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "limit": {
      "default": 10,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "npa_kind_findArguments",
  "type": "object"
}

npa_catalog_stats

Coverage of the local regulatory-act catalogue.

Live server description (Russian, server-provided)

Размер локального справочника НПА: сколько органов/видов актов и карточек актов проиндексировано.

ParameterTypeRequiredDefault
inputSchema · JSON Schema
{
  "properties": {},
  "title": "npa_catalog_statsArguments",
  "type": "object"
}

npa_originals_text

Retrieve a downloaded original by original_id.

Live server description (Russian, server-provided)

Текст локально скачанного оригинала НПА по original_id из npa_originals_search/npa_catalog_search.

ParameterTypeRequiredDefault
original_idstringyes—
max_charsinteger—40000
inputSchema · JSON Schema
{
  "properties": {
    "original_id": {
      "title": "Original Id",
      "type": "string"
    },
    "max_chars": {
      "default": 40000,
      "title": "Max Chars",
      "type": "integer"
    }
  },
  "required": [
    "original_id"
  ],
  "title": "npa_originals_textArguments",
  "type": "object"
}

npa_originals_stats

Coverage of downloaded regulatory originals.

Live server description (Russian, server-provided)

Размер локального полнотекстового корпуса скачанных оригиналов НПА.

ParameterTypeRequiredDefault
inputSchema · JSON Schema
{
  "properties": {},
  "title": "npa_originals_statsArguments",
  "type": "object"
}

npa_find

On-demand external lookup in the Legislation of Russia bank; availability depends on the source.

Live server description (Russian, server-provided)

Поиск НПА в банке «Законодательство России» (pravo.gov.ru): ведомственные приказы (ФАП, СанПиН, регламенты, инструкции министерств/служб), а также иные акты, которых НЕТ в федеральном корпусе law_search/get_norm_text. Зови, когда нужен приказ/акт министерства или ведомства, акт по номеру+органу, либо историческая редакция. Запрос — по смыслу/реквизитам, напр. «Федеральные авиационные правила общие правила воздушных перевозок» или «приказ Минтранса 82». Возвращает список {nd, kind, date, number, title, source_url}; затем — npa_text(nd[, as_of]).

ParameterTypeRequiredDefault
querystringyes—
limitinteger—15
inputSchema · JSON Schema
{
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "limit": {
      "default": 15,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "npa_findArguments",
  "type": "object"
}

npa_text

On-demand regulatory text by nd, with optional historical date.

Live server description (Russian, server-provided)

Текст НПА из банка «Законодательство России» по его nd (см. npa_find). as_of (необяз., ДД.ММ.ГГГГ) — текст редакции, ДЕЙСТВОВАВШЕЙ на дату (историческая глубина, в т.ч. до 2022, чего нет в актуальном федеральном корпусе). Без as_of — действующая редакция. Возвращает реквизиты, список редакций (rdk + даты правок), сам текст и ссылку-источник на вьюер pravo.gov.ru.

ParameterTypeRequiredDefault
ndstringyes—
as_ofstring—""
inputSchema · JSON Schema
{
  "properties": {
    "nd": {
      "title": "Nd",
      "type": "string"
    },
    "as_of": {
      "default": "",
      "title": "As Of",
      "type": "string"
    }
  },
  "required": [
    "nd"
  ],
  "title": "npa_textArguments",
  "type": "object"
}

wording_review

Review draft wording against verbatim Supreme Court passages and expression frequencies.

Live server description (Russian, server-provided)

ВЫЧИТКА СЛОВОУПОТРЕБЛЕНИЯ русского юридического текста по актам ВС РФ. Зови перед тем как отдать пользователю готовую жалобу, иск, отзыв, возражения или ходатайство, а также на просьбы «причесать формулировки», «написать как суд», «проверить язык документа», «убрать следы нейросети» в юридическом тексте. Присылай предложения СВОЕГО документа целиком (до 40 за вызов, каждое 40–700 знаков), а не ключевые слова. На каждое вернутся: дословные фрагменты мотивировочных и описательных частей определений ВС РФ с номером акта, датой и ссылкой; частоты слов предложения по корпусу; и отдельно сочетания, которых в практике НЕТ НИ РАЗУ, хотя каждое их слово употребительно, — это самый полезный сигнал, обычно именно он и показывает неудачный оборот. Готовых замен инструмент НЕ возвращает и ничего не переписывает: он показывает, какими словами о том же пишет сам суд, а решение принимаешь ты. Более частый вариант не обязан вытеснять уместную формулировку, а редкость сама по себе не ошибка. Фрагменты — образец ЯЗЫКА: переносить из них обстоятельства, требования, нормы и выводы чужого дела нельзя. sentences — предложения вашего текста. per_sentence — сколько фрагментов на предложение (1–8, по умолчанию 3). article — сузить выборку до актов по норме, напр. "203 ГПК" или "203 ГПК; 434 ГПК". Пусто — весь корпус. proceeding — вид судопроизводства: civil / administrative / economic / any. zone — часть акта: reasoning (мотивировочная) / narrative (описательная) / пусто (обе). exclude_roles — роли фрагмента через запятую, которые не нужны: lower_court (пересказ нижестоящего суда), party_position (позиция стороны). frequencies — считать ли частоты выражений (по умолчанию да).

ParameterTypeRequiredDefault
sentencesarrayyes—
per_sentenceinteger—3
articlestring—""
proceedingstring—"any"
zonestring—""
exclude_rolesstring—""
frequenciesboolean—true
inputSchema · JSON Schema
{
  "properties": {
    "sentences": {
      "items": {
        "type": "string"
      },
      "title": "Sentences",
      "type": "array"
    },
    "per_sentence": {
      "default": 3,
      "title": "Per Sentence",
      "type": "integer"
    },
    "article": {
      "default": "",
      "title": "Article",
      "type": "string"
    },
    "proceeding": {
      "default": "any",
      "title": "Proceeding",
      "type": "string"
    },
    "zone": {
      "default": "",
      "title": "Zone",
      "type": "string"
    },
    "exclude_roles": {
      "default": "",
      "title": "Exclude Roles",
      "type": "string"
    },
    "frequencies": {
      "default": true,
      "title": "Frequencies",
      "type": "boolean"
    }
  },
  "required": [
    "sentences"
  ],
  "title": "wording_reviewArguments",
  "type": "object"
}

wording_stats

Coverage of the legal-wording corpus.

Live server description (Russian, server-provided)

Границы корпуса вычитки: сколько актов и предложений, лимиты вызова, версии. Вызывай, если нужно понять, что именно покрывает wording_review и какие у него ограничения по объёму запроса.

ParameterTypeRequiredDefault
inputSchema · JSON Schema
{
  "properties": {},
  "title": "wording_statsArguments",
  "type": "object"
}

kas_stats

Cassation courts: Collected coverage, courts, years, field availability and supported filter values.

Live server description (Russian, server-provided)

Границы и покрытие корпуса КАССАЦИИ судов общей юрисдикции: суды, годы, охват полей, словарь кодов норм, допустимые значения параметров, размеры частей акта. Вызывать первым: отсюда берутся значения для остальных kas-инструментов. Отвечает мгновенно; счётчики берутся из снимка и пересчитываются в фоне.

ParameterTypeRequiredDefault
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "kas_statsArguments",
  "type": "object"
}

kas_categories

Cassation courts: Court-provided case categories with identifiers and collected counts.

Live server description (Russian, server-provided)

Дерево категорий спора по рубрикатору ГАС «Правосудие» со счётчиками. Категорию проставил сам суд — надёжнее, чем угадывать тему словами.

ParameterTypeRequiredDefault
containsstring—""
rootstring—""
limitinteger—40
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "contains": {
      "default": "",
      "title": "Contains",
      "type": "string"
    },
    "root": {
      "default": "",
      "title": "Root",
      "type": "string"
    },
    "limit": {
      "default": 40,
      "title": "Limit",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "kas_categoriesArguments",
  "type": "object"
}

kas_judges

Cassation courts: Judge lookup returning a stable judge_id for search filters; names may remain public officeholders.

Live server description (Russian, server-provided)

Справочник судей кассационных судов: фамилия → идентификатор. Судья задаётся идентификатором, не строкой: формат записи в судах разный.

ParameterTypeRequiredDefault
surnamestring—""
courtinteger—0
limitinteger—20
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "surname": {
      "default": "",
      "title": "Surname",
      "type": "string"
    },
    "court": {
      "default": 0,
      "title": "Court",
      "type": "integer"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "kas_judgesArguments",
  "type": "object"
}

kas_parties

Cassation courts: Party card lookup; identifiers are supplied by the source and must not be inferred from names.

Live server description (Russian, server-provided)

Справочник сторон: наименование или ИНН → ключ и число дел. Одно лицо записано в карточках десятками способов; ИНН по названию не выводится.

ParameterTypeRequiredDefault
namestring—""
innstring—""
only_orgboolean—false
limitinteger—20
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "name": {
      "default": "",
      "title": "Name",
      "type": "string"
    },
    "inn": {
      "default": "",
      "title": "Inn",
      "type": "string"
    },
    "only_org": {
      "default": false,
      "title": "Only Org",
      "type": "boolean"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "kas_partiesArguments",
  "type": "object"
}

kas_probe

Cassation courts: Compare lexical formulations and counts before reading full results.

Live server description (Russian, server-provided)

Проверить НЕСКОЛЬКО формулировок вопроса РАЗОМ (через вертикальную черту) и увидеть, сколько актов даёт каждая. Лексический поиск чувствителен к формулировке, одиночная проверка обманывает. Вызывать первым, когда лексика спора неочевидна. kind — вид производства: civil (гражданские, по умолчанию), admin (административные, КАС), koap (правонарушения, КоАП), criminal, all (civil + admin + koap). Виды не смешиваются: ответ всегда называет свой вид и сколько того же лежит в других.

ParameterTypeRequiredDefault
variantsstringyes—
topinteger—20
detailstring—"brief"
courtinteger—0
categorystring—""
outcomestring—""
appellant_rolestring—""
judge_idinteger—0
partystring—""
normsstring—""
year_frominteger—0
year_tointeger—0
kindstring—""
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "variants": {
      "title": "Variants",
      "type": "string"
    },
    "top": {
      "default": 20,
      "title": "Top",
      "type": "integer"
    },
    "detail": {
      "default": "brief",
      "title": "Detail",
      "type": "string"
    },
    "court": {
      "default": 0,
      "title": "Court",
      "type": "integer"
    },
    "category": {
      "default": "",
      "title": "Category",
      "type": "string"
    },
    "outcome": {
      "default": "",
      "title": "Outcome",
      "type": "string"
    },
    "appellant_role": {
      "default": "",
      "title": "Appellant Role",
      "type": "string"
    },
    "judge_id": {
      "default": 0,
      "title": "Judge Id",
      "type": "integer"
    },
    "party": {
      "default": "",
      "title": "Party",
      "type": "string"
    },
    "norms": {
      "default": "",
      "title": "Norms",
      "type": "string"
    },
    "year_from": {
      "default": 0,
      "title": "Year From",
      "type": "integer"
    },
    "year_to": {
      "default": 0,
      "title": "Year To",
      "type": "integer"
    },
    "kind": {
      "default": "",
      "title": "Kind",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "required": [
    "variants"
  ],
  "title": "kas_probeArguments",
  "type": "object"
}

kas_by_norm

Cassation courts: Indexed provision lookup with code/article, zone and optional additional provision filters.

Live server description (Russian, server-provided)

Практика кассации по НОРМЕ — с предложением, в котором суд на неё сослался. Кодексы и федеральные законы с номером; подзаконные акты индексом не разбираются, их ищут фразой. Код пишется как в индексе («ГПК», «КоАП», «Конституция», «ФЗ № 229-ФЗ»), но синонимы («229-ФЗ», «ЗоЗПП», «Закон об исполнительном производстве») приводятся к нему сами — ответ называет подстановку. Для процессуального ВОПРОСА рамку стадии не выключать. kind — вид производства: civil (гражданские, по умолчанию), admin (административные, КАС), koap (правонарушения, КоАП), criminal, all (civil + admin + koap). Виды не смешиваются: ответ всегда называет свой вид и сколько того же лежит в других.

ParameterTypeRequiredDefault
codestringyes—
articlestringyes—
partstring—""
zonestring—"motivation"
include_frameboolean—true
with_normstring—""
courtinteger—0
outcomestring—""
judge_idinteger—0
limitinteger—10
kindstring—""
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "code": {
      "title": "Code",
      "type": "string"
    },
    "article": {
      "title": "Article",
      "type": "string"
    },
    "part": {
      "default": "",
      "title": "Part",
      "type": "string"
    },
    "zone": {
      "default": "motivation",
      "title": "Zone",
      "type": "string"
    },
    "include_frame": {
      "default": true,
      "title": "Include Frame",
      "type": "boolean"
    },
    "with_norm": {
      "default": "",
      "title": "With Norm",
      "type": "string"
    },
    "court": {
      "default": 0,
      "title": "Court",
      "type": "integer"
    },
    "outcome": {
      "default": "",
      "title": "Outcome",
      "type": "string"
    },
    "judge_id": {
      "default": 0,
      "title": "Judge Id",
      "type": "integer"
    },
    "limit": {
      "default": 10,
      "title": "Limit",
      "type": "integer"
    },
    "kind": {
      "default": "",
      "title": "Kind",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "required": [
    "code",
    "article"
  ],
  "title": "kas_by_normArguments",
  "type": "object"
}

kas_aggregate

Cassation courts: Corpus distribution by the requested dimension; sample rankings do not describe outcome frequencies.

Live server description (Russian, server-provided)

Счётчики по срезу корпуса кассации. Единственный допустимый источник выводов о том, как обычно решаются такие споры, и способ построить профиль судьи. Профиль — для выбора аргументации; статистику по судье в текст документа не вставлять. kind — вид производства: civil (гражданские, по умолчанию), admin (административные, КАС), koap (правонарушения, КоАП), criminal, all (civil + admin + koap). Виды не смешиваются: ответ всегда называет свой вид и сколько того же лежит в других. Разрез by=kind сравнивает виды между собой.

ParameterTypeRequiredDefault
bystring—"outcome"
judge_idinteger—0
courtinteger—0
categorystring—""
outcomestring—""
appellant_rolestring—""
groundsstring—""
year_frominteger—0
year_tointeger—0
limitinteger—25
kindstring—""
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "by": {
      "default": "outcome",
      "title": "By",
      "type": "string"
    },
    "judge_id": {
      "default": 0,
      "title": "Judge Id",
      "type": "integer"
    },
    "court": {
      "default": 0,
      "title": "Court",
      "type": "integer"
    },
    "category": {
      "default": "",
      "title": "Category",
      "type": "string"
    },
    "outcome": {
      "default": "",
      "title": "Outcome",
      "type": "string"
    },
    "appellant_role": {
      "default": "",
      "title": "Appellant Role",
      "type": "string"
    },
    "grounds": {
      "default": "",
      "title": "Grounds",
      "type": "string"
    },
    "year_from": {
      "default": 0,
      "title": "Year From",
      "type": "integer"
    },
    "year_to": {
      "default": 0,
      "title": "Year To",
      "type": "integer"
    },
    "limit": {
      "default": 25,
      "title": "Limit",
      "type": "integer"
    },
    "kind": {
      "default": "",
      "title": "Kind",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "kas_aggregateArguments",
  "type": "object"
}

kas_acts

Cassation courts: Batch retrieval of complete named sections for selected act IDs; cursor continues the supplied list.

Live server description (Russian, server-provided)

Пакетный добор: несколько отобранных дел за ОДИН вызов, каждое целой частью акта. По знакам ничего не режется; сколько дел войдёт, зависит от размера части.

ParameterTypeRequiredDefault
act_idsstringyes—
partstring—"facts"
limitinteger—0
cursorinteger—0
budgetinteger—0
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "act_ids": {
      "title": "Act Ids",
      "type": "string"
    },
    "part": {
      "default": "facts",
      "title": "Part",
      "type": "string"
    },
    "limit": {
      "default": 0,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "default": 0,
      "title": "Cursor",
      "type": "integer"
    },
    "budget": {
      "default": 0,
      "title": "Budget",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "required": [
    "act_ids"
  ],
  "title": "kas_actsArguments",
  "type": "object"
}

kas_case

Cassation courts: Case card and collected acts by court plus number, UID or selected act IDs.

Live server description (Russian, server-provided)

Полные карточки дел кассации: стороны, движение по инстанциям, исход, реквизиты. Единственный источник реквизитов для ссылки в документе. Принимает и одно дело, и список отобранных. Номер без суда ненадёжен — номера производств повторяются.

ParameterTypeRequiredDefault
numberstring—""
courtinteger—0
uidstring—""
act_idinteger—0
act_idsstring—""
limitinteger—0
cursorinteger—0
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "number": {
      "default": "",
      "title": "Number",
      "type": "string"
    },
    "court": {
      "default": 0,
      "title": "Court",
      "type": "integer"
    },
    "uid": {
      "default": "",
      "title": "Uid",
      "type": "string"
    },
    "act_id": {
      "default": 0,
      "title": "Act Id",
      "type": "integer"
    },
    "act_ids": {
      "default": "",
      "title": "Act Ids",
      "type": "string"
    },
    "limit": {
      "default": 0,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "default": 0,
      "title": "Cursor",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "kas_caseArguments",
  "type": "object"
}

kas_act

Cassation courts: One act, a named section or a source-coordinate text window; select the act explicitly.

Live server description (Russian, server-provided)

Текст ОДНОГО кассационного акта: целиком, либо названной частью, либо окном вокруг подстроки. Для нескольких отобранных дел этот инструмент не нужен — есть пакетный добор.

ParameterTypeRequiredDefault
act_idintegeryes—
partstring—""
aroundstring—""
offsetinteger—0
lengthinteger—0
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "act_id": {
      "title": "Act Id",
      "type": "integer"
    },
    "part": {
      "default": "",
      "title": "Part",
      "type": "string"
    },
    "around": {
      "default": "",
      "title": "Around",
      "type": "string"
    },
    "offset": {
      "default": 0,
      "title": "Offset",
      "type": "integer"
    },
    "length": {
      "default": 0,
      "title": "Length",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "required": [
    "act_id"
  ],
  "title": "kas_actArguments",
  "type": "object"
}

kas_verify_quote

Cassation courts: Check that a quotation occurs verbatim in the selected act; do not quote a masked name as original text.

Live server description (Russian, server-provided)

Сверить, что цитата ДОСЛОВНО есть в кассационном акте. В процессуальный документ переносится только подтверждённое — это защита от выдуманных формулировок.

ParameterTypeRequiredDefault
act_idintegeryes—
quotestringyes—
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "act_id": {
      "title": "Act Id",
      "type": "integer"
    },
    "quote": {
      "title": "Quote",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "required": [
    "act_id",
    "quote"
  ],
  "title": "kas_verify_quoteArguments",
  "type": "object"
}

oblsud_courts

Regional court codes, names and collected coverage; use these codes for court filters.

Live server description (Russian, server-provided)

Справочник судов уровня СУБЪЕКТА (областных, краевых, республиканских, окружных, городских судов Москвы и Петербурга) со счётчиками: код суда, название, сайт, сколько карточек дел в индексе и сколько документов по суду уже выкачано (тексты остального докачиваются по требованию, см. oblsud_act). Вызывать ПЕРВЫМ. Код суда — обязательный параметр oblsud_case и oblsud_act, и взять его больше неоткуда: здесь суд обозначается не цифрой 1..9, как кассационные суды в kas_*, а кодом ГАС «Правосудие» вида 50OS0000 (Московский областной), 78OS0000 (Санкт-Петербургский городской). Отсутствующие карточки запрашиваются с сайта. contains — часть кода или названия, чтобы не читать все 83 строки.

ParameterTypeRequiredDefault
containsstring—""
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "contains": {
      "default": "",
      "title": "Contains",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "oblsud_courtsArguments",
  "type": "object"
}

oblsud_case

Regional courts: Case card and collected acts by court plus number, UID or selected act IDs.

Live server description (Russian, server-provided)

Карточка дела областного (краевого, республиканского, окружного, городского) суда: суд, номер, дело и суд первой инстанции, стороны, судья-докладчик, даты, результат, движение дела и ПЕРЕЧЕНЬ ОПУБЛИКОВАННЫХ АКТОВ с датой и видом каждого. Текста акта не отдаёт — за текстом идут в oblsud_act по act_key из этого перечня. ЧЕМ ОТЛИЧАЕТСЯ ОТ oblsud_act: oblsud_case отвечает на вопрос «что это за дело и какие документы по нему опубликованы», oblsud_act — «что написано в конкретном документе». Начинать почти всегда надо отсюда: у дела бывает несколько актов (определение о назначении, апелляционное определение, определение об исправлении описки), и брать текст «первого попавшегося» нельзя. СУД ОБЯЗАТЕЛЕН вместе с номером, и это не формальность. Номера производств не уникальны между судами. Если court не передан, инструмент вернёт ВСЕ совпадения и потребует уточнить — сам он не выбирает и никогда не выберет. ДАТЫ. Инструмент отдаёт дату ДОКУМЕНТА из карточки суда, а не дату заседания и не дату поступления дела. Сохранённая карточка берётся из индекса, отсутствующая — с mos-gorsud.ru. Адресация: court + number, либо uid (для судов sudrf — case_uid из карточки, для Мосгорсуда — uuid или путь /mgs/services/cases/<раздел>/details/<uuid>).

ParameterTypeRequiredDefault
courtstring—""
numberstring—""
uidstring—""
sessionstring—""
act_idinteger—0
act_idsstring—""
limitinteger—0
cursorinteger—0
inputSchema · JSON Schema
{
  "properties": {
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "number": {
      "default": "",
      "title": "Number",
      "type": "string"
    },
    "uid": {
      "default": "",
      "title": "Uid",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    },
    "act_id": {
      "default": 0,
      "title": "Act Id",
      "type": "integer"
    },
    "act_ids": {
      "default": "",
      "title": "Act Ids",
      "type": "string"
    },
    "limit": {
      "default": 0,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "default": 0,
      "title": "Cursor",
      "type": "integer"
    }
  },
  "title": "oblsud_caseArguments",
  "type": "object"
}

oblsud_act

Regional courts: One act, a named section or a source-coordinate text window; select the act explicitly.

Live server description (Russian, server-provided)

Текст одного акта по act_key/act_id либо court+number/uid (при неоднозначности выберите документ через oblsud_case). date сужает дату акта. Строка part — intro/facts/motivation/resolution/args/full, число — физическая часть страницы. offset/length или around задаёт окно; session связывает вызовы. Границы именованных частей — по апелляционному профилю производства, неизвестные и первая инстанция явно отмечаются. Числовая адресация сохраняет докачку с сайта. JSON содержит дату, вид документа, источник и смещения. Перед цитированием — oblsud_verify_quote.

ParameterTypeRequiredDefault
act_keystring—""
courtstring—""
numberstring—""
uidstring—""
datestring—""
partinteger | string—0
aroundstring—""
offsetinteger—0
lengthinteger—0
sessionstring—""
act_idinteger—0
inputSchema · JSON Schema
{
  "properties": {
    "act_key": {
      "default": "",
      "title": "Act Key",
      "type": "string"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "number": {
      "default": "",
      "title": "Number",
      "type": "string"
    },
    "uid": {
      "default": "",
      "title": "Uid",
      "type": "string"
    },
    "date": {
      "default": "",
      "title": "Date",
      "type": "string"
    },
    "part": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        }
      ],
      "default": 0,
      "title": "Part"
    },
    "around": {
      "default": "",
      "title": "Around",
      "type": "string"
    },
    "offset": {
      "default": 0,
      "title": "Offset",
      "type": "integer"
    },
    "length": {
      "default": 0,
      "title": "Length",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    },
    "act_id": {
      "default": 0,
      "title": "Act Id",
      "type": "integer"
    }
  },
  "title": "oblsud_actArguments",
  "type": "object"
}

oblsud_by_norm

Regional courts: Indexed provision lookup with code/article, zone and optional additional provision filters.

Live server description (Russian, server-provided)

По норме code/article; JSON с охватом и ссылками на разные акты. Кодексы и федеральные законы канонизируются общей библиотекой (ГК, ГПК, КоАП, Конституция, 229-ФЗ, ЗоЗПП). part — часть либо пункт, point — строго пункт; вместе они означают часть и пункт. query ищется в той же физической части, что ссылка. zone — именованная часть, with_norm — дополнительное выражение норм. include_frame=false пока возвращает явное отсутствие разметки рамки (этап 2c). court/year/kind/proc/date_from/date_to/judge/judge_id/party/category/first_court/ outcome/limit/session — срез и объём как у oblsud_search.

ParameterTypeRequiredDefault
codestringyes—
articlestringyes—
partstring—""
querystring—""
courtstring—""
yearstring—""
kindstring—""
date_fromstring—""
date_tostring—""
judgestring—""
partystring—""
categorystring—""
first_courtstring—""
outcomestring—""
limitinteger—20
sessionstring—""
pointstring—""
zonestring—""
include_frameboolean—true
with_normstring—""
judge_idinteger—0
procstring—""
inputSchema · JSON Schema
{
  "properties": {
    "code": {
      "title": "Code",
      "type": "string"
    },
    "article": {
      "title": "Article",
      "type": "string"
    },
    "part": {
      "default": "",
      "title": "Part",
      "type": "string"
    },
    "query": {
      "default": "",
      "title": "Query",
      "type": "string"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "year": {
      "default": "",
      "title": "Year",
      "type": "string"
    },
    "kind": {
      "default": "",
      "title": "Kind",
      "type": "string"
    },
    "date_from": {
      "default": "",
      "title": "Date From",
      "type": "string"
    },
    "date_to": {
      "default": "",
      "title": "Date To",
      "type": "string"
    },
    "judge": {
      "default": "",
      "title": "Judge",
      "type": "string"
    },
    "party": {
      "default": "",
      "title": "Party",
      "type": "string"
    },
    "category": {
      "default": "",
      "title": "Category",
      "type": "string"
    },
    "first_court": {
      "default": "",
      "title": "First Court",
      "type": "string"
    },
    "outcome": {
      "default": "",
      "title": "Outcome",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    },
    "point": {
      "default": "",
      "title": "Point",
      "type": "string"
    },
    "zone": {
      "default": "",
      "title": "Zone",
      "type": "string"
    },
    "include_frame": {
      "default": true,
      "title": "Include Frame",
      "type": "boolean"
    },
    "with_norm": {
      "default": "",
      "title": "With Norm",
      "type": "string"
    },
    "judge_id": {
      "default": 0,
      "title": "Judge Id",
      "type": "integer"
    },
    "proc": {
      "default": "",
      "title": "Proc",
      "type": "string"
    }
  },
  "required": [
    "code",
    "article"
  ],
  "title": "oblsud_by_normArguments",
  "type": "object"
}

oblsud_probe

Regional courts: Compare lexical formulations and counts before reading full results.

Live server description (Russian, server-provided)

Сравнить до восьми формулировок variants (или queries) через |. JSON считает разные акты и показывает top результатов с detail. court, year, kind (документ), proc (производство), date_from/date_to, judge/judge_id, party, category, first_court, outcome, appellant_role, norms, year_from/year_to сужают срез как у oblsud_search. session связывает вызовы. Частичный счёт — нижняя граница, неизвестный остаток не считается нулём.

ParameterTypeRequiredDefault
queriesstring—""
courtstring—""
yearstring—""
kindstring—""
date_fromstring—""
date_tostring—""
judgestring—""
partystring—""
categorystring—""
first_courtstring—""
outcomestring—""
sessionstring—""
variantsstring—""
topinteger—20
detailstring—"brief"
appellant_rolestring—""
judge_idinteger—0
normsstring—""
year_frominteger—0
year_tointeger—0
procstring—""
inputSchema · JSON Schema
{
  "properties": {
    "queries": {
      "default": "",
      "title": "Queries",
      "type": "string"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "year": {
      "default": "",
      "title": "Year",
      "type": "string"
    },
    "kind": {
      "default": "",
      "title": "Kind",
      "type": "string"
    },
    "date_from": {
      "default": "",
      "title": "Date From",
      "type": "string"
    },
    "date_to": {
      "default": "",
      "title": "Date To",
      "type": "string"
    },
    "judge": {
      "default": "",
      "title": "Judge",
      "type": "string"
    },
    "party": {
      "default": "",
      "title": "Party",
      "type": "string"
    },
    "category": {
      "default": "",
      "title": "Category",
      "type": "string"
    },
    "first_court": {
      "default": "",
      "title": "First Court",
      "type": "string"
    },
    "outcome": {
      "default": "",
      "title": "Outcome",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    },
    "variants": {
      "default": "",
      "title": "Variants",
      "type": "string"
    },
    "top": {
      "default": 20,
      "title": "Top",
      "type": "integer"
    },
    "detail": {
      "default": "brief",
      "title": "Detail",
      "type": "string"
    },
    "appellant_role": {
      "default": "",
      "title": "Appellant Role",
      "type": "string"
    },
    "judge_id": {
      "default": 0,
      "title": "Judge Id",
      "type": "integer"
    },
    "norms": {
      "default": "",
      "title": "Norms",
      "type": "string"
    },
    "year_from": {
      "default": 0,
      "title": "Year From",
      "type": "integer"
    },
    "year_to": {
      "default": 0,
      "title": "Year To",
      "type": "integer"
    },
    "proc": {
      "default": "",
      "title": "Proc",
      "type": "string"
    }
  },
  "title": "oblsud_probeArguments",
  "type": "object"
}

oblsud_parties

Regional courts: Party card lookup; identifiers are supplied by the source and must not be inferred from names.

Live server description (Russian, server-provided)

Справочник сторон со стабильным party_id, числом дел и разных актов. name — начало слов имени или названия (например ПАО Аэрофлот), inn — явные 10/12 цифр источника, only_org — только организации. court/year/date_from/ date_to сужают наличие участия; limit <=100, session связывает вызовы. ФИО физлица маскировано штатно: первая/последняя буква, длина сохранена. Технический ключ физлица непрозрачен. Список дел лица — oblsud_search(party=…).

ParameterTypeRequiredDefault
namestring—""
courtstring—""
yearstring—""
date_fromstring—""
date_tostring—""
limitinteger—20
sessionstring—""
innstring—""
only_orgboolean—false
inputSchema · JSON Schema
{
  "properties": {
    "name": {
      "default": "",
      "title": "Name",
      "type": "string"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "year": {
      "default": "",
      "title": "Year",
      "type": "string"
    },
    "date_from": {
      "default": "",
      "title": "Date From",
      "type": "string"
    },
    "date_to": {
      "default": "",
      "title": "Date To",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    },
    "inn": {
      "default": "",
      "title": "Inn",
      "type": "string"
    },
    "only_org": {
      "default": false,
      "title": "Only Org",
      "type": "boolean"
    }
  },
  "title": "oblsud_partiesArguments",
  "type": "object"
}

oblsud_aggregate

Regional courts: Corpus distribution by the requested dimension; sample rankings do not describe outcome frequencies.

Live server description (Russian, server-provided)

Распределение разных актов: by=court/year/kind/proc/judge/outcome/ appellant/category. query, court, year, kind, proc, date_from/date_to, judge/judge_id, party, category, first_court, outcome, appellant_role, grounds, year_from/year_to сужают срез; limit <=100, session связывает вызовы. JSON показывает охват и снимок.

ParameterTypeRequiredDefault
bystring—"court"
querystring—""
courtstring—""
yearstring—""
kindstring—""
date_fromstring—""
date_tostring—""
judgestring—""
partystring—""
categorystring—""
first_courtstring—""
outcomestring—""
limitinteger—20
sessionstring—""
appellant_rolestring—""
groundsstring—""
judge_idinteger—0
year_frominteger—0
year_tointeger—0
procstring—""
inputSchema · JSON Schema
{
  "properties": {
    "by": {
      "default": "court",
      "title": "By",
      "type": "string"
    },
    "query": {
      "default": "",
      "title": "Query",
      "type": "string"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "year": {
      "default": "",
      "title": "Year",
      "type": "string"
    },
    "kind": {
      "default": "",
      "title": "Kind",
      "type": "string"
    },
    "date_from": {
      "default": "",
      "title": "Date From",
      "type": "string"
    },
    "date_to": {
      "default": "",
      "title": "Date To",
      "type": "string"
    },
    "judge": {
      "default": "",
      "title": "Judge",
      "type": "string"
    },
    "party": {
      "default": "",
      "title": "Party",
      "type": "string"
    },
    "category": {
      "default": "",
      "title": "Category",
      "type": "string"
    },
    "first_court": {
      "default": "",
      "title": "First Court",
      "type": "string"
    },
    "outcome": {
      "default": "",
      "title": "Outcome",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    },
    "appellant_role": {
      "default": "",
      "title": "Appellant Role",
      "type": "string"
    },
    "grounds": {
      "default": "",
      "title": "Grounds",
      "type": "string"
    },
    "judge_id": {
      "default": 0,
      "title": "Judge Id",
      "type": "integer"
    },
    "year_from": {
      "default": 0,
      "title": "Year From",
      "type": "integer"
    },
    "year_to": {
      "default": 0,
      "title": "Year To",
      "type": "integer"
    },
    "proc": {
      "default": "",
      "title": "Proc",
      "type": "string"
    }
  },
  "title": "oblsud_aggregateArguments",
  "type": "object"
}

oblsud_stats

Regional courts: Collected coverage, courts, years, field availability and supported filter values.

Live server description (Russian, server-provided)

Охват собранного корпуса: известно документов, собрано текстов, виды документов/производства и наличие полей карточек. Без параметров — весь корпус; court — код или однозначная часть названия, year — год либо диапазон 2019-2021. Перечень видов — это и есть список допустимых значений параметра kind у oblsud_search; других источников этого перечня нет. Части документа не увеличивают процент охвата. Для поиска по нормам показывает также охват разметки, уникальные связи «норма — акт», число упоминаний и ошибки разбора. Это отдельные показатели: наличие текста ещё не означает, что его ссылки уже разобраны. Наличие полей и производства считается по суду/корпусу целиком; year сужает охват текстов и норм. _снимок_* показывает время каждого индекса.

ParameterTypeRequiredDefault
courtstring—""
yearstring—""
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "year": {
      "default": "",
      "title": "Year",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "oblsud_statsArguments",
  "type": "object"
}

oblsud_verify_quote

Regional courts: Check that a quotation occurs verbatim in the selected act; do not quote a masked name as original text.

Live server description (Russian, server-provided)

Сверить дословную цитату с хранимыми текстами акта и показать окружение. Передайте act_key из поиска/карточки либо суд ВМЕСТЕ с номером дела. Если у дела несколько документов, выберите act_key через oblsud_case. Проверяются все хранимые части; ответ указывает part и позицию с нуля. Различия только в пробелах/мягких переносах отмечаются отдельно. При недоступном тексте или таймауте цитата считается НЕ ПРОВЕРЕННОЙ. quote — минимум 15 знаков. Сеть не используется, акты не докачиваются.

ParameterTypeRequiredDefault
act_keystring—""
courtstring—""
numberstring—""
quotestring—""
sessionstring—""
act_idinteger—0
inputSchema · JSON Schema
{
  "properties": {
    "act_key": {
      "default": "",
      "title": "Act Key",
      "type": "string"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "number": {
      "default": "",
      "title": "Number",
      "type": "string"
    },
    "quote": {
      "default": "",
      "title": "Quote",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    },
    "act_id": {
      "default": 0,
      "title": "Act Id",
      "type": "integer"
    }
  },
  "title": "oblsud_verify_quoteArguments",
  "type": "object"
}

oblsud_acts

Regional courts: Batch retrieval of complete named sections for selected act IDs; cursor continues the supplied list.

Live server description (Russian, server-provided)

Пакетный добор целых частей выбранных актов: act_ids через запятую. part — intro/facts/reasoning/resolution/args/full; budget — знаки, по умолчанию 100000. Непоместившиеся целые части перечисляются; cursor продолжает список.

ParameterTypeRequiredDefault
act_idsstringyes—
partstring—"facts"
limitinteger—0
cursorinteger—0
budgetinteger—0
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "act_ids": {
      "title": "Act Ids",
      "type": "string"
    },
    "part": {
      "default": "facts",
      "title": "Part",
      "type": "string"
    },
    "limit": {
      "default": 0,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "default": 0,
      "title": "Cursor",
      "type": "integer"
    },
    "budget": {
      "default": 0,
      "title": "Budget",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "required": [
    "act_ids"
  ],
  "title": "oblsud_actsArguments",
  "type": "object"
}

oblsud_categories

Regional courts: Court-provided case categories with identifiers and collected counts.

Live server description (Russian, server-provided)

Категории споров из карточек облсудов: рубрика/корень, дела и разные акты. contains — подстрока, root — точный корень; идентификаторы и счётчики из снимка.

ParameterTypeRequiredDefault
containsstring—""
rootstring—""
limitinteger—40
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "contains": {
      "default": "",
      "title": "Contains",
      "type": "string"
    },
    "root": {
      "default": "",
      "title": "Root",
      "type": "string"
    },
    "limit": {
      "default": 40,
      "title": "Limit",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "oblsud_categoriesArguments",
  "type": "object"
}

oblsud_judges

Regional courts: Judge lookup returning a stable judge_id for search filters; names may remain public officeholders.

Live server description (Russian, server-provided)

Судьи-докладчики облсудов: начало фамилии → стабильный judge_id для поиска. court — код или однозначное название; однофамильцев разных судов не объединяет.

ParameterTypeRequiredDefault
surnamestring—""
courtstring—""
limitinteger—20
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "surname": {
      "default": "",
      "title": "Surname",
      "type": "string"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "oblsud_judgesArguments",
  "type": "object"
}

case_by_uid

Proceedings across court levels for one UID.

Live server description (Russian, server-provided)

ВСЕ производства одного дела по УИД — сквозь все суды общей юрисдикции. УИД (уникальный идентификатор дела, вида <court>-<instance>-<year>-<serial>-<check>) присваивается делу в первой инстанции и идёт с ним дальше. Под одним УИД лежат: * само дело в первой инстанции (районный суд, в т.ч. районные суды Москвы); * МАТЕРИАЛЫ по этому делу — взыскание судебных расходов, разъяснение решения, индексация, отсрочка, пересмотр по новым обстоятельствам, исполнение приговора: у них свой номер (13-…, М-…, 4/17-…), но ТОТ ЖЕ УИД; * апелляция (областной, краевой, республиканский суд; Московский городской суд); * кассация (кассационные суды общей юрисдикции); * повторные рассмотрения после возврата из вышестоящего суда — новый номер, тот же УИД. Где взять УИД: в карточке дела на сайте суда и в шапке судебных актов (с 2019 г.). Вызывать, когда нужна история дела целиком: чем кончилась апелляция, была ли кассация, вернули ли дело, какие были материалы после решения. Каждое производство — суд, номер, даты, результат, вид (дело / материал / апелляция / кассация), ссылка на карточку суда и каким инструментом идти за актами («далее»). Полнота: первая инстанция и кассация — по собранным карточкам; апелляция — по УИД в тексте акта или по номеру дела первой инстанции.

ParameterTypeRequiredDefault
uidstring—""
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "uid": {
      "default": "",
      "title": "Uid",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "case_by_uidArguments",
  "type": "object"
}

raysud_case

District case card and available act IDs by court plus number or UID.

Live server description (Russian, server-provided)

Карточка районного дела, доступные стадии и список собранных документов. court — код (37RS0019) либо однозначное название; неоднозначное название возвращает кандидатов с регионом. number — основной, прежний номер или номер материала с буквальным суффиксом; нормализация едина с индексом Д1. Без суда — список «суд — дело» по всем судам и просьба уточнить court: показано N из M, limit<=100, cursor продолжает страницу. Повторные рассмотрения и материалы по УИД сохраняются отдельными производствами. uid — УИД производства через uid_index (не UUID карточки сайта). act_id/act_ids — документы из raysud_case; act_ids перечисляются через запятую. Москва 77RS читается из mgs_district.db. Даты/состояние карточки читаются по живому PK; полной таблицы движения в локальных источниках пока нет. Индекс номеров/актов догружается каждые 15 минут, изменённые старые поля перечитываются циклом refresh; отметки _снимок_* показывают срез.

ParameterTypeRequiredDefault
courtstring—""
numberstring—""
uidstring—""
sessionstring—""
limitinteger—20
cursorinteger—0
act_idinteger—0
act_idsstring—""
inputSchema · JSON Schema
{
  "properties": {
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "number": {
      "default": "",
      "title": "Number",
      "type": "string"
    },
    "uid": {
      "default": "",
      "title": "Uid",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "default": 0,
      "title": "Cursor",
      "type": "integer"
    },
    "act_id": {
      "default": 0,
      "title": "Act Id",
      "type": "integer"
    },
    "act_ids": {
      "default": "",
      "title": "Act Ids",
      "type": "string"
    }
  },
  "title": "raysud_caseArguments",
  "type": "object"
}

raysud_act

One district document by act_id/act_key, with source offsets and text-window continuation.

Live server description (Russian, server-provided)

Текст одного районного документа по act_id или act_key=raysud:<doc_id>. Те же параметры окна, что у kas_act/oblsud_act: around (подстрока), offset, length (знаки исходника, максимум 100000), part=full либо номер физической части из raysud_case. part=0 по умолчанию читает часть, адресованную act_id. intro/facts/reasoning/resolution/args пока возвращают явное отсутствие разметки первой инстанции; не подменяются кассационным профилем. court+number или uid выбирают акт только при однозначности; date (ISO) сужает дату документа. Если актов несколько — выберите act_id из списка. JSON содержит суд, номер, дату/вид документа, источник, исходные смещения и продолжение. part=full читает документ окнами до 100000 знаков; продолжайте по offset из ответа. Реквизиты физлиц заменяются понятными масками; окно/offset/length и around остаются в координатах исходника, поэтому длина выданной строки может отличаться от размера окна. Маска не является дословной цитатой. ФИО обезличивает общий публичный слой. Отсутствующий текст не скачивается в этом вызове; используйте ссылку на источник.

ParameterTypeRequiredDefault
act_keystring—""
courtstring—""
numberstring—""
uidstring—""
datestring—""
partinteger | string—0
aroundstring—""
offsetinteger—0
lengthinteger—0
sessionstring—""
act_idinteger—0
inputSchema · JSON Schema
{
  "properties": {
    "act_key": {
      "default": "",
      "title": "Act Key",
      "type": "string"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "number": {
      "default": "",
      "title": "Number",
      "type": "string"
    },
    "uid": {
      "default": "",
      "title": "Uid",
      "type": "string"
    },
    "date": {
      "default": "",
      "title": "Date",
      "type": "string"
    },
    "part": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        }
      ],
      "default": 0,
      "title": "Part"
    },
    "around": {
      "default": "",
      "title": "Around",
      "type": "string"
    },
    "offset": {
      "default": 0,
      "title": "Offset",
      "type": "integer"
    },
    "length": {
      "default": 0,
      "title": "Length",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    },
    "act_id": {
      "default": 0,
      "title": "Act Id",
      "type": "integer"
    }
  },
  "title": "raysud_actArguments",
  "type": "object"
}

raysud_courts

District/city court codes, regions and coverage with cursor pagination.

Live server description (Russian, server-provided)

Районные/городские суды: код, название, регион, источник и число карточек. contains — код, слова названия или регион; region — часть названия региона, code — код либо его префикс (37RS, 77RS); limit<=100, cursor продолжает список. Москва включается из отдельной mgs_district.db с честной пометкой охвата. Для дела выберите код и вызовите raysud_case(court=…, number=…).

ParameterTypeRequiredDefault
containsstring—""
sessionstring—""
regionstring—""
codestring—""
limitinteger—100
cursorinteger—0
inputSchema · JSON Schema
{
  "properties": {
    "contains": {
      "default": "",
      "title": "Contains",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    },
    "region": {
      "default": "",
      "title": "Region",
      "type": "string"
    },
    "code": {
      "default": "",
      "title": "Code",
      "type": "string"
    },
    "limit": {
      "default": 100,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "default": 0,
      "title": "Cursor",
      "type": "integer"
    }
  },
  "title": "raysud_courtsArguments",
  "type": "object"
}

fas_stats

FAS corpus, document types, regional offices and time coverage.

Live server description (Russian, server-provided)

Границы и покрытие корпуса решений ФАС России: сколько документов, за какой период, какие ВИДЫ документов и какие ТЕРРИТОРИАЛЬНЫЕ ОРГАНЫ в нём есть, сколько документов по годам. Вызывать первым: значения параметров fas_search берутся отсюда — вид документа и управление задаются так, как их печатает ФАС («Решение», «Предписание», «Приморское УФАС России»). ЧЕМ ЭТО ОТЛИЧАЕТСЯ ОТ СУДЕБНЫХ КОРПУСОВ. Здесь административная практика антимонопольного органа, а не суд: комиссия УФАС рассматривает жалобы на закупки (44-ФЗ, 223-ФЗ), дела о нарушении Закона о защите конкуренции, реестр недобросовестных поставщиков, рекламу, тарифы. На решение ФАС нельзя ссылаться как на позицию суда — оно само оспаривается в арбитражном суде. Судебную практику ищут в kas_* (кассация ОЮ), oblsud_* (облсуды) и search_practice/find_by_norm (ВС, КС, Пленумы, ВАС). Отвечает мгновенно: счётчики берутся из снимка на диске, в обработчике вызова счёта по корпусу нет вовсе.

ParameterTypeRequiredDefault
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "fas_statsArguments",
  "type": "object"
}

fas_doc

FAS document text by UUID, source URL or did, with text windows.

Live server description (Russian, server-provided)

Текст документа ФАС: целиком, окном или вокруг подстроки. Принимает uuid, адрес страницы (/to/…/<uuid>/) или did из выдачи fas_search; можно НЕСКОЛЬКО через запятую — тогда документы отдаются подряд, пока хватает бюджета ответа, а не поместившиеся называются поимённо, а не отбрасываются молча. around — показать окно вокруг подстроки (удобно, когда нужен один абзац из решения на 200 тыс. знаков). offset/length — окно по смещению; продолжение ответ подсказывает сам. Вместе с документом отдаётся карточка ДЕЛА, если документ на неё ссылается: у ФАС дело и документ — разные страницы, и стадия со сроками стоят в деле.

ParameterTypeRequiredDefault
docstring—""
aroundstring—""
offsetinteger—0
lengthinteger—0
budgetinteger—0
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "doc": {
      "default": "",
      "title": "Doc",
      "type": "string"
    },
    "around": {
      "default": "",
      "title": "Around",
      "type": "string"
    },
    "offset": {
      "default": 0,
      "title": "Offset",
      "type": "integer"
    },
    "length": {
      "default": 0,
      "title": "Length",
      "type": "integer"
    },
    "budget": {
      "default": 0,
      "title": "Budget",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "fas_docArguments",
  "type": "object"
}

fas_verify_quote

Check a verbatim quotation in a FAS document.

Live server description (Russian, server-provided)

Сверить, что цитата ДОСЛОВНО есть в документе ФАС. В процессуальный документ и в переписку с антимонопольным органом переносится только подтверждённое — это защита от выдуманных формулировок. Сверка идёт по исходному тексту, но допускает разрядку и мягкие переносы: ловится выдуманное, а не типографика. Цитата принимается и в ОБЕЗЛИЧЕННОМ виде, как её видит вызывающий: серия «*» сверяется как ровно такое же число букв (маска сохраняет длину слова), поэтому подмена слова другой длины подтверждения не получит.

ParameterTypeRequiredDefault
docstring—""
quotestring—""
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "doc": {
      "default": "",
      "title": "Doc",
      "type": "string"
    },
    "quote": {
      "default": "",
      "title": "Quote",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "fas_verify_quoteArguments",
  "type": "object"
}

How this looks to an AI agent user

  1. The user writes to ChatGPT/Claude: Попроси кота найти практику по обжалованию бездействия судебного пристава.
  2. The AI agent sends the cat a structured call:
    {
      "jsonrpc": "2.0",
      "id": 3,
      "method": "tools/call",
      "params": {
        "name": "kas_search",
        "arguments": {
          "text": "бездействие AND пристав",
          "kind": "admin",
          "limit": 1,
          "detail": "brief"
        }
      }
    }
  3. The cat returns JSON (a shortened real response):
    {
      "найдено": 22829,
      "показано": 1,
      "вид_производства": "административные (КАС)",
      "результаты": [
        {
          "act_id": 862258,
          "суд": "3 КСОЮ",
          "дата": "2025-11-26"
        }
      ],
      "максимум_карточек_в_ответе": 526,
      "page": {
        "showing": "1-1 of 22829",
        "sorted_by": "релевантность",
        "next_cursor": 1
      },
      "предупреждение": "совпадений 22829, обработаны первые 400. Сузьте фильтрами, иначе хвост не виден",
      "_снимок_от": "2026-10-08T20:42:05.217772+00:00",
      "_снимок_полной_сверки": "2026-10-08T19:12:19.705788+00:00",
      "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
    }
  4. The AI agent writes to the user: The cassation search found 22829 matches for «бездействие» and «пристав» in administrative court proceedings. kind=admin selects KAS proceedings. The selected case card and act text can then be retrieved.

The Russian alias «кот» supports inflections: кот, кота, коту, котом. The user’s phrase goes to the AI agent; MCP receives tools/call with arguments.

llms.txt · Machine-readable reference