АПИ для реестра судебных дел

АПИ для реестра судебных дел позволяет получать дела СУДиДЕЛО, искать их по фильтрам, открывать карточки, рассчитывать сводные показатели, создавать дела и изменять их реквизиты. В веб-приложении этим возможностям соответствует раздел /Process — «Реестр судебных дел».

Подключение и API KEY

Скопируйте ключ пользователя в разделе «Интеграция — API». Порядок получения ключа: «Открытое API системы СУДиДЕЛО». Базовый адрес — https://api-sudodelo.torkndgov.ru; схемы методов — Swagger, CourtCases.

В большинстве методов apiKey передаётся в строке запроса. Исключение — создание дела: POST /api/CourtCases принимает ключ внутри JSON. Храните ключ на сервере интеграции и исключайте из публичных ссылок и журналов.

Примеры curl рассчитаны на Bash. Замените YOUR_API_KEY своим ключом, а условные номера и идентификаторы — нужными значениями.

1. Получить реестр с правами сотрудника

GET /api/CourtCases/search?apiKey=YOUR_API_KEY&numberPage=1&pageSize=100

Для выборки, соответствующей /Process, используйте /search. Метод возвращает активные дела организации, доступные владельцу ключа: он является ответственным, для дела открыт общий доступ либо ему предоставлены индивидуальные права.

Также существует GET /api/CourtCases с параметрами apiKey, numberPage и pageSize. У него другой охват прав; его выборка может быть шире, чем у /search даже без фильтров. Для воспроизведения реестра сотрудника используйте именно поиск.

curl --fail --get "https://api-sudodelo.torkndgov.ru/api/CourtCases/search" \
  --data-urlencode "apiKey=YOUR_API_KEY" \
  --data-urlencode "numberPage=1" \
  --data-urlencode "pageSize=100"

Нумерация страниц начинается с 1. Размер страницы по умолчанию — 100, максимум — 1000. Результаты упорядочены по убыванию идентификатора дела.

2. Поиск по фильтрам

Фильтры передаются отдельными query-параметрами того же метода GET /api/CourtCases/search. Разные заданные фильтры применяются совместно. Неиспользуемые параметры можно опустить.

2.1. Текст, номер дела и УИД

StringSearch ищет подстроку по номеру дела, номеру в суде, УИД, ссылке, комментарию и фабуле: достаточно совпадения в одном из этих полей. Поиск не учитывает регистр.

curl --fail --get "https://api-sudodelo.torkndgov.ru/api/CourtCases/search" \
  --data-urlencode "apiKey=YOUR_API_KEY" \
  --data-urlencode "StringSearch=А40-12345/2026"

Для поиска по конкретному полю используйте LawyerProcessNumber (номер дела), LawyerProcessComeInNumber (номер в суде), Uid, LawyerProcessLinkWebsite (ссылка), Comment (комментарий) или FabulaComment (фабула). Эти фильтры также ищут подстроку без учёта регистра.

2.2. Клиент, ответственный, вид дела и завершение

ClientId — идентификатор клиента, связанного с делом; AccountId — ответственный сотрудник; LawyerProcessTypeId — вид дела. Значения берутся из соответствующих записей и справочников системы. Фильтр ответственного не меняет права владельца API KEY.

HideCompleted=true исключает завершённые дела. По умолчанию параметр равен false. Активность записи и завершённость дела — разные признаки: поиск всегда ограничен активными записями.

curl --fail --get "https://api-sudodelo.torkndgov.ru/api/CourtCases/search" \
  --data-urlencode "apiKey=YOUR_API_KEY" \
  --data-urlencode "ClientId=12345" \
  --data-urlencode "HideCompleted=true"

2.3. Период регистрации

RegistrationDtFrom и RegistrationDtTo ограничивают дату регистрации дела. Границы включаются по календарному дню. Передавайте даты в формате YYYY-MM-DD; можно указать только одну границу.

curl --fail --get "https://api-sudodelo.torkndgov.ru/api/CourtCases/search" \
  --data-urlencode "apiKey=YOUR_API_KEY" \
  --data-urlencode "RegistrationDtFrom=2026-01-01" \
  --data-urlencode "RegistrationDtTo=2026-09-29"

2.4. Суммы и проценты

