Контур.Фокус API: Отслеживать изменения у контрагентов

Сценарий из mcp-everything. Актуально на 2026-10-25.

NEW Наблюдение: ставишь компании на наблюдение, один раз берёшь полное состояние, потом читаешь ленту изменений в формате RFC 6902 (path, operation, oldValue, newValue).

  1. Добавь компании в список: POST /api3/monitoringList?method=req, тело — массив объектов с inn и/или ogrn.
  2. Получи полные состояния: GET /api3/monitoringGetStates?method=req&ogrn=... — запомни минимальный changeId.
  3. Читай изменения: GET /api3/monitoringGetChanges?method=req&changeId=... и сохраняй последний полученный changeId.
  4. При isNewCompany запроси полное состояние компании заново. Изменения хранятся 90 дней.
curl -X POST "https://focus-api.kontur.ru/api3/monitoringList?key=$FOCUS_KEY&method=req" \
  -H "Content-Type: application/json" \
  -d '[{"inn": "6663003127"}, {"ogrn": "1027700070518"}]'

curl "https://focus-api.kontur.ru/api3/monitoringGetStates?key=$FOCUS_KEY&method=req&ogrn=1027700070518"

curl "https://focus-api.kontur.ru/api3/monitoringGetChanges?key=$FOCUS_KEY&method=req&changeId=$CHANGE_ID"

Базовые URL

Авторизация

Тип: API-ключ

Ключ доступа передаётся параметром key в строке запроса. Тестовый ключ выдают по заявке: https://focus.kontur.ru/site/api/order-api. Для ключей с лимитом больше 100 000 компаний или запросов обязателен второй фактор: ограничение по IP-диапазонам или подпись каждого запроса сертификатом (настраивает техподдержка, focus-api@kontur.ru).

Методы сценария

POST /api3/monitoringList — Добавление компаний на наблюдение

Тело — JSON-массив объектов с inn и/или ogrn. В ответе: countOfCompaniesInList, listSize, spentInTotalLimit, totalLimit, listOfCompaniesInQuery, listOfInvalid. Есть также GET (просмотр списка, skip/take) и DELETE (удаление).

Документация: https://developer.kontur.ru/doc/focus-v2/method?type=post&path=%2Fapi3%2FmonitoringList

Параметр Где Тип Обяз. Описание
key query string да Ключ доступа
method query string да Схема наблюдения: req или egrDetails
[].inn body string нет ИНН
[].ogrn body string нет ОГРН

GET /api3/monitoringGetStates — Полные состояния по списку

В ответе: changeId, inn, ogrn, isDissolvedMoreThanTTL, responseFromApiMethod (полный ответ по схеме метода).

Документация: https://developer.kontur.ru/doc/focus-v2/method?type=get&path=%2Fapi3%2FmonitoringGetStates

Параметр Где Тип Обяз. Описание
key query string да Ключ доступа
method query string да req или egrDetails
ogrn query string да ОГРН, до 100 через запятую

GET /api3/monitoringGetChanges — Лента изменений

В ответе: changeId, inn, ogrn, changes[] (path, operation — add/remove/replace, oldValue, newValue), isNewCompany, timestamp.

Документация: https://developer.kontur.ru/doc/focus-v2/method?type=get&path=%2Fapi3%2FmonitoringGetChanges

Параметр Где Тип Обяз. Описание
key query string да Ключ доступа
method query string да req или egrDetails
changeId query integer нет С какого изменения читать (для старта — минимальный из monitoringGetStates)
getFirstChangesFromTTL query boolean нет Все известные изменения за последние 90 дней
withoutDetails query boolean нет Без подробностей изменений

Нюансы

Другие сценарии


Если этого недостаточно — официальная документация: https://developer.kontur.ru/doc/focus-v2 Вся интеграция одним документом: https://mcp-everything.ru/integrations/kontur-focus.md