Документация Гарант Коннект (API к системе ГАРАНТ)

API к системе ГАРАНТ — Версия 2.3.0

Техническая документация · Версия 2.3.0

Доступ к API

Для успешного вызова методов API необходимы:

  • Корректные заголовки Accept и Content-Type. API поддерживает только один MIME-тип: application/json. Любое другое значение приведет к ошибке формата данных.
  • URL, составленный согласно требованиям к нужному запросу.
  • OAuth-токен, выданный вам для доступа к API. Полученный токен следует передавать в заголовке Authorization при каждом вызове API, указывая тип токена Bearer перед его значением. Пример получения такого заголовка:
  1. Вы запрашиваете токен у обслуживающей организации, в ответ на email придет токен, представляющий собой строку: U1QtOTkwMTAyLWNud3FpdWhmbzg3M
  2. Токен добавляется в заголовок Authorization: Bearer
  3. Итоговый заголовок, добавляемый в каждый запрос к API: Authorization: Bearer U1QtOTkwMTAyLWNud3FpdWhmbzg3M

Методы API

Базовый адрес для Гарант Интернет версии - это https://api.garant.ru. Все примеры ниже даны для Интернет версии. Все методы API полностью доступны в Интернет версии в рамках своих ограничений (ниже).

Замечания для версии Проксима

  1. Для Проксимы базовый адрес совпадает с адресом вашего сервера с добавлением суффикса “api”. Например, для адреса сервера http://proxima.local базовый адрес api методов будет http://proxima.local/api
  2. Для вызова методов API не используется аутентификация, но, чтобы ими воспользоваться, необходимо завести в Проксиме юзера с логином api и пустым паролем.
  3. Для Проксимы header Authorization не является обязательным
  4. В версии Проксима доступен только поиск, а также методы экспорта и информации о документе для клиентского
  5. Для Проксимы действует единственное ограничение: методы Экспорт документа и Информация о документе работают только с клиентскими документами из БВД.

Ограничения

  1. Для Интернет версии на вызовы методов накладываются следующие ограничения:
  • количество запросов по методам Простановка ссылок, Документы на контроле и Фрагменты на контроле не может суммарно превышать 1000 за календарный месяц
  • нельзя экспортировать более 30 документов и/или фрагментов за календарный месяц
  • поставить на контроль можно не более 100 документов за один вызов
  • размер текста для простановки ссылок не может превышать 20Мб
  • в методе Лента ПРАЙМ нельзя запросить новости старше одного года
  • количество запросов по методу Информация о документе не может превышать 300 за календарный месяц
  • Размер POST запроса не может превышать 20Мб.

Поиск

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

Запрос

POSThttps://api.garant.ru/v2/search

Заголовки

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

Параметры передаются в теле запроса в формате JSON. Все параметры обязательны, кроме isQuery и page. Строковые значения передаются в кодировке UTF-8.

ПараметрТипОписание
textStringПоисковая фраза, не более 16Кб
isQueryBooleanНеобязательный параметр. Если указан со значением true, то текст, введенный в поле text, рассматривается как запрос, оформленный на специальном языке запросов (см. примеры ниже)
pageIntegerНомер страницы с результатами поиска, начинается с единицы. Если отсутствует, то возвращается первая страница. Размер страницы постоянен и равен 50 элементам.
envStringКомплект, на котором необходимо выполнить поиск, может принимать значения:
  • internet - Основной комплект системы ГАРАНТ
  • arbitr - Банк судебной практики
sortIntegerЗначение для сортировки:
  • 0 - по степени соответствия
  • 1 - по дате документа
  • 2 - по дате последнего изменения
  • 3 - по юридической силе
sortOrderIntegerНаправление сортировки:
  • 0 - по убыванию (для даты это означает от свежей к более старой)
  • 1 - по возрастанию

Пример:

{
      "text": "44-фз о контрактной системе",
      "page": 1,
      "env": "internet",
      "sort": 0,
      "sortOrder": 0
}

Ответ

Успешный JSON-ответ содержит список найденных документов. Или пустой список если ничего не найдено.

ПараметрТипОписание
documentsObject ArrayМассив найденных документов
documents[].nameStringИмя документа
documents[].urlStringОтносительная ссылка на документ, чтобы получить абсолютную ссылку нужно добавить в начале https://d.garant.ru или свой адрес сервера, если вызов выполняется через API ГАРАНТ Интранет-версии
documents[].topicIntegerВнутренний номер документа, который может быть использован в других функциях API, например в Экспорт документа
totalPagesIntegerОбщее количество страниц по 50 элементов в результатах поиска
pageIntegerНомер запрошенной страницы с результатами поиска
totalDocsIntegerОбщее количество найденных документов

Пример:

{
    "totalPages": 17183,
    "documents": [
        {
            "url": "/#/document/70353464",
            "topic": 70353464,
            "name": "Федеральный закон от 5 апреля 2013 г. N 44-ФЗ О
контрактной системе в сфере закупок товаров, работ, услуг для обеспечения
государственных и муниципальных нужд (с изменениями и дополнениями)"
        },
...
        {
            "url": "/#/document/77519493",
            "topic": 77519493,
            "name": "Обзор основных изменений в Федеральном законе от 5 апреля
2013 г. N 44-ФЗ О контрактной системе в сфере закупок товаров, работ, услуг
для обеспечения государственных и муниципальных нужд - 2024 (подготовлено
экспертами компании Гарант)"
        }
    ],
    "page": 1,
    "totalDocs": 859105
}

Получение вхождений

Метод используется, чтобы получить номера блоков в конкретном документе, соответствующие заданному запросу. В дальнейшем номера блоков можно будет использовать для получения их текста методом Экспорт блока (html) или для того чтобы контролировать их изменение методом Фрагменты на контроле.

Запрос

POSThttps://api.garant.ru/v2/snippets

