English translation for research convenience. The Russian original remains the authoritative source.
CasusLegal CasusLegal Higher-court case-law corpus ← Home
For partner platforms

CasusLegal connector in your product

One address and one key for four corpora of Russian case law. Your assistant receives tools for searching and reading judgments; routing between corpora is handled on our side.

This page is for the platform’s technical specialists, which embeds CasusLegal in its product and itself serves end-user lawyers. If you are a lawyer and want to connect the connector to your neural network (Claude, ChatGPT, Grok and others), go to the connector connection, where access is provided by subscription and no partner key is needed.

1. Connection

Standard MCP server: connect it like any other connector in your chat.

ParameterValue
Addresshttps://mcp.casus.legal/partner/mcp
TransportMCP Streamable HTTP (not SSE)
AuthenticationAuthorization: Bearer clp_… — key provided separately
Connector name in the clientLatin characters only, for example CasusLegal
We explicitly specify the transport type A client configured for SSE will not connect to this address at all. In the MCP client’s configuration this is usually "type": "streamable-http" or "streamable" — depending on the library.
bash · connection check
curl -sS https://mcp.casus.legal/partner/mcp \
  -H "Authorization: Bearer $CASUS_PARTNER_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{
        "protocolVersion":"2025-06-18","capabilities":{},
        "clientInfo":{"name":"my-platform","version":"1.0"}}}'

The response contains — serverInfo.name: "CasusLegal Partner". Next, tools/list it should return nine tools.

2. Request headers

HeaderRequiredPurpose
Authorization: Bearer clp_… yes platform key
X-Partner-User-Id strongly recommended end-user (lawyer) pseudonym on your side

X-Partner-User-Id — any stable string that does not reveal the person’s identity: your internal identifier or its hash. It serves two purposes.

3. Tools

Six tools, each with a parameter corpus.

ToolWhat it does
casuslegal_search_practiceprimary subject-matter case-law search
casuslegal_find_termsearch for a phrase or rare term (consecutive words, in all word forms)
casuslegal_get_case_detailsfull text of the judgment by case_id
casuslegal_find_similarjudgments close to the specified one in legal position
casuslegal_list_tagsfrequency dictionary of the corpus’s topics
casuslegal_statscorpus contents: volume, year coverage, courts

Parameter corpus

ValueCorpusTopics
main
by default
Constitutional Court of the Russian Federation, Supreme Court of the Russian Federation, Supreme Commercial Court of the Russian Federation civil, commercial, tax, insolvency, corporate, contractual, employment and inheritance disputes; Resolutions of the Plenum and reviews of the Presidium of the Supreme Court of the Russian Federation; legal positions of the Constitutional Court of the Russian Federation
sip Intellectual Property Court trademarks, patents, copyright and related rights, disputes with Rospatent, domain-name disputes
kas administrative cases of the Supreme Court of the Russian Federation (KAS) regulatory review, challenges to decisions of public authorities, cadastral value, electoral disputes
kud criminal cases of the Supreme Court of the Russian Federation legal classification, sentencing, CPC RF, appeals and cassation proceedings against judgments
One question — one corpus The corpora do not overlap, so repeating the same query across the others is unnecessary and costly: each search takes about 30 seconds and returns a large volume of text. If your interface allows you to select a source, the cheapest option is to select corpus from it: the model then spends no token on selecting one.
json · tool call
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{
  "name":"casuslegal_search_practice",
  "arguments":{
    "query":"recovery of a penalty, reduction under Article 333 of the Civil Code",
    "corpus":"main",
    "limit":10
  }}}

4. What the response contains

A structured object. For the main corpus, these are the blocks constitutional_context (legal positions of the Constitutional Court of the Russian Federation), vs_guidance (Plenum resolutions and reviews of the Supreme Court of the Russian Federation), latest_practice (recent rulings of judicial chambers), vas_history (practice of the Supreme Commercial Court of the Russian Federation) and results.

Volume

One search returns approximately 110,000 characters, or about 40,000 tokens as input to your model. This is intentional: completeness of the results is the product. Factor this volume into your choice of the model that processes the response — at this scale, the difference in cost between models can be as much as twelvefold.

Time

A search takes about 30 seconds. Set the tool-call timeout to at least 120 seconds; otherwise, you will interrupt requests that are proceeding normally.

Links to judicial acts

Each judicial act has a field url — a page containing the full text. Pass it to the user as is, and do not truncate the parameter ?t=: without it, the link is invalid. The link remains valid for 30 days. If you plan to embed links in client documents, tell us — we will make them permanent.

Full text

The search returns the identifying details and key excerpts; the full judicial act is obtained by a separate call casuslegal_get_case_details(case_id, corpus). case_id is valid only within its own corpus.

We do not prescribe the format of the response to the user Service directives on how to format the response are not sent through the partner channel: your assistant responds under your contract.

5. Errors and limits

Failures are returned as a successful tool response with a field error — this allows your model to explain the situation to the user, rather than treating the connector as broken.

errorWhat happened
rate_limitedthe hourly limit has been exceeded — for the user or the integration
busythe concurrent-search limit has been reached; try again in a few seconds
corpus_forbiddenthe corpus is not included in your integration
corpus_unavailablethe corpus is temporarily unavailable
engine_not_readythe corpus data is being reloaded

401 is returned only at the connection level: the key is incorrect, revoked or expired. This is a configuration error; retries will not resolve it.

Default limits

Limits can be adjusted: if you reach one during normal operation, let us know and we will raise it.

6. Pre-launch checklist

Questions about integration and requests to change limits should be directed through your manager at CasusLegal or to @CasusLegalBot. The composition of the corpora and database volume are available on the page “Database”.
RU