CasusLegalКорпус практики высших судов ← На главную
API · Доступ по договорённости

API CasusLegal

Судебная практика высших судов прямо в вашем коде


Семантический поиск по практике высших судов как внешний инструмент. Подключается к вашему приложению на основе любой LLM или к любому HTTP-клиенту. Один запрос возвращает реальные акты с реквизитами, цитатами и ссылками на полный текст.

Написать администратору Личный кабинет Документация

Что это такое

Если коротко: то, что коннектор уже умеет внутри вашего Claude или ChatGPT, теперь можно встроить в собственный продукт.

API-ключ — это длинная секретная строка, которая начинается с cl_live_ (например, cl_live_QZbj…). Вы вставляете её в свой код, и она открывает вашему серверу или приложению доступ к практике Конституционного, Верховного и Высшего Арбитражного судов России. Это около 26 700 оригинальных актов с 1992 года и по сегодняшний день.

Вы отправляете обычный HTTP-запрос и получаете в ответ настоящие акты: реквизиты, дословные цитаты, ссылки на полный текст. Никаких выдуманных постановлений.

Храните ключ как пароль

Ключ показывается один раз при создании, поэтому сохраните его сразу. У нас он лежит только в зашифрованном виде, восстановить нельзя. Держите его на своём сервере, не зашивайте в сайт, мобильное приложение или публичный репозиторий. Если ключ утёк, отзовите его в кабинете и выпустите новый.

Условия акции

Один тариф на время промо. Никаких скрытых платежей.

300
запросов
10
дней с активации
1
активный ключ
0 ₽
бесплатно

Баланс запросов общий на аккаунт: те же запросы, что у бота и веб-чата. Когда промо закончится, баланс пополняется пакетами в том же кабинете.

Что умеет ключ

Как списываются запросы

Деньги на акции не расходуются, но баланс из 300 запросов считается так.

Списывает 1 запрос

  • поиск по практике
  • подбор-каталог
  • поиск точной фразы
  • поиск похожих дел

Бесплатно, баланс не трогает

  • открыть карточку акта
  • скачать полный текст
  • собрать и скачать подборку
  • список тем и статистика
Две понятные оговорки

Запрос списывается только если он прошёл успешно: при сбое на нашей стороне или исчерпанном балансе ничего не «съедается». Есть мягкое ограничение по скорости, около 20 запросов в минуту: оно не тратит баланс, а сглаживает пики.

Чего ключ не позволяет

Чтобы было честно и спокойно.

Где это пригодится

Сайт юрфирмы или онлайн-сервис

Клиент вводит вопрос и видит подборку реальных актов со ссылками. Поиск работает на смысле, поэтому подходит и неюристам.

Свой чат-бот или ассистент

Бот отвечает не «из головы», а со ссылками на конкретные дела. Снимает главную боль: выдуманные постановления.

RAG и обучение моделей

Подтягивайте полный текст актов в Markdown как контекст для заключений, проектов документов, ответов.

Подготовка документов

Нашли акты, выгрузили подборку в DOCX, вставили в иск, отзыв или меморандум. Часы ручного копирования уходят.

Аналитика и мониторинг

Пакетные запросы по темам, нормам и годам, статистика корпуса, регулярное отслеживание свежих позиций коллегий.

Внутренние системы компании

Практика в базе знаний, CRM юрдепартамента или системе согласования договоров, прямо там, где идёт работа.

Документация

Инструкция для разработчиков

Подключение, эндпоинты, обработка ошибок и настройка вашей LLM. Корпус: КС РФ (1992–2026), ВС РФ (2014–2026), ВАС РФ (1992–2014), около 26 700 оригинальных актов.

Подключение

Это REST-API. Подключается к вашему приложению на основе любой LLM или к любому HTTP-клиенту как внешний инструмент, который ваша модель вызывает для поиска по судебной практике.

Base URL: https://app.casus.legal

Аутентификация: заголовок Authorization: Bearer cl_live_…