Заголовки

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

Параметры передаются в теле запроса в формате JSON. Все параметры обязательны, за исключением text и correspondent (из них должно быть задано только что-то одно, если задано несколько, то будет возвращена ошибка 400 (Bad Request)). Строковые значения передаются в кодировке UTF-8.

ПараметрТипОписание
textStringПоисковая фраза
correspondentObjectОбъект, содержащий атрибуты места в документе, упоминания которого надо найти в документе, заданном параметром topic
correspondent.topicNumberНомер документа
correspondent.entryNumberНомер блока в документе
topicNumberНомер документа, из которого нужно получить вхождения

Пример запроса для вхождений соответствующих запросу в документе с номером 57742222:

{
 "text": "44-фз о контрактной системе",
 "topic": 57742222
}

Пример запроса для вхождений из документа с номером 10900200, которые ссылаются на документ с номером 12125267 и номером блока 150:

{
     "correspondent": {
         "topic": 12125267,
         "entry": 150
     },
     "topic": 10900200
}

Ответ

Успешный JSON-ответ содержит список вхождений, соответствующих условиям запроса.

ПараметрТипОписание
snippetsArrayМассив вхождений по порядку следования в тексте.
snippets[].relevanceStringЗначение релевантности в диапазоне от 0 до 1, означает насколько текст блока удовлетворяет поисковому критерию, заданному текстом в параметре text.
snippets[].entryNumberНомер блока, в котором находятся найденные вхождения (одно или несколько)
snippets[].ancestorsObject ArrayСписок элементов оглавления, в которые входит текст вхождения. Список отсортирован по уровню, т.е. в начале Часть, потом Раздел, Глава и так далее
ancestors[].entryNumberНомер структурного блока, соответствующего элементу оглавления
ancestors[].titleStringТекст заголовка элемента оглавления. Может быть пустым ("")

Ниже приведен пример ответа при запросе вхождений, удовлетворяющих поисковой фразе. Ответ на запрос вхождений, ссылающихся на нужный документ, отличается от приведенного только отсутствием поля snippets[].relevance - оно не имеет смысла при таком запросе.

