API — обзор
Актуально для: SimpleTwo 0.9.x · Проверено: 07.09.2026
У платформы не один API, а несколько — по службам, и это не разрозненность, а следствие разделения плоскостей: у плоскости связи и плоскости управления разные требования к доступности, поэтому у них разные адреса и разные сроки жизни токенов.
| Служба | База | Что там |
|---|---|---|
| Координатор | https://s2.<домен>/v1 | вход и сессии, каталог, политики доступа, встречи, реестр узлов, консоль |
| Messaging | https://chat.s2.<домен>/v1 | разговоры и сообщения, звон ки и сигналинг, присутствие, боты, вложения |
| Календарь | https://cal.s2.<домен>/v1 | календари, записи, приглашения, ICS и CalDAV |
Полная карта эндпоинтов каждой службы — в разделе Справочник: он собирается из кода, поэтому не отстаёт от релиза.
Аутентификация: пять разных вещей
Все пять ходят в одном заголовке Authorization: Bearer <токен> — и это единственное, что
у них общее. Права, срок жизни и способ получения различаются.
| Токен | Кому выдаётся | Как получить | Живёт |
|---|---|---|---|
| сессия | человеку в клиенте | POST /v1/auth/login или вход через SSO | коротко, продлевается POST /v1/auth/renew |
бот (bot_…) | боту или интеграции | администратором в консоли: Bots | до отзыва; каждый запрос в аудите, включая чтения |
| служебный | службе продукта (messaging → координатор) | из конфигурации при установке роли | до перевыпуска |
узел (X-Node-Token, не Bearer) | хосту с ролью | при подключении хоста join-командой | до отзыва хоста |
| приглашение | одноразовое, в пути URL | POST /admin/api/enroll | один обмен, затем 410 |
Три правила, о которые спотыкаются интеграции:
- Токен бота — не токен человека. Бот ограничен возможностями (capabilities) и списком разговоров: то, что видит сотрудник, боту может быть недоступно, и наоборот. Проверять свою интеграцию под сессией человека, а запускать под ботом — верный способ получить 403 в проде.
- 401 означает «продли», а не «повтори». На 401 нужно один раз сходить в
POST /v1/auth/renewи повторить запрос; повтор с тем же токеном даст тот же 401. - 403 намеренно накрывает и «нет такого», и «не ваше» — там, где различить их значило бы раскрыть каталог, который вызывающему не положено читать.