API-токены и OpenAPI

Выпуск токенов с ограниченными областями для скриптов, MCP и ботов, описание API в формате OpenAPI и коды отказов.

API-токен — доступ для MCP, Telegram-бота и своих скриптов вместо ключа инстанса. У токена есть области: он открывает только то, что вы ему выдали. Пароли, коды 2FA и выгрузка хранилища токену недоступны никогда; настройки, выпуск токенов и привязка устройств — тоже.

Выпуск

Настройки → Доступ → API-токены:

  1. Подпись — чтобы потом узнать токен, например «Claude на ноутбуке».
  2. Шаблон — готовый набор областей:
ШаблонОбласти
MCP финблокаfin:read, fin:write
MCP Нетворкаcrm
Telegram-ботtelegram, banks, booking, assistant, fin:read, fin:write
Только чтениеfin:read, vault:read-meta, servers:read
  1. Срок — 30 дней, 90 дней, год или без срока.
  2. «Выпустить». Токен (ocd_…) показывается один раз — скопируйте его сразу.

Отзыв — «Отозвать»: клиент с этим токеном сразу получит 401. Вернуть отозванный токен нельзя, только выпустить новый.

Использование и лимит

Кнопка с графиком в строке токена раскрывает его статистику за 30 дней: вызовы по дням (ошибки и отказы лимита — отдельным цветом), последний вызов — время, запрос и адрес, усечённый до сети (203.0.113.0/24), и самые частые запросы. Хранятся только счётчики по дням и шаблонам маршрутов (GET /api/fin/accounts/:id) — тела запросов, параметры и значения в адресе не сохраняются. Дни считаются по UTC, статистика живёт 90 дней.

У каждого токена есть лимит запросов в минуту — по умолчанию 300. Его можно поменять там же, в статистике токена: новый лимит действует сразу, перевыпускать токен не нужно. Сверх лимита API отвечает 429 token_rate_limited с заголовком Retry-After — сколько секунд подождать. Короткий всплеск до размера лимита проходит, дальше запросы пропускаются равномерно.

Области

ОбластьЧто открывает
fin:readфинансы — чтение
fin:writeфинансы — запись (включает чтение)
vault:read-metaхранилище — только список, без секретов
calendarкалендарь
tasksзадачи
docsдокументы (без удаления)
servers:readсерверы — чтение
telegramTelegram
banksвход в банки — выдавайте только боту
bookingброни
assistantассистент — широкая область
crmнетворк (контакты и лиды)
healthсостояние инстанса

Описание API (OpenAPI)

Справочник API — страница /api-reference вашего инстанса (например, https://имя.me.rivo.day/api-reference), вход для неё не нужен: каждый маршрут с параметрами, примером тела и готовой командой curl, области токена, коды ошибок и лимиты. Ссылка на него есть и в дашборде — кнопка «Документация» в разделе API-токенов показывает краткое описание прямо там. Машиночитаемый файл — по адресу /api/openapi.json вашего инстанса (например, https://имя.me.rivo.day/api/openapi.json), вход для него не нужен. Формат — OpenAPI 3.1: файл импортируется в Swagger Editor, Postman или Insomnia.

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

Запросы

export RIVO_URL=https://имя.me.rivo.day
export RIVO_TOKEN=ocd_…
curl -H "Authorization: Bearer $RIVO_TOKEN" "$RIVO_URL/api/fin/summary"

Примеры в справочнике пользуются этими же переменными. Отказ — JSON с полями statusCode, code и message: ветвитесь по code, текст message может меняться.

ОтветЧто значит
401 device_revokedтокен отозван или истёк
403 scope_forbiddenмаршрут вне областей токена — выпустите токен с нужной областью
409 time_busyкалендарь: время занято (запрос с checkConflicts: true), в ответе пересечения и свободные окна
429 token_rate_limitedпревышен лимит токена — повторите через Retry-After секунд
429 rate_limitedслишком часто — повторите через retryAfter секунд

Полный список кодов (в том числе plan_locked, module_disabled, vault_e2e_strict) и лимиты — в справочнике API.

Публичная бронь работает без токена — см. Бронь и вебхуки. Подключить Claude к дашборду — MCP-сервер.