Формат: JSON по HTTPS.

Не путать с MCP-коннектором

Адрес https://mcp.casus.legal/mcp — это отдельный MCP-коннектор для Claude. К REST-API и ключам cl_live_ он отношения не имеет.

1. Получить ключ

  1. Откройте Личный кабинет, раздел «API»Вход через Telegram или по почте и паролю, тот же аккаунт, что у бота и веб-чата.
    app.casus.legal/account
  2. Нажмите «Выпустить ключ»Ключ показывается один раз, начинается с cl_live_…. Сохраните сразу: восстановить нельзя, только перевыпустить.
  3. Проверьте балансНа старте бесплатный триал: 300 запросов на 10 дней, лимит 20 запросов в минуту на ключ. Дальше докупка пакетов в том же кабинете.
Учёт и лимит ключей

На время промо доступен один активный ключ: чтобы выпустить новый, отзовите текущий. Счётчик использованных запросов и остаток квоты видны в разделе «API» личного кабинета.

2. Первый запрос

bash · curl
curl -X POST https://app.casus.legal/v1/search \
  -H "Authorization: Bearer $CASUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "договор энергоснабжения, фактическое потребление", "limit": 15}'
python · httpx
import os, httpx

client = httpx.Client(
    base_url="https://app.casus.legal",
    headers={"Authorization": f"Bearer {os.environ['CASUS_API_KEY']}"},
    timeout=60,
)

r = client.post("/v1/search", json={
    "query": "снижение неустойки по статье 333 ГК",
    "limit": 15,
    "mode": "hybrid",
})
r.raise_for_status()
data = r.json()
for hit in data["results"]:
    print(hit["court"], hit["date"], hit["case_number"], hit["url"])

3. Эндпоинты

POST /v1/searchсписывает 1 запрос

Гибридный поиск. Списывает 1 запрос только при успешном ответе.

ПолеТипПо умолч.Описание
querystringобязательноЗапрос на русском. Пустой возвращает 400.
limitint 1–3010Размер выдачи. Для обзора рекомендуется 15–20.
modehybrid / bm25 / semantichybridhybrid (BM25 и семантика) рекомендуется.
courtstringФильтр: КС / ВС / ВАС / СКЭС / СКГД / Пленум / обзор.
act_type, tag, articlestringДоп. фильтры (article, напр. ст. 333 ГК РФ).
year_from, year_tointДиапазон лет.
deduplicatebooltrueСхлопывать итерации одного дела.
expandbooltrueРасширение запроса синонимами.

Структура ответа отдаёт готовые блоки по иерархии судов. Собирайте ответ из них, не делая отдельный запрос на каждый суд.

json · ответ /v1/search
{
  "_response_format_hint": "…директива формата ответа…",
  "constitutional_context": { "items": [ … ] },   // КС
  "vs_guidance":            { "items": [ … ] },   // Пленумы и обзоры ВС
  "latest_practice":        { "items": [ … ] },   // свежие определения коллегий ВС
  "vas_history":            [ … ],                // история: практика ВАС
  "results": [
    {
      "id": 12345, "court": "СКЭС", "date": "10.05.2024",
      "case_number": "305-ЭС24-12345", "title": "…", "snippet": "…",
      "score": 0.87,
      "url": "https://app.casus.legal/case/12345?t=<токен>"
    }
  ],
  "_supersession_alert": "…",   // при наличии отменённого и действующего акта
  "expansion": { … }
}
Поле url

У каждого акта в поле url лежит готовая ссылка на полный текст с токеном доступа ?t=…. Используйте её дословно: не собирайте ссылку из id и не выбрасывайте токен.

GET /v1/cases/{id}бесплатно

Карточка акта: реквизиты, sections (текст по разделам), articles, hashtags и ссылки url / url_md / url_docx. Используйте для дословных цитат у ключевых актов. Квоту не тратит.

