Доступ к 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 доступны и в Интернет версии и в ИнтрАнет. Таблица доступности:
Метод | Интернет-версия | Интранет-версия |
Поиск | доступна | доступна |
Простановка ссылок | доступна | недоступна |
Экспорт документа | доступна | недоступна |
Документы на контроле | доступна | недоступна |
Список категорий | доступна | недоступна |
Лента Прайм | доступна | недоступна |
Ограничения
На вызовы методов накладываются следующие ограничения:
- количество запросов по методам Постановка ссылок и Документы на контроле не может суммарно превышать 1000 за календарный месяц
- нельзя экспортировать более 30 документов за календарный месяц
- поставить на контроль можно не более 100 документов за один вызов
- размер текста для простановки ссылок не может превышать 20Мб
- в методе Лента Прайм нельзя запросить новости старше одного года
- количество запросов по методу Информация о документе не может превышать 300 за календарный месяц
Поиск
Позволяет провести поиск по документам в комплекте, с которым связан токен аутентификации.
Запрос
POST
URL: https://api.garant.ru/v1/search
HEADERS:
- Accept: application/json
- Content-type: application/json
- Authorization: Bearer ***
ПАРАМЕТРЫ
Параметры передаются в теле запроса в формате JSON. Все параметры обязательны. Строковые значения передаются в кодировке UTF-8.
Параметр | Тип | Описание |
text | String | Поисковая фраза |
count | Integer | Максимальное количество документов в ответе. Целое число от 1 до 30. Любое другое число будет проигнорировано и заменено на 1 |
kind | String Array | Массив строк, содержащие коды типов правовой информации среди которых выполнять поиск. Пустой массив приведет к поиску по всем документам, кроме пользовательских. Коды:
|
sort | Integer | Значение для сортировки:
|
sortOrder | Integer | Направление сортировки:
|
Пример:
{ "text": "44-фз о контрактной системе", "count": 30, "kind": ["001", "002"], "sort": 0, "sortOrder": 0 } |
Ответ
Успешный JSON-ответ содержит список найденных документов. Или пустой список если ничего не найдено.
Параметр | Тип | Описание |
documents | Object Array | Массив найденных документов |
documents[].name | String | Имя документа |
documents[].url | String | Относительная ссылка на документ, чтобы получить абсолютную ссылку нужно добавить вначале https://internet.garant.ru или свой адрес сервера, если вызов выполняется через API Гарант. Интранет-версии |
documents[].topic | Integer | Внутренний номер документа, который может быть использован в других функциях API, например в Экспорт документа |
Пример:
{ "documents": [{ "name": "Постановление Администрации Бологовского района Тверской области от 24 декабря 2018 г. N 251-п \"О внесении изменений в постановление Администрации муниципального образования \"Бологовский район\" Тверской области от 17.12.2014 N 272-п\"", "url": "/#/document/16379553", "topic": 16379553 }, { "name": "Предписание Управления Федеральной антимонопольной службы по Москве от 21 января 2019 г. по делу N 2-57-611/77-19", "url": "/#/document/75323053", "topic": 75323053 }] } |
Простановка ссылок
Позволяет найти и расставить ссылки на нормативные документы в переданном фрагменте текста.
Запрос
POST
URL: https://api.garant.ru/v1/find-hyperlinks
HEADERS:
- 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 |
Пример:
{ "text": "Настоящий Закон в соответствии с Федеральным законом от 29 декабря 2017 года N 443-ФЗ регулирует отдельные отношения, возникающие в процессе организации дорожного движения, а также при организации и осуществлении парковочной деятельности на территории Орловской области.", "baseUrl": "https://internet.garant.ru" } |
Ответ
Успешный JSON-ответ содержит фрагмент текст, переданного в запросе, в котором проставлены ссылки на нормативные акты.
Параметр | Тип | Описание |
text | String | Фрагмент текста в формате html, с расставленными ссылкам. Проставленные ссылки бывают только двух форматов:
|
Пример:
{ "text": "Настоящий Закон в соответствии с <a href=\"https://internet.garant.ru/#/document/71848756\">Федеральным _fcksavedurl=\"https://internet.garant.ru/#/document/71848756\">Федеральным законом</a> от 29 декабря 2017 года N 443-ФЗ регулирует отдельные отношения, возникающие в процессе организации дорожного движения, а также при организации и осуществлении парковочной деятельности на территории Орловской области." } |
Экспорт документа (rtf)
Позволяет получить текст документа в текстовом формате rtf.
Запрос
GET
URL: https://api.garant.ru/v1/topic/$topic/download
HEADERS:
- Authorization: Bearer ***
ПАРАМЕТРЫ
Параметры передаются в строке запроса и являются обязательными.
Параметр | Тип | Описание |
$topic | Integer | Внутренний номер документа, может быть получен из функции Поиска |
Пример cURL:
user@server:~$ curl "https://api.garant.ru/v1/topic/10103000/download"
--header "Authorization: Bearer xxxxYYYYzzzzz"
--output 10103000.rtf
Ответ
В случае успешного ответа файл сохранится на диск.
Экспорт документа (html)
Позволяет получить текст документа формате html, может включать комментарии юристов Гаранта.
Запрос
GET
URL: https://api.garant.ru/v1/topic/$topic/html
HEADERS:
- 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\"..." } ] } |
Экспорт документа (odt)
Позволяет получить текст документа в текстовом формате odt.
Запрос
GET
URL: https://api.garant.ru/v1/topic/$topic/download-odt
HEADERS:
Authorization: Bearer ***
ПАРАМЕТРЫ
Параметры передаются в строке запроса и являются обязательными.
Параметр | Тип | Описание |
$topic | Integer | Внутренний номер документа, может быть получен из функции Поиска |
Пример cURL:
user@server:~$ curl "https://api.garant.ru/v1/topic/10103000/download-odt"
--header "Authorization: Bearer xxxxYYYYzzzzz"
Ответ
В случае успешного ответа файл сохранится на диск.
Экспорт документа (pdf)
Позволяет получить текст документа в текстовом формате pdf.
Запрос
GET
URL: https://api.garant.ru/v1/topic/$topic/download-pdf
HEADERS:
Authorization: Bearer ***
ПАРАМЕТРЫ
Параметры передаются в строке запроса и являются обязательными.
Параметр | Тип | Описание |
$topic | Integer | Внутренний номер документа, может быть получен из функции Поиска |
Пример cURL:
user@server:~$ curl "https://api.garant.ru/v1/topic/10103000/download-pdf"
--header "Authorization: Bearer xxxxYYYYzzzzz"
Ответ
В случае успешного ответа файл сохранится на диск.
Документы на контроле
Позволяет определить наличие изменений в тексте нормативного документа начиная с указанной даты.
Запрос
POST
URL: https://api.garant.ru/v1/find-modified
HEADERS:
- Authorization: Bearer ***
ПАРАМЕТРЫ
Параметры передаются в теле запроса в формате JSON. Все параметры обязательны. Строковые значения передаются в кодировке UTF-8.
Параметр | Тип | Описание |
topics | String Array | Массив внутренних номеров документов для которых надо проверить наличие изменений. Не больше 100 номеров в одном запросе, если больше 100 вернется код ошибки 400 |
modDate | String Date | Дата, начиная с которой будут проверяться переданные документов на наличие изменений текста. Не может быть старше месяца от текущей даты. Формат даты ГГГГ-ММ-ДД |
Пример:
{ |
Ответ
Успешный JSON-ответ содержит массив документов из запроса, но только те, в которых произошли изменения.
Параметр | Тип | Описание |
topics | Object Array | Массив документов из запроса |
topics[].topic | Integer | Внутренний номер документа |
topics[].modStatus | Integer | Статус изменения:
|
Пример:
{ |
Фрагменты на контроле
Позволяет определить наличие изменений во фрагменте текста нормативного документа начиная с указанной даты. Фрагмент определяется ссылкой, которую можно вручную скопировать из браузера при просмотре нужного документа в Системе ГАРАНТЗапрос
POST
URL: https://api.garant.ru/v1/block-on-control/changed
HEADERS:
Accept: application/json
Content-type: application/json
Authorization: Bearer ***
ПАРАМЕТРЫ
Параметры передаются в теле запроса в формате JSON. Все параметры обязательны.
Параметр | Тип | Описание |
fromDate | String Date | Дата, начиная с которой будут проверяться переданные фрагменты на изменения текста. Формат даты ГГГГ-ММ-ДД Не может быть ранее 01.01.2018 |
urlArray | String Array | Массив ссылок на фрагменты, которые надо проверить на изменения. Ссылки могут включать только документы из комплекта Законодательство России. |
Пример:
{
"fromDate": "2019-10-15",
"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-ответ содержит список ссылок, в которых произошли изменения
Параметр | Тип | Описание |
urlArray | Object Array | Массив ссылок, которые менялись |
urlArray[].url | String | Ссылка из запроса |
urlArray[].modStatus | Integer | Статус изменения: 1 - изменился 2 - не найден |
Пример:
{
"urlArray": [{
"url": "http://internet.garant.ru/#/document/77675772/entry/4001",
"modStatus": 1
}]
}
Список категорий для Ленты Прайм
Вернет список тематических категорий, которые можно использовать для уточнения по каким темам должна формироваться лента прайм (см. функцию Лента Прайм).
Запрос
GET
URL: https://api.garant.ru/v1/prime
HEADERS:
- 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.
Запрос
POST
URL: https://api.garant.ru/v1/prime/create-news
HEADERS:
- Accept: application/json
- Content-type: application/json
- Authorization: Bearer ***
ПАРАМЕТРЫ
Параметры передаются в теле запроса в формате JSON. Все параметры обязательны. Строковые значения передаются в кодировке UTF-8.
Параметр | Тип | Описание |
categories | Integer Array | Список ID категорий, по которым будет сформирована лента новостей. Пустой массив означает - все категории. |
fromDate | String Date | Дата, начиная с которой будет сформирован список новостей. Формат даты ГГГГ-ММ-ДД. |
Пример:
{ "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": ["Городские округа с внутригородским делением", "В статье проводится правовой анализ изменений"] }] } |
Информация о документе
Возвращает атрибуты документа
Запрос
GET
URL: https://api.garant.ru/v1/topic/$topic
HEADERS:
Accept: application/json
Content-type: application/json
Authorization: Bearer ***
ПАРАМЕТРЫ
Параметры передаются в строке запроса и являются обязательными.
Параметр | Тип | Описание |
$topic | Integer | Внутренний номер документа, может быть получен из функции Поиска |
Успешный JSON-ответ содержит атрибуты документа
Параметр | Тип | Описание |
url | String | Относительная ссылка на документ, чтобы получить абсолютную ссылку нужно добавить вначале https://internet.garant.ru для коммерческих пользователей или https://ivo.garant.ru для некоммерческих |
topic | Integer | Внутренний номер документа, который может быть использован в других функциях API, например в Экспорт документа |
name | String | Имя документа |
type | Array | Список типов документов (напр. Приказ) |
adopted | String | Орган\источник |
class | String | Тема |
date | String | Дата |
number | Array | Список номеров |
rdate | String | Дата регистрации |
rcode | String | Регистрационный номер |
rstatus | String | Статус регистрации |
category | String | Значимость |
status | String | Статус |
kind | String | Вид информации |
territory | String | Территория |
segment | String | Информационный блок |
Пример:
{
"url": "/#/document/72957500",
"topic": 72957500,
"name": "Городские округа с внутригородским делением в муниципально-территориальном устройстве",
"type": ["Акт"],
"adopted": "Референдум Российской Федерации",
"class": "Основы государственно-правового устройства\\Основы конституционного строя",
"date": "01.01.2001",
"number": ["0"],
"rdate": "01.01.2001",
"rcode": "01",
"rstatus": "Иные",
"category": "Общие",
"status": "Действующие",
"kind": "Комментарии",
"territory": "Российская Федерация",
"segmentK3": "Практика высших судебных органов"
}
Коды ошибок
В случае ошибки API возвращается HTTP-код ошибки.
HTTP Код | Метод API | Описание |
400 | Все | Ошибка синтаксиса запроса (неправильный формат данных) |
400 | Документы на контроле | В запросе передано больше 100 документов для проверки |
400 | Лента прайм | Переданная дата больше чем на один год отличается от текущей или разница между fromDate и toDate более 10 дней |
401 | Все | Неверный токен авторизации или истек срок действия токена |
403 | Все | Нет прав на данный запрос (недостаточно разрешений у токена) |
404 | Экспорт документа, Документы на контроле | Документ не найден |
404 | Лента прайм | Не найдена категория, переданная в запросе |
423 | Простановка ссылок, Документы на контроле | Суммарное количество запросов по двум методам превысило 1000 с начала календарного месяца |
423 | Экспорт документа | Количество запросов превысило 30 с начала календарного месяца |
423 | Информация о документе | Количество запросов превысило 300 с начала календарного месяца |
429 | Все | Слишком много запросов, сервис временно недоступен |
Примеры поиска с помощью языка запросов
В этом разделе приводится описание возможности поиска документов по значениям разных реквизитов. Для этих целей разработан специальный язык запросов, на котором необходимо описывать строку для поиска - поле text - в методе API Поиск.
Поиск по номеру
{
"text": "& BOOL(| CasesNumber(001/20-П))",
"count": 30,
"isQuery": true,
"kind": ["003"],
"sort": 0,
"sortOrder": 0
}
Поиск по словам в тексте
{
"text": "& BOOL(& MorphoText(налог))",
"count": 30,
"isQuery": true,
"kind": ["001", "002", "003"],
"sort": 0,
"sortOrder": 0
}
Поиск по дате
{
"text": "& BOOL(Date(20.01.2022;26.01.2022))",
"count": 30,
"isQuery": true,
"kind": ["001","002","003"],
"sort": 0,
"sortOrder": 0
}
Поиск по словам в названии
{
"text": "& BOOL(& MorphoName(Конституция))",
"count": 30,
"isQuery": true,
"kind": ["001","002","003"],
"sort": 0,
"sortOrder": 0
}
Поиск по типу
{
"text": "& BOOL(| Type(Аттестат))",
"count": 30,
"isQuery": true,
"kind": ["001","002","003"],
"sort": 0,
"sortOrder": 0
}
Поиск по органу государственной власти
{
"text": "& BOOL(| Adopted(Органы власти г. Москвы))",
"count": 30,
"isQuery": true,
"kind": ["001","002","003"],
"sort": 0,
"sortOrder": 0
}
Поиск по дате регистрации в Минюсте
{
"text": "& BOOL(RDate(20.01.2022;26.01.2022))",
"count": 30,
"isQuery": true,
"kind": ["001","002","003"],
"sort": 0,
"sortOrder": 0
}
{
"text": "& BOOL(| Type(Акт)) & BOOL(| Number(44))",
"count": 30,
"isQuery": true,
"kind": ["001","002","003"],
"sort": 0,
"sortOrder": 0
}