REST API

Один контракт на все модули: реестр, вызов, задача, результат. Формат ответа не зависит от того, обращается к платформе человек, ваша система или ИИ-агент.

Аутентификация

Ключ организации в заголовке

Каждый запрос несёт заголовок X-API-Key. Ключ выдаётся организации, к нему привязаны баланс, лимиты и журнал действий. Сервисные ключи сотрудников и клиентские ключи разделены: списание идёт только по клиентским.

Базовый адрес: https://api.inforensic.pro/v2

Проверка доступа

curl https://api.inforensic.pro/v2/health
curl https://api.inforensic.pro/v2/modules -H "X-API-Key: $CONTEXT_KEY"

Эндпоинты

Семь адресов на всю платформу

Реестр модулей отдаёт схемы входа и цену, поэтому клиент может строить запрос без ручной сверки с документацией.

Эндпоинт Назначение Списание
GET /v2/modulesРеестр модулей со схемами входа и ценойбесплатно
GET /v2/modules/{key}Паспорт одного модулябесплатно
POST /v2/modules/{key}/executeСинхронный вызов, ответ в том же запросепо тарифу модуля
POST /v2/modules/{key}/execute_asyncПостановка задачи, возвращает task_idпо тарифу модуля
GET /v2/task/{task_id}/statusСтатус задачи и прогрессбесплатно
GET /v2/task/{task_id}/resultРезультат завершённой задачибесплатно
GET /v2/healthСостояние сервисабесплатно

Вызов

Синхронно или задачей

Быстрые модули

# Синхронный вызов: ответ приходит в том же запросе
curl -X POST \
  https://api.inforensic.pro/v2/modules/\
  compliance.fns_disqualified/execute \
  -H "X-API-Key: $CONTEXT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"last_name":"Петрова","first_name":"Елена","birth_date":"1978-03-12"}'

Долгие источники

# Асинхронный вызов: задача и опрос статуса
curl -X POST .../execute_async -H "X-API-Key: $CONTEXT_KEY" -d '{...}'
 {"task_id":"550e8400-e29b-41d4-a716-446655440000"}

curl .../v2/task/$TASK_ID/status  # PENDING → PROGRESS → COMPLETED
curl .../v2/task/$TASK_ID/result

Синхронный вызов удобен для локальных и быстрых проверок. Источники с браузерным обходом и капчей отвечают дольше, для них предусмотрена задача с опросом статуса или вебхуком.

Ответ

Единый конверт

Структура ответа

{
  "status": "COMPLETED",
  "success": true,
  "module_name": "fns_disqualified",
  "data": {
    "found": true, "total_count": 1,
    "results": [ /* записи источника */ ],
    "risk_profile": { /* уровни и факторы */ },
    "source": "service.nalog.ru",
    "data_actual_date": "2026-08-27"
  },
  "metadata": { "request_id", "processing_time_ms", "data_freshness" },
  "error": null
}

Поля верхнего уровня одинаковы у всех модулей: статус, признак успеха, имя модуля, полезные данные, метаданные запроса и ошибка. Внутри data лежат записи источника, статистика и риск-профиль.

Дата актуальности данных приходит отдельным полем: это позволяет отличить «в источнике пусто» от «источник обновлялся месяц назад».

Задачи

Статусы асинхронного выполнения

Статус Что означает
PENDINGЗадача принята и стоит в очереди
STARTEDИсполнитель взял задачу в работу
PROGRESSВыполняется, приходит поле progress от 0 до 100
COMPLETEDЗавершена, результат доступен
FAILEDЗавершена с ошибкой, средства возвращены
Код Причина
400Запрос не прошёл валидацию
401Ключ отсутствует или отозван
402Недостаточно средств на балансе организации
404Модуль или задача не найдены
422Поля не соответствуют схеме модуля
500Внутренняя ошибка, средства возвращены
503Источник временно недоступен, средства возвращены

При ошибке источника или внутреннем сбое списанные средства возвращаются на баланс автоматически: платить за неполученный ответ не нужно.

Заявка

Подберём модули под ваш поток проверок

Расскажите о задаче: посчитаем стоимость запроса, предложим пакет, поможем со встраиванием в ваш контур и пришлём договор.

Коммерческие вопросы
contact@inforensic.pro
Поддержка, ответ в течение 48 часов
support@inforensic.pro
Телеграм
@InforensicPro