Для предъявленных значений доступны следующие пары нижней и верхней границы:

  • ClaimSumFrom / ClaimSumTo — сумма иска;
  • DebtSumFrom / DebtSumTo — долг;
  • PenaltyPercentFrom / PenaltyPercentTo — процент штрафной санкции;
  • AdministrativePenaltyFrom / AdministrativePenaltyTo — административный штраф;
  • MoralDamageCompensationFrom / MoralDamageCompensationTo — компенсация морального вреда;
  • OtherFrom / OtherTo — прочие суммы.

Для взысканных значений используются аналогичные пары с Levy: ClaimSumLevyFrom / ClaimSumLevyTo, DebtSumLevyFrom / DebtSumLevyTo, PenaltyPercentLevyFrom / PenaltyPercentLevyTo, AdministrativePenaltyLevyFrom / AdministrativePenaltyLevyTo, MoralDamageCompensationLevyFrom / MoralDamageCompensationLevyTo, OtherLevyFrom / OtherLevyTo. Денежные значения задаются в рублях, проценты — отдельно. Для дробной части используйте точку.

curl --fail --get "https://api-sudodelo.torkndgov.ru/api/CourtCases/search" \
  --data-urlencode "apiKey=YOUR_API_KEY" \
  --data-urlencode "ClaimSumFrom=100000" \
  --data-urlencode "ClaimSumTo=500000" \
  --data-urlencode "HideCompleted=true"

3. Разобрать ответ списка

Методы списка и поиска возвращают JSON-объект SectionListResponse. Его поля верхнего уровня:

  • section, dictionaryCode — раздел и код словаря;
  • numberPage, pageSize — номер и размер страницы;
  • returnedCount — число записей на этой странице;
  • dictionaryAttributes — описание атрибутов словаря;
  • items — найденные дела.

Поля totalCount в этом ответе нет. Для полной выгрузки увеличивайте numberPage, пока returnedCount не станет меньше pageSize. Если последняя страница полная, следующий запрос вернёт пустую. Изменение реестра между запросами может менять состав страниц.

Каждый элемент items содержит id (идентификатор дела), versionId (версия записи), parentId, name и массив attributes. Для маршрута {id} используйте items[].id, а не номер дела или versionId.

У атрибута есть attributeId, code, name и типизированные значения: longValue, stringValue, floatValue, dateValue, boolValue. Находите нужное поле по code, сверяйте метаданные dictionaryAttributes и читайте соответствующее значение. Не полагайтесь на порядок атрибутов в массиве.

4. Найти идентификатор по точному номеру

curl --fail --get "https://api-sudodelo.torkndgov.ru/api/CourtCases/id-by-number" \
  --data-urlencode "apiKey=YOUR_API_KEY" \
  --data-urlencode "number=А40-12345/2026"

number сравнивается с номером дела или номером в суде точно, без учёта регистра и пробелов по краям. При нескольких совпадениях возвращаются все найденные дела; при отсутствии совпадений — пустой список. Этот метод использует организационный доступ, как получение карточки; для поиска с правами сотрудника и фильтрами используйте /search.

5. Получить карточку и связанные сведения

curl --fail --get "https://api-sudodelo.torkndgov.ru/api/CourtCases/12345" \
  --data-urlencode "apiKey=YOUR_API_KEY"

Замените 12345 идентификатором дела. Ответ SectionItemResponse содержит section, dictionaryCode, dictionaryAttributes и item. Структура item соответствует одному элементу списка.

Дополнительные блоки карточки читаются отдельными GET-методами, к каждому добавляется ?apiKey=YOUR_API_KEY:

  • /api/CourtCases/{id}/stages — стадии;
  • /api/CourtCases/{id}/meetings — заседания;
  • /api/CourtCases/{id}/plaintiffs, /defendants, /third-parties — истцы, ответчики, третьи лица (каждый маршрут начинается с /api/CourtCases/{id});
  • /api/CourtCases/{id}/case-documents — документы дела;
  • /api/CourtCases/{id}/evidences — доказательства;
  • /api/CourtCases/{id}/attachments — вложения;
  • /api/CourtCases/{id}/progress — движение дела;
  • /api/CourtCases/{id}/event-schedule — расписание событий.

