Техническая документация · Версия 2.3.0
Доступ к API
Для успешного вызова методов API необходимы:
- Корректные заголовки Accept и Content-Type. API поддерживает только один MIME-тип: application/json. Любое другое значение приведет к ошибке формата данных.
- URL, составленный согласно требованиям к нужному запросу.
- OAuth-токен, выданный вам для доступа к API. Полученный токен следует передавать в заголовке Authorization при каждом вызове API, указывая тип токена Bearer перед его значением. Пример получения такого заголовка:
- Вы запрашиваете токен у обслуживающей организации, в ответ на email придет токен, представляющий собой строку: U1QtOTkwMTAyLWNud3FpdWhmbzg3M
- Токен добавляется в заголовок Authorization: Bearer
- Итоговый заголовок, добавляемый в каждый запрос к API: Authorization: Bearer U1QtOTkwMTAyLWNud3FpdWhmbzg3M
Методы API
Базовый адрес для Гарант Интернет версии - это https://api.garant.ru. Все примеры ниже даны для Интернет версии. Все методы API полностью доступны в Интернет версии в рамках своих ограничений (ниже).
Замечания для версии Проксима
- Для Проксимы базовый адрес совпадает с адресом вашего сервера с добавлением суффикса “api”. Например, для адреса сервера http://proxima.local базовый адрес api методов будет http://proxima.local/api
- Для вызова методов API не используется аутентификация, но, чтобы ими воспользоваться, необходимо завести в Проксиме юзера с логином api и пустым паролем.
- Для Проксимы header Authorization не является обязательным
- В версии Проксима доступен только поиск, а также методы экспорта и информации о документе для клиентского
- Для Проксимы действует единственное ограничение: методы Экспорт документа и Информация о документе работают только с клиентскими документами из БВД.
Ограничения
- Для Интернет версии на вызовы методов накладываются следующие ограничения:
- количество запросов по методам Простановка ссылок, Документы на контроле и Фрагменты на контроле не может суммарно превышать 1000 за календарный месяц
- нельзя экспортировать более 30 документов и/или фрагментов за календарный месяц
- поставить на контроль можно не более 100 документов за один вызов
- размер текста для простановки ссылок не может превышать 20Мб
- в методе Лента ПРАЙМ нельзя запросить новости старше одного года
- количество запросов по методу Информация о документе не может превышать 300 за календарный месяц
- Размер POST запроса не может превышать 20Мб.
Поиск
Позволяет провести поиск по документам в комплекте, с которым связан токен аутентификации.
Запрос
https://api.garant.ru/v2/searchЗаголовки
- Accept: application/json
- Content-type: application/json
- Authorization: Bearer ***
Параметры
Параметры передаются в теле запроса в формате JSON. Все параметры обязательны, кроме isQuery и page. Строковые значения передаются в кодировке UTF-8.
| Параметр | Тип | Описание |
|---|---|---|
| text | String | Поисковая фраза, не более 16Кб |
| isQuery | Boolean | Необязательный параметр. Если указан со значением true, то текст, введенный в поле text, рассматривается как запрос, оформленный на специальном языке запросов (см. примеры ниже) |
| page | Integer | Номер страницы с результатами поиска, начинается с единицы. Если отсутствует, то возвращается первая страница. Размер страницы постоянен и равен 50 элементам. |
| env | String | Комплект, на котором необходимо выполнить поиск, может принимать значения:
|
| sort | Integer | Значение для сортировки:
|
| sortOrder | Integer | Направление сортировки:
|
Пример:
{
"text": "44-фз о контрактной системе",
"page": 1,
"env": "internet",
"sort": 0,
"sortOrder": 0
}
Ответ
Успешный JSON-ответ содержит список найденных документов. Или пустой список если ничего не найдено.
| Параметр | Тип | Описание |
|---|---|---|
| documents | Object Array | Массив найденных документов |
| documents[].name | String | Имя документа |
| documents[].url | String | Относительная ссылка на документ, чтобы получить абсолютную ссылку нужно добавить в начале https://d.garant.ru или свой адрес сервера, если вызов выполняется через API ГАРАНТ Интранет-версии |
| documents[].topic | Integer | Внутренний номер документа, который может быть использован в других функциях API, например в Экспорт документа |
| totalPages | Integer | Общее количество страниц по 50 элементов в результатах поиска |
| page | Integer | Номер запрошенной страницы с результатами поиска |
| totalDocs | Integer | Общее количество найденных документов |
Пример:
{
"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) или для того чтобы контролировать их изменение методом Фрагменты на контроле.
Запрос
https://api.garant.ru/v2/snippetsЗаголовки
- Accept: application/json
- Content-type: application/json
- Authorization: Bearer ***
Параметры
Параметры передаются в теле запроса в формате JSON. Все параметры обязательны, за исключением text и correspondent (из них должно быть задано только что-то одно, если задано несколько, то будет возвращена ошибка 400 (Bad Request)). Строковые значения передаются в кодировке UTF-8.
| Параметр | Тип | Описание |
|---|---|---|
| text | String | Поисковая фраза |
| correspondent | Object | Объект, содержащий атрибуты места в документе, упоминания которого надо найти в документе, заданном параметром topic |
| correspondent.topic | Number | Номер документа |
| correspondent.entry | Number | Номер блока в документе |
| topic | Number | Номер документа, из которого нужно получить вхождения |
Пример запроса для вхождений соответствующих запросу в документе с номером 57742222:
{
"text": "44-фз о контрактной системе",
"topic": 57742222
}
Пример запроса для вхождений из документа с номером 10900200, которые ссылаются на документ с номером 12125267 и номером блока 150:
{
"correspondent": {
"topic": 12125267,
"entry": 150
},
"topic": 10900200
}
Ответ
Успешный JSON-ответ содержит список вхождений, соответствующих условиям запроса.
| Параметр | Тип | Описание |
|---|---|---|
| snippets | Array | Массив вхождений по порядку следования в тексте. |
| snippets[].relevance | String | Значение релевантности в диапазоне от 0 до 1, означает насколько текст блока удовлетворяет поисковому критерию, заданному текстом в параметре text. |
| snippets[].entry | Number | Номер блока, в котором находятся найденные вхождения (одно или несколько) |
| snippets[].ancestors | Object Array | Список элементов оглавления, в которые входит текст вхождения. Список отсортирован по уровню, т.е. в начале Часть, потом Раздел, Глава и так далее |
| ancestors[].entry | Number | Номер структурного блока, соответствующего элементу оглавления |
| ancestors[].title | String | Текст заголовка элемента оглавления. Может быть пустым ("") |
Ниже приведен пример ответа при запросе вхождений, удовлетворяющих поисковой фразе. Ответ на запрос вхождений, ссылающихся на нужный документ, отличается от приведенного только отсутствием поля 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. Выходные дни"}
]
}
]
}
Простановка ссылок
Позволяет найти и расставить ссылки на нормативные документы в переданном фрагменте текста.
Запрос
https://api.garant.ru/v2/find-hyperlinksЗаголовки
- Accept: application/json
- Content-type: application/json
- Authorization: Bearer ***
Параметры
Параметры передаются в теле запроса в формате JSON. Все параметры обязательны. Строковые значения передаются в кодировке UTF-8.
| Параметр | Тип | Описание |
|---|---|---|
| text | String | Фрагмент текста в формате plain text или html. Не более 20Мб |
| baseUrl | String | Базовая часть url для создания ссылки. Например, можно использовать https://internet.garant.ru для коммерческих комплектов, https://base.garant.ru или http://ivo.garant.ru для свободного доступа к документам по ссылке |
Пример:
{
"text": "Настоящий Закон в соответствии с Федеральным законом от 29
декабря 2017 года N 443-ФЗ регулирует отдельные отношения, возникающие в
процессе организации дорожного движения, а также при организации и
осуществлении парковочной деятельности на территории Орловской области.",
"baseUrl": "https://internet.garant.ru"
}
Ответ
Успешный JSON-ответ содержит фрагмент текста, переданного в запросе, в котором проставлены ссылки на нормативные акты.
| Параметр | Тип | Описание |
|---|---|---|
| text | String | Фрагмент текста в формате 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.
Запрос
https://api.garant.ru/v2/topic/$topic/downloadЗаголовки
- Authorization: Bearer ***
Параметры
Параметры передаются в строке запроса и являются обязательными.
| Параметр | Тип | Описание |
|---|---|---|
| $topic | Integer | Внутренний номер документа, может быть получен из |
Пример cURL:
user@server:~$ curl "https://api.garant.ru/v2/topic/10103000/download"
--header "Authorization: Bearer xxxxYYYYzzzzz"
--output 10103000.rtf
Ответ
В случае успешного ответа файл сохранится на диск.
Экспорт документа (html)
Позволяет получить текст документа в формате html (может включать комментарии юристов Гаранта). В тексте могут содержаться ссылки на картинки или формулы, для того чтобы дополнительно скачать эти объекты, необходимо распарсить документ, определить ссылки и воспользоваться методами Экспорт картинки или Экспорт формул.
Запрос
https://api.garant.ru/v2/topic/$topic/htmlЗаголовки
- Authorization: Bearer ***
Параметры
Параметры передаются в строке запроса и являются обязательными.
| Параметр | Тип | Описание |
|---|---|---|
| $topic | Integer | Внутренний номер документа, может быть получен из функции Поиска |
Ответ
Успешный JSON-ответ содержит массив страниц документа.
| Параметр | Тип | Описание |
|---|---|---|
| items | Object Array | Массив страниц документа |
| items[].number | Integer | Номер страницы |
| items[].text | String | Текст страницы в формате 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, определить ссылки и воспользоваться методами Экспорт картинки или Экспорт формул.
Запрос
https://api.garant.ru/v2/topic/$topic/entry/$entry/htmlЗаголовки
- Authorization: Bearer ***
Параметры
Параметры передаются в строке запроса и являются обязательными.
| Параметр | Тип | Описание |
|---|---|---|
| $topic | Number | Номер документа |
| $entry | Number | Номер блока |
Ответ
Успешный ответ содержит текст блока в формате html.
| Параметр | Тип | Описание |
|---|---|---|
| entry | Number | Номер блока |
| respondents | Object Array | Массив респондентов из запрашиваемого блока. Сортировка по номеру документа. Содержит не более 100 элементов |
| respondents[].topic | Integer | Номер документа |
| respondents[].entry | Number | Номер структурного блока, соответствующего элементу оглавления |
| ancestors | Object Array | Список элементов оглавления, в которые входит текст блока. Список отсортирован по уровню, то есть вначале Часть, потом Раздел, Глава и так далее |
| ancestors[].entry | Number | Номер структурного блока, соответствующего элементу оглавления |
| ancestors[].title | String | Текст заголовка элемента оглавления. Может быть пустым ("") |
| title | String | Название документа |
| text | String | Текст блока в формате 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.
Запрос
https://api.garant.ru/v2/image/$object_idЗаголовки
- Authorization: Bearer ***
Параметры
Параметры передаются в строке запроса и являются обязательными.
| Параметр | Тип | Описание |
|---|---|---|
| $object_id | Number | Уникальный идентификатор картинки, значение параметра 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”.
Запрос
https://api.garant.ru/v2/formulaЗаголовки
- Authorization: Bearer ***
Параметры
Параметры передаются в строке запроса и являются обязательными.
| Параметр | Тип | Описание |
|---|---|---|
| $text | String | Уникальный код формулы, содержится в поле text в ссылке на формулу |
| $fmt | String | Формат, в котором вы хотите получить картинку. На данный момент поддерживается только значение png. |
Пример cURL для ссылки в тексте, приведенной выше:
user@server:~$ curl
"https://api.garant.ru/v2/formula?text=c3RyaW5nKCkrLXN0cmluZygp&fmt=png"
--header "Authorization: Bearer xxxxYYYYzzzzz"
Ответ
В случае успешного ответа картинка для формулы сохраняется на диск.
Экспорт документа (odt)
Позволяет получить текст документа в текстовом формате odt.
Запрос
https://api.garant.ru/v2/topic/$topic/download-odtЗаголовки
- Authorization: Bearer ***
Параметры
Параметры передаются в строке запроса и являются обязательными.
| Параметр | Тип | Описание |
|---|---|---|
| $topic | Integer | Внутренний номер документа, может быть получен из функции Поиска |
Пример cURL:
user@server:~$ curl "https://api.garant.ru/v2/topic/10103000/download-odt"
--header "Authorization: Bearer xxxxYYYYzzzzz"
Ответ
В случае успешного ответа файл сохранится на диск.
Экспорт документа (pdf)
Позволяет получить текст документа в текстовом формате pdf.
Запрос
https://api.garant.ru/v2/topic/$topic/download-pdfЗаголовки
- Authorization: Bearer ***
Параметры
Параметры передаются в строке запроса и являются обязательными.
| Параметр | Тип | Описание |
|---|---|---|
| $topic | Integer | Внутренний номер документа, может быть получен из функции Поиска |
Пример cURL:
user@server:~$ curl "https://api.garant.ru/v2/topic/10103000/download-pdf"
--header "Authorization: Bearer xxxxYYYYzzzzz"
Ответ
В случае успешного ответа файл сохранится на диск.
Документы на контроле
Позволяет определить наличие изменений в тексте нормативного документа, начиная с указанной даты. Также может вернуть ленту событий в документе, которые происходили с документом в системе ГАРАНТ с заданной даты.
Запрос
https://api.garant.ru/v2/find-modifiedЗаголовки
- Authorization: Bearer ***
Параметры
Параметры передаются в теле запроса в формате JSON. Все параметры обязательны, кроме needEvents. Строковые значения передаются в кодировке UTF-8.
| Параметр | Тип | Описание |
|---|---|---|
| topics | Number Array | Массив номеров документов, для которых надо проверить наличие изменений. Не больше 100 номеров в одном запросе. Если больше 100, вернется код ошибки 400 |
| modDate | String Date | Дата, начиная с которой будут проверяться переданные документы на наличие изменений. Формат даты ГГГГ-ММ-ДД. Не может быть ранее 01.01.2018. |
| needEvents | Boolean | true - выводить события, false - не выводить. Если не задан, то используется значение false. |
Пример:
{
"topics": [77682742, 45069704, 49054494],
"modDate": "2019-07-01",
"needEvents": true
}
Ответ
Успешный JSON-ответ содержит массив документов из запроса, но только те, в которых произошли изменения.
| Параметр | Тип | Описание |
|---|---|---|
| topics | Array | Массив документов из запроса |
| topics[].topic | Number | Номер документа |
| topics[].modStatus | Number | Статус изменения:
|
| events | Object Array | Список событий документа |
| events[].date | String | Дата события в формате ГГГГ-ММ-ДД |
| events[].type | Number | Тип события:
|
Пример:
{
"topics": [
{
"topic:": 77682742,
"modStatus": 1,
"events": [
{"date": "2010-03-30", "type": 4},
{"date": "2013-06-15", "type": 5},
{"date": "2023-12-31", "type": 1}
]
}
]
}
Фрагменты на контроле
Позволяет определить наличие изменений во фрагменте текста нормативного документа, начиная с указанной даты. Фрагмент определяется ссылкой, которую можно получить либо в методе Простановка ссылок, либо в Поиске, либо скопировать из браузера в открытом документе.
При необходимости метод дополнительно возвращает список событий, произошедших с документом целиком с указанной даты.
Запрос
https://api.garant.ru/v2/block-on-control/changedЗаголовки
- Accept: application/json
- Content-type: application/json
- Authorization: Bearer ***
Параметры
Параметры передаются в теле запроса в формате JSON. Все параметры обязательны, кроме needEvents.
| Параметр | Тип | Описание |
|---|---|---|
| fromDate | String Date | Дата, начиная с которой будут проверяться переданные фрагменты на изменения текста. Формат даты ГГГГ-ММ-ДД. Не может быть ранее 01.01.2018 |
| urlArray | String Array | Массив ссылок на фрагменты, которые надо проверить на изменения. Ссылки могут включать только документы из комплекта Законодательство России. |
| needEvents | Boolean | true - выводить события, 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, по сегодняшнюю дату.
| Параметр | Тип | Описание |
|---|---|---|
| urlArray | Object Array | Массив ссылок, которые изменялись с заданной даты |
| urlArray[].url | String | Ссылка из запроса |
| urlArray[].modStatus | Integer | Статус изменения:
|
| urlArray[].events | Object Array | Список событий, произошедших с документом целиком с заданной даты |
| events[].date | String | Дата события в формате ГГГГ-ММ-ДД |
| events[].type | Number | Тип события:
|
Пример:
{
"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}
]
}]
}
Список категорий для Ленты ПРАЙМ
Вернет список тематических категорий, которые можно использовать для уточнения запроса для формирования Ленты ПРАЙМ (см. функцию Лента ПРАЙМ).
Запрос
https://api.garant.ru/v2/primeЗаголовки
- Accept: application/json
- Content-type: application/json
- Authorization: Bearer ***
Ответ
Успешный JSON-ответ содержит дерево тематических категорий.
| Параметр | Тип | Описание |
|---|---|---|
| categories | Object array | Список категорий первого уровня |
| categories[].text | String | Название категории |
| categories[].children | Object array | Список категорий второго уровня (может отсутствовать). |
| categories[].id | Integer | Идентификатор категории, используется в методе Лента ПРАЙМ. В категориях первого уровня отсутствует. |
Пример:
{
"categories": [{
"text": "Вид информации",
"children": [{
"text": "Федеральное законодательство и проекты федеральных
законов",
"id": 24
}, {
"text": "Региональное законодательство",
"children": [{
"text": "г.Москва",
"id": 142
}],
"id": 33
}],
"id": 1008
}, {
"text": "Ваша профессия",
"children": [{
"text": "Руководитель",
"id": 144
}],
"id": 1004
}]
}
Лента ПРАЙМ
Возвращает ленту новостей ПРАЙМ в формате JSON.
Запрос
https://api.garant.ru/v2/prime/create-newsЗаголовки
- Accept: application/json
- Content-type: application/json
- Authorization: Bearer ***
Параметры
Параметры передаются в теле запроса в формате JSON. Все параметры, кроме toDate и sort, являются обязательными. Строковые значения передаются в кодировке UTF-8.
| Параметр | Тип | Описание |
|---|---|---|
| categories | Number Array | Список ID категорий, по которым будет сформирована лента новостей. Не допускается передача пустого списка - это приведет к ошибке с кодом 400. |
| fromDate | String Date | Дата, начиная с которой будет сформирован список новостей. Формат даты ГГГГ-ММ-ДД. |
| toDate | String Date | Дата, до которой формировать список новостей (включительно). Формат даты: ГГГГ-ММ-ДД. Если параметр не указан, то его значение принимается равным текущей дате. Если разница между toDate и fromDate превышает 10 дней, то такое поведение не поддерживается, и метод вернет ошибку с кодом 400. |
| sort | Number | Способ формирования и сортировки новостей в результате. Значение:
|
Обращаем Ваше внимание, что при указании в поле categories любого ID категории из раздела Вид Информации вместе с одним или несколькими ID категорий из раздела Сфера интересов поиск новостей будет выполняться пересечением. Если такое поведение не подходит, рассмотрите возможность использования двух вызовов: один со списком ID категорий из раздела Вид Информации, другой - с ID из раздела Сфера Интересов.
Пример:
{
"fromDate": "2019-11-01",
"categories": [1, 2, 3, 4, 5]
}
Ответ
Успешный JSON-ответ содержит список новостей. Или пустой список если ничего не найдено.
| Параметр | Тип | Описание |
|---|---|---|
| news | Object array | Массив найденных новостей |
| news[].name | String | Заголовок новости |
| news[].document | Object | Документ, анонсированный в новости |
| document.url | String | Относительная ссылка на документ. Чтобы получить абсолютную ссылку нужно добавить в начале https://internet.garant.ru для коммерческих пользователей или https://ivo.garant.ru для некоммерческих |
| document.topic | Integer | Внутренний номер документа, который может быть использован в других функциях API, например, в Экспорт документа |
| document.name | String | Имя документа |
| news[].paragraphs | String array | Список текстов параграфов, из которых состоит новость |
Пример:
{
"news": [{
"name": "Городские округа с внутригородским делением",
"document": {
"url": "/#/document/72957500",
"topic": 72957500,
"name": "Городские округа с внутригородским делением в
муниципально-территориальном устройстве"
},
"paragraphs": ["Городские округа с внутригородским делением", "В
статье проводится правовой анализ изменений"]
}]
}
Информация о документе
Возвращает атрибуты документа
Запрос
https://api.garant.ru/v2/topic/$topicЗаголовки
- Accept: application/json
- Content-type: application/json
- Authorization: Bearer ***
Параметры
Параметры передаются в строке запроса и являются обязательными.
| Параметр | Тип | Описание |
|---|---|---|
| $topic | Integer | Внутренний номер документа, может быть получен из функции Поиска |
Ответ
Успешный JSON-ответ содержит атрибуты документа. Список возможных значений для необходимого атрибута можно посмотреть в карточке Расширенного поиска в системе Гарант для поля с таким же названием, как в колонке Описание ниже.
| Параметр | Тип | Описание |
|---|---|---|
| topic | Integer | Внутренний номер документа, который может быть использован в других функциях API, например в Экспорт документа |
| name | String | Имя документа |
| type | Array | Список типов документов (напр. Приказ) |
| adopted | Array | Список органов государственной власти, принявших документ |
| class | Array | Список тем документа |
| date | Array | Список дат документа |
| number | Array | Список номеров |
| rdate | String | Дата регистрации |
| rcode | String | Регистрационный номер |
| rstatus | String | Статус регистрации |
| category | String | Значимость |
| status | String | Статус (действующие/утратившие силу/не вступившие в силу) |
| kind | Array | Вид информации |
| territory | Array | Территория |
| active | String | Диапазон дат действия документа |
| chdate | Array | Список дат изменений |
| last_modified | String | Дата последнего технического изменения документа |
| access | String | Доступность документа на ivo.garant.ru. Статусы могут быть следующие:
|
Пример:
{
"category": ["Общие"],
"status": "Действующие",
"kind": ["Акты органов власти\\Федеральные акты"],
"name": "Постановление ВС РФ от 30 марта 1993 г. N 4694-I \"О порядке
введения в действие Закона Российской Федерации \"О минимальном размере
оплаты труда\"",
"number": ["4694-1"],
"adopted": [
"Органы законодательной власти России и СССР\\Верховный Совет
России\\ВС РФ (Верховный Совет России)"
],
"topic": 102004,
"date": ["30.3.1993"],
"territory": ["Российская Федерация"],
"type": ["Постановление"],
"class": [
"Труд, трудоустройство, занятость населения\\Оплата труда\\Размер
заработной платы, минимальная заработная плата (МРОТ)"
],
"rstatus": "Иные"
}
Информация о редакциях документа
Возвращает список редакций документа с атрибутами, отсортированными по убыванию даты начала действия редакции.
Запрос
https://api.garant.ru/v2/redactions/$topicЗаголовки
- Accept: application/json
- Content-type: application/json
- Authorization: Bearer ***
Параметры
Параметры передаются в строке запроса и являются обязательными.
| Параметр | Тип | Описание |
|---|---|---|
| $topic | Integer | Внутренний номер документа в системе ГАРАНТ, может быть получен из функции Поиска |
Ответ
Успешный JSON-ответ содержит список редакций со своими атрибутами, описание которых приведено в следующей таблице.
| Параметр | Тип | Описание |
|---|---|---|
| status | String | Статус редакции. Виды статусов:
|
| notSure[] | Object Array | Период правовой неопределенности редакции - время, в течение которого существует неопределенность, действует ли нормативный правовой акт, или какая именно его редакция считается действующей. Такая ситуация возникает, когда сложно определить дату официальной публикации документа. Например, документ был официально опубликован в разные даты в нескольких изданиях или содержит неопубликованные приложения |
| notSure[].from | String | Дата начала |
| notSure[].to | String | Дата конца |
| notSure[].text | String | Краткая информация |
| activity[] | Object Array | Интервал действия редакции. Может быть пустым - что означает что редакция не действовала |
| activity[].from | String | Дата начала действия |
| activity[].to | String | Дата конца действия |
| changingDocuments[ ] | Object Array | Изменяющие документы |
| changingDocuments[ ].text | String | Краткое название изменяющего документа |
| changingDocuments[ ].topic | Integer | Внутренний номер изменяющего документа в системе ГАРАНТ |
| changingDocuments[ ].entry | Number | Номер блока с текстом, который “вносит изменения” |
| topic | Integer | Внутренний номер редакции в системе ГАРАНТ. У актуальной редакции значение в этом поле всегда совпадает со значением внутреннего номера документа |
Пример ответа для документа с внутренним номером 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)
Запрос
https://api.garant.ru/v2/sutyazhnik-searchЗаголовки
- Accept: application/json
- Content-type: application/json
- Authorization: Bearer ***
Параметры
Параметры передаются в теле запроса в формате JSON. Все параметры обязательны. Строковые значения передаются в кодировке UTF-8.
| Параметр | Тип | Описание |
|---|---|---|
| text | String | Текст документа |
| count | Integer | Максимальное количество документов, которое вернет сервис по каждому типу правовой информации. Целое число от 1 до 1000. |
| kind | String Array | Массив строк, содержащий коды типов правовой информации среди которых выполняется поиск. Коды:
|
Пример:
{
"text": "Ставка ндс",
"count": 50,
"kind": ["301", "302"]
}
Ответ
Успешный JSON-ответ содержит список найденных документов. Или пустой список если ничего не найдено.
| Параметр | Тип | Описание |
|---|---|---|
| documents | Object Array | Массив найденных документов |
| documents[].norms | Object Array | Массив часто упоминаемых в documents[].courts нормативно-правовых актов |
| documents[].norms[].topic | Integer | Внутренний номер документа |
| documents[].norms[].url | String | Относительная ссылка на документ. Чтобы получить абсолютную ссылку, нужно добавить в начале https://d.garant.ru |
| documents[].norms[].name | String | Название документа |
| documents[].kind | String | Код типа правовой информации, к которому относится объект |
| documents[].courts | Object Array | Массив подходящей судебной практики по коду kind. Документы отсортированы по релевантности в порядке убывания |
| documents[].courts[].topic | Integer | Внутренний номер документа |
| documents[].courts[].url | String | Относительная ссылка на документ, чтобы получить абсолютную ссылку нужно добавить вначале https://d.garant.ru |
| documents[].courts[].name | String | Название документа |
Пример:
{
"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"
}
]
}
]
}
Лимиты
Метод позволяет узнать кол-во оставшихся вызовов по всем методам в текущем месяце в рамках заданных ограничений (см. раздел Ограничения настоящего руководства).
Запрос
https://api.garant.ru/v2/limitsЗаголовки
- Accept: application/json
- Content-type: application/json
- Authorization: Bearer ***
Параметры
Отсутствуют
Ответ
Успешный JSON-ответ содержит список объектов с информацией об оставшихся вызовах. Атрибуты объектов приведены ниже.
| Параметр | Тип | Описание |
|---|---|---|
| title | String | Название семейства методов, которые входят в одно ограничение. То есть вызов любого из методов, входящих в семейство, уменьшает кол-во оставшихся вызовов на единицу |
| value | Integer | Количество оставшихся вызовов в текущем месяце |
| names | String 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 | Экспорт документа в RTF | GET /v2/topic/$topic/download |
| garant_export_html | Экспорт документа в HTML | GET /v2/topic/$topic/html |
| garant_export_block_html | Экспорт блока документа в HTML | GET /v2/topic/$topic/entry/$entry/html |
| garant_export_image | Получение изображения из документа | GET /v2/image/$object_id |
| garant_export_formula | Получение формулы в виде изображения | GET /v2/formula |
| garant_export_odt | Экспорт документа в ODT | GET /v2/topic/$topic/download-odt |
| garant_export_pdf | Экспорт документа в PDF | GET /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 | Получение текущих лимитов по API | GET /v2/limits |
Особенности и ограничения
При работе через mcp.garant.ru действуют следующие принципы:
- бизнес-логика, ограничения по лимитам и предметные ограничения наследуются от api.garant.ru
- экспортные операции, операции проверки изменений, лента ПРАЙМ и другие ресурсоемкие вызовы сохраняют свои ограничения по частоте и объему
- структура ответа может отличаться способом упаковки данных, но смысл возвращаемых полей должен сохраняться