{
    "snippets": [
        {
            "relevance": "0.99",
            "entry": 1000,
            "ancestors": [
                {"entry": 1, "title": "Часть первая"},
                {"entry": 10, "title": "Раздел I. Общие положения"},
                {"entry": 100, "title": "Глава 1. Основные начала трудового
законодательства"},
                  {"entry": 1000, "title": "Статья 2. Основные принципы
  правового регулирования трудовых отношений и иных непосредственно связанных
  с ними отношений"}
              ]
          },
          {
              "relevance": "0.5",
              "entry": 1001,
              "ancestors": [
                  {"entry": 1, "title": "Часть третья"},
                  {"entry": 10, "title": "Раздел V. Время отдыха"},
                  {"entry": 1000, "title": "Глава 18. Перерывы в работе.
  Выходные и нерабочие праздничные дни"},
                  {"entry": 1001, "title": "Статья 111. Выходные дни"}
              ]
          }
      ]
  }

Простановка ссылок

Позволяет найти и расставить ссылки на нормативные документы в переданном фрагменте текста.

Запрос

POSThttps://api.garant.ru/v2/find-hyperlinks

Заголовки

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

Параметры передаются в теле запроса в формате JSON. Все параметры обязательны. Строковые значения передаются в кодировке UTF-8.

ПараметрТипОписание
textStringФрагмент текста в формате plain text или html. Не более 20Мб
baseUrlStringБазовая часть url для создания ссылки. Например, можно использовать https://internet.garant.ru для коммерческих комплектов, https://base.garant.ru или http://ivo.garant.ru для свободного доступа к документам по ссылке

Пример:

{
      "text": "Настоящий Закон в соответствии с Федеральным законом от 29
декабря 2017 года N 443-ФЗ регулирует отдельные отношения, возникающие в
процессе организации дорожного движения, а также при организации и
осуществлении парковочной деятельности на территории Орловской области.",
    "baseUrl": "https://internet.garant.ru"
}

Ответ

Успешный JSON-ответ содержит фрагмент текста, переданного в запросе, в котором проставлены ссылки на нормативные акты.

ПараметрТипОписание
textStringФрагмент текста в формате html, с расставленными ссылками. Проставленные ссылки бывают только двух форматов: 1. https://internet.garant.ru/#/document/$topic - ссылка на документ, где $topic - это внутренний номер документа, который может быть использован в других функциях API, например в Экспорте документа. 2. https://internet.garant.ru/#/document/$topic/entry/$sub - ссылка на внутренний элемент документа: на раздел, пункт, статью и т.д.; $sub - это внутренний номер метки, которая указывает на начало элемента документа.

Пример:

{
    "text": "Настоящий Закон в соответствии с <a
href=\"https://internet.garant.ru/#/document/71848756\">Федеральным законом</a>
от 29 декабря 2017 года N 443-ФЗ регулирует отдельные отношения, возникающие в
процессе организации дорожного движения, а также при организации и
осуществлении парковочной деятельности на территории Орловской области."
}

Экспорт документа (rtf)

Позволяет получить текст документа в текстовом формате rtf.

Запрос

GEThttps://api.garant.ru/v2/topic/$topic/download

Заголовки

  • Authorization: Bearer ***

Параметры

Параметры передаются в строке запроса и являются обязательными.

ПараметрТипОписание
$topicIntegerВнутренний номер документа, может быть получен из

Пример cURL:

user@server:~$ curl "https://api.garant.ru/v2/topic/10103000/download"
  --header "Authorization: Bearer xxxxYYYYzzzzz"
  --output 10103000.rtf

Ответ

В случае успешного ответа файл сохранится на диск.

Экспорт документа (html)

Позволяет получить текст документа в формате html (может включать комментарии юристов Гаранта). В тексте могут содержаться ссылки на картинки или формулы, для того чтобы дополнительно скачать эти объекты, необходимо распарсить документ, определить ссылки и воспользоваться методами Экспорт картинки или Экспорт формул.

Запрос

GEThttps://api.garant.ru/v2/topic/$topic/html

Заголовки

  • Authorization: Bearer ***

Параметры

Параметры передаются в строке запроса и являются обязательными.

ПараметрТипОписание
$topicIntegerВнутренний номер документа, может быть получен из функции Поиска

Ответ

Успешный JSON-ответ содержит массив страниц документа.

ПараметрТипОписание
itemsObject ArrayМассив страниц документа
items[].numberIntegerНомер страницы
items[].textStringТекст страницы в формате html

Пример:

{
 "items": [{
          "number:": 1,
          "text": "<p id=\"p_521837163\" class=\"s_3\">Гражданский
кодекс Российской Федерации<br/>..."
      },
      {
           "number:": 2,
           "text": "<div class=\"block\"
data-relativeBlockId=\"10000\"><div class=\"block\"..."
      }
 ]
}

Экспорт блока (html)

Метод позволяет получить не весь текст документа, а только интересующего фрагмента, заданного номером блока, где он расположен. Ответ в формате html может включать комментарии юристов Гаранта. В тексте могут содержаться ссылки на картинки или формулы, для того чтобы дополнительно скачать эти объекты, необходимо распарсить html, определить ссылки и воспользоваться методами Экспорт картинки или Экспорт формул.

Запрос

GEThttps://api.garant.ru/v2/topic/$topic/entry/$entry/html

Заголовки

  • Authorization: Bearer ***

Параметры

Параметры передаются в строке запроса и являются обязательными.

ПараметрТипОписание
$topicNumberНомер документа
$entryNumberНомер блока

Ответ

Успешный ответ содержит текст блока в формате html.

ПараметрТипОписание
entryNumberНомер блока
respondentsObject ArrayМассив респондентов из запрашиваемого блока. Сортировка по номеру документа. Содержит не более 100 элементов
respondents[].topicIntegerНомер документа
respondents[].entryNumberНомер структурного блока, соответствующего элементу оглавления
ancestorsObject ArrayСписок элементов оглавления, в которые входит текст блока. Список отсортирован по уровню, то есть вначале Часть, потом Раздел, Глава и так далее
ancestors[].entryNumberНомер структурного блока, соответствующего элементу оглавления
ancestors[].titleStringТекст заголовка элемента оглавления. Может быть пустым ("")
titleStringНазвание документа
textStringТекст блока в формате html

Пример:

{
 "entry": 1000,
 "respondents": [
      {"topic": 12345678, "entry": 1000}
 ],
 "ancestors": [
      {"entry": 1, "title": "Часть первая"},
        {"entry": 10, "title": "Раздел I. Общие положения"},
        {"entry": 100, "title": "Глава 1. Основные начала трудового
законодательства"},
        {"entry": 1000, "title": "Статья 2. Основные принципы правового
регулирования трудовых отношений и иных непосредственно связанных с ними
отношений"}
 ],
 "title": "Трудовой кодекс Российской Федерации от 30 декабря 2001 г. N
197-ФЗ (ТК РФ)",
 "text": "текст_блока"
}

Экспорт картинок

Позволяет получить картинки, содержащиеся в тексте документа в системе ГАРАНТ. Например, после Экспорта документа в формате html вы видите ссылку вида:

<img class="resized" src="/document/image?revision=176202554&document_id=409276126&object_id=3657688 6" loading="lazy" data-width="1069" data-height="933" width="580" height="506" title="" alt="">

Во-первых, по началу ссылки (поле src) можно определить, что это картинка (ссылка начинается с /document/image), во-вторых, уникальным идентификатором для этой картинки будет значение параметра object_id в ссылке, то есть 36576886.

Запрос

GEThttps://api.garant.ru/v2/image/$object_id

Заголовки

  • Authorization: Bearer ***

Параметры

Параметры передаются в строке запроса и являются обязательными.

ПараметрТипОписание
$object_idNumberУникальный идентификатор картинки, значение параметра object_id из ссылки в поле src

Пример cURL для ссылки в тексте, приведенной выше:

user@server:~$ curl "https://api.garant.ru/v1/image/36576886"
  --header "Authorization: Bearer xxxxYYYYzzzzz"

Ответ

В случае успешного ответа картинка сохраняется на диск.

Экспорт формул

Позволяет получить формулы, содержащиеся в тексте документа в системе ГАРАНТ, в виде картинки (на данный момент только в формате png). Формула определяется уникальным кодом, который можно получить только из ссылки на картинку в тексте, полученной в методе Экспорт документа (html). Например, в тексте расположена ссылка вида:

<img src="/document/formula?revision=622024530&text=c3RyaW5nKCkrLXN0cmluZygp&fmt=png " loading="lazy" title="" alt="" width="18" height="21">

Во-первых, по началу ссылки (поле src) можно определить, что это формула (ссылка начинается с /document/formula), во-вторых, уникальным кодом для этой формулы будет значение параметра text в ссылке, то есть “c3RyaW5nKCkrLXN0cmluZygp”.

Запрос

GEThttps://api.garant.ru/v2/formula

Заголовки

  • Authorization: Bearer ***

Параметры

Параметры передаются в строке запроса и являются обязательными.

ПараметрТипОписание
$textStringУникальный код формулы, содержится в поле text в ссылке на формулу
$fmtStringФормат, в котором вы хотите получить картинку. На данный момент поддерживается только значение png.

Пример cURL для ссылки в тексте, приведенной выше:

user@server:~$ curl
"https://api.garant.ru/v2/formula?text=c3RyaW5nKCkrLXN0cmluZygp&fmt=png"
  --header "Authorization: Bearer xxxxYYYYzzzzz"

Ответ

В случае успешного ответа картинка для формулы сохраняется на диск.

Экспорт документа (odt)

Позволяет получить текст документа в текстовом формате odt.

Запрос

GEThttps://api.garant.ru/v2/topic/$topic/download-odt

Заголовки

  • Authorization: Bearer ***

Параметры

Параметры передаются в строке запроса и являются обязательными.

ПараметрТипОписание
$topicIntegerВнутренний номер документа, может быть получен из функции Поиска

Пример cURL:

user@server:~$ curl "https://api.garant.ru/v2/topic/10103000/download-odt"
  --header "Authorization: Bearer xxxxYYYYzzzzz"

Ответ

В случае успешного ответа файл сохранится на диск.

Экспорт документа (pdf)

Позволяет получить текст документа в текстовом формате pdf.

Запрос

GEThttps://api.garant.ru/v2/topic/$topic/download-pdf

Заголовки

  • Authorization: Bearer ***

Параметры

Параметры передаются в строке запроса и являются обязательными.

ПараметрТипОписание
$topicIntegerВнутренний номер документа, может быть получен из функции Поиска

Пример cURL:

user@server:~$ curl "https://api.garant.ru/v2/topic/10103000/download-pdf"
  --header "Authorization: Bearer xxxxYYYYzzzzz"

Ответ

В случае успешного ответа файл сохранится на диск.

Документы на контроле

Позволяет определить наличие изменений в тексте нормативного документа, начиная с указанной даты. Также может вернуть ленту событий в документе, которые происходили с документом в системе ГАРАНТ с заданной даты.

Запрос

POSThttps://api.garant.ru/v2/find-modified

Заголовки

  • Authorization: Bearer ***

Параметры

Параметры передаются в теле запроса в формате JSON. Все параметры обязательны, кроме needEvents. Строковые значения передаются в кодировке UTF-8.

ПараметрТипОписание
topicsNumber ArrayМассив номеров документов, для которых надо проверить наличие изменений. Не больше 100 номеров в одном запросе. Если больше 100, вернется код ошибки 400
modDateString DateДата, начиная с которой будут проверяться переданные документы на наличие изменений. Формат даты ГГГГ-ММ-ДД. Не может быть ранее 01.01.2018.
needEventsBooleantrue - выводить события, false - не выводить. Если не задан, то используется значение false.

Пример:

{
        "topics": [77682742, 45069704, 49054494],
         "modDate": "2019-07-01",
         "needEvents": true
}

Ответ

Успешный JSON-ответ содержит массив документов из запроса, но только те, в которых произошли изменения.

ПараметрТипОписание
topicsArrayМассив документов из запроса
topics[].topicNumberНомер документа
topics[].modStatusNumberСтатус изменения:
  • 1 - изменился
  • 2 - не найден
eventsObject ArrayСписок событий документа
events[].dateStringДата события в формате ГГГГ-ММ-ДД
events[].typeNumberТип события:
  • 1 - Документ утратил силу
  • 2 - Документ изменен
  • 3 - Документ вступил в силу
  • 4 - У документа появилась новая, но еще не вступившая в силу редакция, и она доступна для просмотра в системе ГАРАНТ
  • 5 - Вступила в силу новая редакция документа

Пример:

{
      "topics": [
          {
              "topic:": 77682742,
              "modStatus": 1,
              "events": [
                    {"date": "2010-03-30", "type": 4},
                    {"date": "2013-06-15", "type": 5},
                    {"date": "2023-12-31", "type": 1}
              ]
          }
      ]
}

Фрагменты на контроле

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

При необходимости метод дополнительно возвращает список событий, произошедших с документом целиком с указанной даты.

Запрос

POSThttps://api.garant.ru/v2/block-on-control/changed

Заголовки

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

Параметры передаются в теле запроса в формате JSON. Все параметры обязательны, кроме needEvents.

ПараметрТипОписание
fromDateString DateДата, начиная с которой будут проверяться переданные фрагменты на изменения текста. Формат даты ГГГГ-ММ-ДД. Не может быть ранее 01.01.2018
urlArrayString ArrayМассив ссылок на фрагменты, которые надо проверить на изменения. Ссылки могут включать только документы из комплекта Законодательство России.
needEventsBooleantrue - выводить события, false - не выводить. Если не задан, то используется значение false.

Пример:

{
     "fromDate": "2019-06-01",
     "urlArray": [
       "http://internet.garant.ru/#/document/77675772/entry/4001",
       "http://internet.garant.ru/#/document/77675772/entry/15",
       "http://internet.garant.ru/#/document/77675772/entry/194"
       ]
}

Ответ

Успешный JSON-ответ содержит список ссылок, в которых произошли изменения в диапазоне с даты, заданной в fromDate, по сегодняшнюю дату.

ПараметрТипОписание
urlArrayObject ArrayМассив ссылок, которые изменялись с заданной даты
urlArray[].urlStringСсылка из запроса
urlArray[].modStatusIntegerСтатус изменения:
  • 1 - изменился
  • 2 - не найден
urlArray[].eventsObject ArrayСписок событий, произошедших с документом целиком с заданной даты
events[].dateStringДата события в формате ГГГГ-ММ-ДД
events[].typeNumberТип события:
  • 1 - Документ утратил силу
  • 2 - Документ изменен
  • 3 - Документ вступил в силу
  • 4 - У документа появилась новая, но еще не вступившая в силу редакция, и она доступна для просмотра в системе ГАРАНТ
  • 5 - Вступила в силу новая редакция документа

Пример:

{
 "urlArray": [{
     "url": "http://internet.garant.ru/#/document/77675772/entry/4001",
     "modStatus": 1,
           "events": [
               {"date": "2010-03-30", "type": 4},
               {"date": "2013-06-15", "type": 5},
               {"date": "2023-12-31", "type": 1}
           ]
 }]
}

Список категорий для Ленты ПРАЙМ

Вернет список тематических категорий, которые можно использовать для уточнения запроса для формирования Ленты ПРАЙМ (см. функцию Лента ПРАЙМ).

Запрос

GEThttps://api.garant.ru/v2/prime

Заголовки

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Ответ

Успешный JSON-ответ содержит дерево тематических категорий.

ПараметрТипОписание
categoriesObject arrayСписок категорий первого уровня
categories[].textStringНазвание категории
categories[].childrenObject arrayСписок категорий второго уровня (может отсутствовать).
categories[].idIntegerИдентификатор категории, используется в методе Лента ПРАЙМ. В категориях первого уровня отсутствует.

Пример:

{
 "categories": [{
      "text": "Вид информации",
      "children": [{
          "text": "Федеральное законодательство и проекты федеральных
законов",
          "id": 24
      }, {
          "text": "Региональное законодательство",
          "children": [{
               "text": "г.Москва",
               "id": 142
          }],
          "id": 33
      }],
      "id": 1008
 }, {
      "text": "Ваша профессия",
      "children": [{
          "text": "Руководитель",
          "id": 144
      }],
      "id": 1004
 }]
}

Лента ПРАЙМ

Возвращает ленту новостей ПРАЙМ в формате JSON.

Запрос

POSThttps://api.garant.ru/v2/prime/create-news

Заголовки

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

Параметры передаются в теле запроса в формате JSON. Все параметры, кроме toDate и sort, являются обязательными. Строковые значения передаются в кодировке UTF-8.

ПараметрТипОписание
categoriesNumber ArrayСписок ID категорий, по которым будет сформирована лента новостей. Не допускается передача пустого списка - это приведет к ошибке с кодом 400.
fromDateString DateДата, начиная с которой будет сформирован список новостей. Формат даты ГГГГ-ММ-ДД.
toDateString DateДата, до которой формировать список новостей (включительно). Формат даты: ГГГГ-ММ-ДД. Если параметр не указан, то его значение принимается равным текущей дате. Если разница между toDate и fromDate превышает 10 дней, то такое поведение не поддерживается, и метод вернет ошибку с кодом 400.
sortNumberСпособ формирования и сортировки новостей в результате. Значение:
  • 1 (по умолчанию) - будет использована дата документа, о котором написана новость.
  • 2 - будет использована дата создания новости Значение 2 необходимо использовать при периодическом опросе ленты новостей со сдвигом даты в fromDate

Обращаем Ваше внимание, что при указании в поле categories любого ID категории из раздела Вид Информации вместе с одним или несколькими ID категорий из раздела Сфера интересов поиск новостей будет выполняться пересечением. Если такое поведение не подходит, рассмотрите возможность использования двух вызовов: один со списком ID категорий из раздела Вид Информации, другой - с ID из раздела Сфера Интересов.

Пример:

{
   "fromDate": "2019-11-01",
   "categories": [1, 2, 3, 4, 5]
}

Ответ

Успешный JSON-ответ содержит список новостей. Или пустой список если ничего не найдено.

ПараметрТипОписание
newsObject arrayМассив найденных новостей
news[].nameStringЗаголовок новости
news[].documentObjectДокумент, анонсированный в новости
document.urlStringОтносительная ссылка на документ. Чтобы получить абсолютную ссылку нужно добавить в начале https://internet.garant.ru для коммерческих пользователей или https://ivo.garant.ru для некоммерческих
document.topicIntegerВнутренний номер документа, который может быть использован в других функциях API, например, в Экспорт документа
document.nameStringИмя документа
news[].paragraphsString arrayСписок текстов параграфов, из которых состоит новость

Пример:

{
  "news": [{
      "name": "Городские округа с внутригородским делением",
      "document": {
              "url": "/#/document/72957500",
           "topic": 72957500,
           "name": "Городские округа с внутригородским делением в
муниципально-территориальном устройстве"
      },
      "paragraphs": ["Городские округа с внутригородским делением", "В
статье проводится правовой анализ изменений"]
 }]
}

Информация о документе

Возвращает атрибуты документа

Запрос

GEThttps://api.garant.ru/v2/topic/$topic

Заголовки

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

Параметры передаются в строке запроса и являются обязательными.

ПараметрТипОписание
$topicIntegerВнутренний номер документа, может быть получен из функции Поиска

Ответ

Успешный JSON-ответ содержит атрибуты документа. Список возможных значений для необходимого атрибута можно посмотреть в карточке Расширенного поиска в системе Гарант для поля с таким же названием, как в колонке Описание ниже.

ПараметрТипОписание
topicIntegerВнутренний номер документа, который может быть использован в других функциях API, например в Экспорт документа
nameStringИмя документа
typeArrayСписок типов документов (напр. Приказ)
adoptedArrayСписок органов государственной власти, принявших документ
classArrayСписок тем документа
dateArrayСписок дат документа
numberArrayСписок номеров
rdateStringДата регистрации
rcodeStringРегистрационный номер
rstatusStringСтатус регистрации
categoryStringЗначимость
statusStringСтатус (действующие/утратившие силу/не вступившие в силу)
kindArrayВид информации
territoryArrayТерритория
activeStringДиапазон дат действия документа
chdateArrayСписок дат изменений
last_modifiedStringДата последнего технического изменения документа
accessStringДоступность документа на ivo.garant.ru. Статусы могут быть следующие:
  • ACCESS_IS_FREE - документ доступен
  • ACCESS_BY_MONEY - документ доступен в коммерческом комплекте, либо при платном оформлении заказе на сайте ivo.garant.ru
  • ACCESS_BY_REQUEST - документ доступен в коммерческом комплекте, либо при бесплатном оформлении заказа на сайте ivo.garant.ru
  • ACCESS_DENIED - документ доступен только в коммерческом комплекте

Пример:

{
    "category": ["Общие"],
    "status": "Действующие",
    "kind": ["Акты органов власти\\Федеральные акты"],
    "name": "Постановление ВС РФ от 30 марта 1993 г. N 4694-I \"О порядке
введения в действие Закона Российской Федерации \"О минимальном размере
оплаты труда\"",
    "number": ["4694-1"],
    "adopted": [
        "Органы законодательной власти России и СССР\\Верховный Совет
России\\ВС РФ (Верховный Совет России)"
    ],
    "topic": 102004,
    "date": ["30.3.1993"],
    "territory": ["Российская Федерация"],
    "type": ["Постановление"],
    "class": [
        "Труд, трудоустройство, занятость населения\\Оплата труда\\Размер
заработной платы, минимальная заработная плата (МРОТ)"
    ],
    "rstatus": "Иные"
}

Информация о редакциях документа

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

Запрос

GEThttps://api.garant.ru/v2/redactions/$topic

Заголовки

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

Параметры передаются в строке запроса и являются обязательными.

ПараметрТипОписание
$topicIntegerВнутренний номер документа в системе ГАРАНТ, может быть получен из функции Поиска

Ответ

Успешный JSON-ответ содержит список редакций со своими атрибутами, описание которых приведено в следующей таблице.

ПараметрТипОписание
statusStringСтатус редакции. Виды статусов:
  • rs_New - будущая редакция
  • rs_NewPreactive - будущая редакция, не вступившая в силу
  • rs_NewAbolished - будущая редакция, утратившая силу
  • rs_Actual - актуальная редакция
  • rs_ActualPreactive - актуальная редакция, не вступившая в силу
  • rs_ActualAbolished - актуальная редакция, утратившая силу
  • rs_Old - устаревшая редакция
notSure[]Object ArrayПериод правовой неопределенности редакции - время, в течение которого существует неопределенность, действует ли нормативный правовой акт, или какая именно его редакция считается действующей. Такая ситуация возникает, когда сложно определить дату официальной публикации документа. Например, документ был официально опубликован в разные даты в нескольких изданиях или содержит неопубликованные приложения
notSure[].fromStringДата начала
notSure[].toStringДата конца
notSure[].textStringКраткая информация
activity[]Object ArrayИнтервал действия редакции. Может быть пустым - что означает что редакция не действовала
activity[].fromStringДата начала действия
activity[].toStringДата конца действия
changingDocuments[ ]Object ArrayИзменяющие документы
changingDocuments[ ].textStringКраткое название изменяющего документа
changingDocuments[ ].topicIntegerВнутренний номер изменяющего документа в системе ГАРАНТ
changingDocuments[ ].entryNumberНомер блока с текстом, который “вносит изменения”
topicIntegerВнутренний номер редакции в системе ГАРАНТ. У актуальной редакции значение в этом поле всегда совпадает со значением внутреннего номера документа

Пример ответа для документа с внутренним номером 10103000:

[
        {
              "status": "rs_Actual",
              "topic": 10103000,
              "changingDocuments": [
                  {
                      "topic": 73742836,
                      "text": "N 1-ФК3 от 14.03.2020",
                      "entry": 1
                  }
              ],
            "activity": [
                {
                    "from": "04.07.2020"
                }
            ]
      },
      ...
      {
            "status": "rs_Old",
            "topic": 5430766,
            "changingDocuments": [],
            "activity": [
                {
                    "to": "30.12.2008",
                    "from": "25.12.1993"
                }
            ]
      }
 ]

Анализ текста в системе "Сутяжник"

Метод позволяет проанализировать и подобрать судебную практику на основе текста Вашего документа, подробнее обратитесь к описанию Системы Сутяжник (https://ivo.garant.ru/#/document/77660037/paragraph/2:0)

Запрос

POSThttps://api.garant.ru/v2/sutyazhnik-search

Заголовки

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

Параметры передаются в теле запроса в формате JSON. Все параметры обязательны. Строковые значения передаются в кодировке UTF-8.

ПараметрТипОписание
textStringТекст документа
countIntegerМаксимальное количество документов, которое вернет сервис по каждому типу правовой информации. Целое число от 1 до 1000.
kindString ArrayМассив строк, содержащий коды типов правовой информации среди которых выполняется поиск. Коды:
  • 301 - суды общей юрисдикции
  • 302 - арбитражные суды
  • 303 - суды по уголовным делам

Пример:

{
 "text": "Ставка ндс",
 "count": 50,
 "kind": ["301", "302"]
}

Ответ

Успешный JSON-ответ содержит список найденных документов. Или пустой список если ничего не найдено.

ПараметрТипОписание
documentsObject ArrayМассив найденных документов
documents[].normsObject ArrayМассив часто упоминаемых в documents[].courts нормативно-правовых актов
documents[].norms[].topicIntegerВнутренний номер документа
documents[].norms[].urlStringОтносительная ссылка на документ. Чтобы получить абсолютную ссылку, нужно добавить в начале https://d.garant.ru
documents[].norms[].nameStringНазвание документа
documents[].kindStringКод типа правовой информации, к которому относится объект
documents[].courtsObject ArrayМассив подходящей судебной практики по коду kind. Документы отсортированы по релевантности в порядке убывания
documents[].courts[].topicIntegerВнутренний номер документа
documents[].courts[].urlStringОтносительная ссылка на документ, чтобы получить абсолютную ссылку нужно добавить вначале https://d.garant.ru
documents[].courts[].nameStringНазвание документа

Пример:

{
 "documents": [
     {
          "norms": [
               {
                    "topic": 70353464,
                    "url": "/#/document/70353464/entry/6",
                    "name": "Федеральный закон от 5 апреля 2013 г. N
44-ФЗ \"О контрактной системе в сфере закупок товаров, работ, услуг для
обеспечения государственных и муниципальных нужд\" (с изменениями и
дополнениями)"
               }
           ],
           "kind": "301",
           "courts": [
               {
                    "topic": 341911797,
                    "url": "/#/document/341911797/paragraph/18",
                    "name": "Решение Ленинского районного суда г.
Севастополя от 16 сентября 2024 г. по делу N 2а-3135/2024"
               }
           ],
           "kind": "302",
           "courts": [
               {
                    "topic": 582418996,
                    "url": "/#/document/582418996/paragraph/36",
                    "name": "Решение Арбитражного суда
г.Санкт-Петербурга и Ленинградской области от 12 марта 2025 г. по делу N
А56-93948/2024"
               }
           ]
      }
 ]
}

Лимиты

Метод позволяет узнать кол-во оставшихся вызовов по всем методам в текущем месяце в рамках заданных ограничений (см. раздел Ограничения настоящего руководства).

Запрос

GEThttps://api.garant.ru/v2/limits

Заголовки

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

Отсутствуют

Ответ

Успешный JSON-ответ содержит список объектов с информацией об оставшихся вызовах. Атрибуты объектов приведены ниже.

ПараметрТипОписание
titleStringНазвание семейства методов, которые входят в одно ограничение. То есть вызов любого из методов, входящих в семейство, уменьшает кол-во оставшихся вызовов на единицу
valueIntegerКоличество оставшихся вызовов в текущем месяце
namesString ArrayМассив суффиксов url методов, входящих в семейство

Пример:

  [
      {
           "title": "Постановка ссылки",
           "value": 32767,
           "names": ["find-hyperlinks"]
      },
      {
           "title": "Экспорт",
           "value": 25000,
           "names": ["topic/download","topic/html","entry/html",
              "topic/download-odt","topic/download-pdf","image",
              "formula"]
      },
      {
           "title": "Документы на контроле",
           "value": 32767,
           "names": ["find-modified"]
      },
      {
           "title": "Блоки документа на контроле",
           "value": 1,
           "names": ["block-on-control/changed"]
      },
      {
           "title": "Информация о документе",
          "value": 32767,
          "names": ["topic"]
     }
]

Коды ошибок

В случае ошибки API возвращается HTTP-код ошибки.

HTTP КодМетод APIОписание
400ВсеОшибка синтаксиса запроса (неправильный формат данных)
400Документы на контролеВ запросе передано больше 100 документов для проверки
400Лента праймПереданная дата больше чем на один год отличается от текущей или разница между fromDate и toDate более 10 дней
401ВсеНеверный токен авторизации или истек срок действия токена
403ВсеНет прав на данный запрос (недостаточно разрешений у токена). Для Проксимы данную ошибку можно получить при попытке получить информацию или скачать документ не из БВД
404Экспорт документа, Документы на контроле, Получение вхожденийДокумент не найден
404Лента праймНе найдена категория, переданная в запросе
423Простановка ссылок, Документы на контролеСуммарное количество запросов по двум методам превысило 1000 с начала календарного месяца
423Экспорт документаКоличество запросов превысило 30 с начала календарного месяца
423Информация о документеКоличество запросов превысило 300 с начала календарного месяца
429ВсеСлишком много запросов: более 20 запросов в секунду.

Язык запросов для поиска документов

В этом разделе приводится описание возможности поиска документов по значениям разных реквизитов. Для этих целей разработан специальный язык запросов, на котором необходимо описывать строку для поиска - поле text - в методе API Поиск.

Определения

Строка для поиска представляет собой последовательность команд, соединенных операторами. Поиск анализирует строку и ищет только те документы, которые соответствуют запросу. Команда - это указание для поиска, что и в каком поле документа искать, например команда MorphoText(льготы) - означает искать все документы, которые содержат слово "льготы" в тексте, а команда Type(Решение) найдет все документы с типом "Решение", то есть все документы, у которых в поле "тип" содержится термин "Решение". Только две команды работают со словами или фразами - это MorphoText и MorphoName, все остальные - исключая команды с датами - работают с терминами: значениями из специальных словарей, которые предоставляются по запросу. В командах, работающих с датами, можно указывать дату сверху, дату снизу и промежуток дат. Например: Date(20.01.2022;) найдет все документы с датой от 20.01.2022 включительно и по текущее число; RDate(;01.01.1990) - найдет все документы с датой регистрации до 01.01.1990 (включительно); Changed(07.09.2025;08.09.2025) - найдет все документы, которые менялись 7 или 8 сентября 2025 года. Операторы позволяют объединять команды с помощью логических операторов. Всего поддерживаются два логических оператора: И (&) и ИЛИ (|). Например, для поиска фразы "ставка НДС" только в постановлениях запрос будет таким: MorphoText(ставка НДС) & Type(Постановление). А если надо найти документы с типами Решение или Постановление, то запрос будет: Type(Решение) | Type(Постановление). Также в запросе можно использовать группировку, например, чтобы найти документы с типом "решение" или "постановление" и которые содержат фразу "ставка НДС", то надо использовать вот такую конструкцию: MorphoText(ставка НДС) & BOOL(Type(Решение) | Type(Постановление))

Примеры

Поиск по словам в тексте

{
    "text":"MorphoText(налог)",
    "isQuery": true,
    "env": "internet",
    "sort": 0,
    "sortOrder": 0,
    "page": 1
}

Поиск по дате

{
    "text":"Date(20.01.2022;26.01.2022)",
    "isQuery": true,
    "env": "internet",
    "sort": 0,
    "sortOrder": 0,
    "page": 1
}

Поиск по словам в названии

{
    "text":"MorphoName(Конституция РФ)",
    "isQuery": true,
    "env": "internet",
    "sort": 0,
    "sortOrder": 0,
    "page": 1
}

Поиск по типу

{
    "text":"Type(Аттестат)",
    "isQuery": true,
    "env": "internet",
    "sort": 0,
    "sortOrder": 0,
    "page": 1
}

Поиск по органу государственной власти

{
    "text":"Adopted(Органы власти г. Москвы)",
    "isQuery": true,
    "env": "internet",
    "sort": 0,
    "sortOrder": 0,
    "page": 1
}

Поиск по дате регистрации в Минюсте

{
    "text":"RDate(20.01.2022;26.01.2022)",
    "isQuery": true,
    "env": "internet",
    "sort": 0,
    "sortOrder": 0,
    "page": 1
}
Поиск по двум реквизитам: тип и номер
{
    "text":"Type(Акт) & Number(44)",
    "isQuery": true,
    "env": "internet",
    "sort": 0,
    "sortOrder": 0,
    "page": 1
}

Поиск корреспондентов

Поиск документов, в которых есть ссылки на интересующий документ или фрагмент документа (блок).

{
    "text":"Correspondents(184755 91)",
    "isQuery": true,
    "env": "internet",
    "sort": 0,
    "sortOrder": 0,
    "page": 1
}

Здесь: 403127269 - номер интересующего документа, 35020 - номер блока.

Поиск респондентов

Поиск документов, на которые есть ссылки в интересующем документе или фрагменте.

{
   "text":"Respondents(57589736 21)",
    "isQuery": true,
    "env": "internet",
    "sort": 0,
    "sortOrder": 0,
    "page": 1
}

Здесь: 57589736 - номер интересующего документа, 21 - номер блока. Такой запрос позволит получить респондентов в разделе 2.1 документа “Энциклопедия судебной практики. Федеральные налоги и сборы (Ст. 13 НК)” в Системе Гарант (https://internet.garant.ru/#/document/57589736/entry/21)

Поиск только новых документов

Поиск документов, которые появились в системе Гарант за 10 сентября 2025 года.

{
    "text":"SortDate(10.09.2025;10.09.2025)",
    "isQuery": true,
    "env": "internet",
    "sort": 0,
    "sortOrder": 1,
    "page": 1
}

Поиск только изменившихся документов

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

{
     "text":"MorphoName(Курсы иностранных валют) & Changed(08.09.2025;)",
    "isQuery": true,
    "env": "internet",
    "sort": 0,
    "sortOrder": 0,
    "page": 1
}

MCP API (mcp.garant.ru)

mcp.garant.ru предоставляет доступ к возможностям API ГАРАНТ через сервер Model Context Protocol (MCP).

Назначение

mcp.garant.ru является MCP-оберткой над REST API api.garant.ru.

Через MCP доступны те же прикладные операции: поиск, получение вхождений, простановка ссылок, экспорт документов и фрагментов, получение сведений о документах, проверка изменений, работа с лентой ПРАЙМ, анализ текста в системе "Сутяжник" и получение лимитов.

Подключение

Для использования mcp.garant.ru клиент (программа, модуль) должен поддерживать протокол MCP и уметь подключаться к удаленному MCP-серверу.

При работе через MCP:

  • клиент подключается к серверу mcp.garant.ru
  • клиент получает список доступных инструментов (tools)
  • каждый инструмент соответствует одному из методов API или отдельному прикладному сценарию
  • параметры передаются в аргументах вызова MCP tool

mcp.garant.ru является дополнительным транспортом доступа к API, а не отдельной прикладной системой.

Аутентификация и доступ

mcp.garant.ru использует те же права доступа к данным и те же прикладные ограничения, что и api.garant.ru.

Для вызова инструментов mcp.garant.ru клиент должен передавать API-токен в заголовке Authorization по схеме Bearer, аналогично вызову API.

Пример заголовка: Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

При отсутствии корректного токена сервер возвращает ошибку авторизации.

Соответствие инструментов методам REST API

MCP toolНазначениеСоответствие REST API
garant_searchПолнотекстовый поиск документовPOST /v2/search
garant_snippetsПолучение вхождений внутри документаPOST /v2/snippets
garant_find_hyperlinksПростановка ссылок в текстеPOST /v2/find-hyperlinks
garant_export_rtfЭкспорт документа в RTFGET /v2/topic/$topic/download
garant_export_htmlЭкспорт документа в HTMLGET /v2/topic/$topic/html
garant_export_block_htmlЭкспорт блока документа в HTMLGET /v2/topic/$topic/entry/$entry/html
garant_export_imageПолучение изображения из документаGET /v2/image/$object_id
garant_export_formulaПолучение формулы в виде изображенияGET /v2/formula
garant_export_odtЭкспорт документа в ODTGET /v2/topic/$topic/download-odt
garant_export_pdfЭкспорт документа в PDFGET /v2/topic/$topic/download-pdf
garant_find_modifiedПроверка, какие документы изменились после датыPOST /v2/find-modified
garant_block_changedПроверка изменений фрагментов на контролеPOST /v2/block-on-control/changed
garant_prime_categoriesПолучение дерева категорий ПРАЙМGET /v2/prime
garant_prime_newsПолучение материалов ленты ПРАЙМPOST /v2/prime/create-news
garant_document_infoИнформация о документеGET /v2/topic/$topic
garant_document_redactionsИнформация о редакциях документаGET /v2/redactions/$topic
garant_sutyazhnikАнализ текста в системе "Сутяжник"POST /v2/sutyazhnik-search
garant_limitsПолучение текущих лимитов по APIGET /v2/limits

Особенности и ограничения

При работе через mcp.garant.ru действуют следующие принципы:

  • бизнес-логика, ограничения по лимитам и предметные ограничения наследуются от api.garant.ru
  • экспортные операции, операции проверки изменений, лента ПРАЙМ и другие ресурсоемкие вызовы сохраняют свои ограничения по частоте и объему
  • структура ответа может отличаться способом упаковки данных, но смысл возвращаемых полей должен сохраняться