Форматы ответов и параметры конкретного блока уточняйте в Swagger. Работа с карточкой в интерфейсе описана в статье «Карточка судебного дела».

6. Получить сводные показатели по найденным делам

curl --fail --get "https://api-sudodelo.torkndgov.ru/api/CourtCases/search/aggregate" \
  --data-urlencode "apiKey=YOUR_API_KEY" \
  --data-urlencode "HideCompleted=true" \
  --data-urlencode "RegistrationDtFrom=2026-01-01"

Метод принимает те же фильтры и применяет те же права, что /search, но обрабатывает все найденные дела. Параметры numberPage и pageSize ему не нужны.

Поля верхнего уровня JSON-ответа:

  • matchedCount — количество уникальных найденных дел;
  • pagesProcessed — число обработанных сервером страниц;
  • presented — показатели предъявленных сумм;
  • recovered — показатели взысканных сумм;
  • dates — диапазоны дат регистрации, окончания, создания и изменения.

Для числовых полей возвращаются count, sum, min, max, avg. Пустые значения не учитываются, нули учитываются. Денежные показатели выражены в рублях; penaltyPercent — проценты. presented.fabulaTotal хранится отдельно и не является автоматически вычисленной суммой остальных полей.

7. Создать судебное дело

Создание выполняется асинхронно. В этом методе API KEY находится в JSON-теле:

curl --fail --request POST "https://api-sudodelo.torkndgov.ru/api/CourtCases" \
  --header "Content-Type: application/json" \
  --data-raw '{
    "apiKey":"YOUR_API_KEY",
    "courtCase":{
      "numberCase":"НОМЕР_ДЕЛА",
      "numberCaseInCourt":"",
      "numberCaseUID":"",
      "urlLinkCase":"ССЫЛКА_НА_ДЕЛО"
    }
  }'

Укажите хотя бы один реквизит: numberCase, numberCaseInCourt, numberCaseUID или urlLinkCase. Замените заполнители реальными данными; неизвестные необязательные значения можно оставить пустыми.

Ответ 202 Accepted содержит jobId, status и message. Он подтверждает постановку задачи, а не завершённое создание. Проверяйте статус:

GET /api/CourtCases/create-jobs/{jobId}?apiKey=YOUR_API_KEY

jobId — GUID из ответа создания. Возможные статусы: Queued, Running, Succeeded, Failed. После Succeeded используйте courtCaseId для чтения карточки. При Failed прочитайте error. Также возвращаются createdAtUtc, startedAtUtc и completedAtUtc.

Пока задача выполняется, опрашивайте её статус с паузами, не отправляйте повторный POST создания вместо проверки результата.

8. Обновить реквизиты дела

curl --fail --request POST "https://api-sudodelo.torkndgov.ru/api/CourtCases/12345/update?apiKey=YOUR_API_KEY" \
  --header "Content-Type: application/json" \
  --data-raw '{
    "LawyerProcessComment":"Уточнены сведения по делу",
    "LawyerProcessClaimSum":150000
  }'

Передавайте только изменяемые поля. Пример использует точные JSON-имена модели CourtCaseUpdateRequest с заглавной первой буквой. Доступны также номер, дата регистрации, вид дела, УИД, ссылка, фабула, предъявленные и взысканные суммы; полный список приведён в Swagger. Ответ — обновлённая карточка SectionItemResponse.

Альтернативный метод — PUT /api/CourtCases/{id}. Если прокси блокирует PUT и возвращает 405, используйте POST-вариант /{id}/update.

Коды ответов и обработка ошибок

  • 200 — успешное чтение или обновление; пустой поиск возвращает пустой список.
  • 202 — создание дела поставлено в очередь; получите окончательный результат по jobId.
  • 400 — ошибка параметров или обязательных реквизитов.
  • 401 — ошибка API KEY или доступа.
  • 404 — дело, задача или необходимые справочные данные не найдены.
  • 409 у aggregate — выборка изменилась при обработке; повторите запрос.
  • 422 у aggregate — превышен лимит обработки; уточните фильтры.
  • 500 у aggregate — ошибка данных или их обработки; частичный итог не возвращается.

Смотрите также: Реестр судебных дел — работа в интерфейсе, полное описание CourtCases и Открытое API системы СУДиДЕЛО.