bash · curl
curl https://app.casus.legal/v1/cases/12345 \
  -H "Authorization: Bearer $CASUS_API_KEY"

4. Ошибки и лимиты

Все ошибки приходят как JSON {"error": "<код>", "message": "…"}.

HTTPerrorКогдаЧто делать
400bad_requestНет query или битый JSONПоправить тело запроса
401unauthorizedНет ключа, неверный или отозванПроверить заголовок и ключ
402quota_exhaustedЗакончился промо-доступ (в теле reason, message, contact_url)Написать администратору в @CasusLegalBot для продления
403forbiddenУ ключа нет доступа к поискуПеревыпустить ключ
404not_foundАкт с таким id не найден
429rate_limitedПревышен лимит запросов в минутуЭкспоненциальный backoff
500internal_errorСбой на нашей сторонеПовтор с backoff, запрос не списывается
503engine_not_readyПередеплой или прогрев индексаПовтор через 1–3 мин
Учёт

POST /v1/search списывает 1 запрос только при ответе 200: ошибки не тарифицируются. GET /v1/cases/{id} бесплатен. Лимит запросов в минуту считается на ключ (на триале 20 в минуту). Остаток квоты виден в разделе «API» личного кабинета.

5. Лучшие практики

  • Ключ только на бэкенде. Храните в переменных окружения или секретах, не в коде, не в гите, не на клиенте.
  • Ретраи с экспонентой. На 429 и 5xx повторяйте с возрастающей паузой: 2с, 4с, 8с.
  • Кешируйте карточки. Содержимое GET /v1/cases/{id} стабильно, а вызов бесплатный.
  • Не модифицируйте ссылки. Поле url подписано токеном со сроком около 30 дней. Передавайте его как есть.

Настройка вашей LLM

API отдаёт сырьё: карточки актов, тематические блоки и подсказку формата _response_format_hint. Качество итогового ответа определяет системная инструкция вашей LLM. Ниже принципы для двух сценариев, не готовые промпты.

Сценарий A. Ответ в чате (обзор практики)

  1. Один поиск, широкий limit. Достаточно одного вызова /v1/search с осмысленным запросом и limit 15–20: иерархия судов уже приходит блоками. Не дробите тему на запросы по каждому суду.
  2. Передавайте модели _response_format_hint. Это встроенная директива формата, её учёт заметно приближает ответ к эталонному обзору.
  3. Роль «справочник, а не советчик». Перечислять все релевантные акты по иерархии (приоритет КС, свежесть ВС, ВАС как история), без итоговой рекомендации и без выбора «единственно верной» позиции за пользователя.
  4. Ссылки строго из поля url. Запретите конструировать адрес из id и удалять токен ?t=: без него ссылка не откроет текст.
  5. Цитаты экономно. Дословные цитаты тяните через /v1/cases/{id} только у 3–5 ключевых актов. У КС нужная цитата уже в инлайн-поле position. Это главный источник лишних токенов.
  6. Только из выдачи. Запретите достраивать практику по памяти: чего нет в ответе API, того «в базе нет».

Сценарий B. Составление каталога практики

Цель: подборка или список дел для выгрузки, без правового анализа.

  1. Сначала сузьте фильтрами. Пусть модель уточнит тему и применит фильтры court / act_type / tag / article / year_fromyear_to: каталог станет релевантным и компактным.
  2. Сбор без анализа. Берите по каждому акту id, реквизиты (суд, тип, дата, № дела) и url. Не пересказывайте и не цитируйте акты в этом режиме.
  3. Полнота через несколько запросов. Для широкой темы сделайте несколько /v1/search по подтемам, годам или судам и объедините результаты, отбросив дубли по id.
  4. Отдавайте список, а не вывод. Результат режима: таблица или перечень со ссылками url, который пользователь отфильтрует сам.
  5. Чёткое разделение режимов. Явно отделите этот режим от сценария A, чтобы модель не «съезжала» в развёрнутый анализ, когда просили подборку.