API и интеграции

Подключайте комнаты встреч, вебинары и записи ТрейнАп к своим системам. Все запросы — по HTTPS, ответы в JSON, доступ по токену организации.

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

Доступ к API — по статическому ключу. Создайте его в личном кабинете организации (Настройки → Интеграции → API-ключи) и передавайте в заголовке X-Auth-Token с каждым запросом.

curl https://hrn.ru/api/v1/account \
  -H "X-Auth-Token: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

Ключ можно отозвать в личном кабинете — после отзыва запросы с ним вернут код 401.

Методы API

Основные эндпоинты для интеграции с кабинетом организации.

МетодПутьОписание
GET/api/v1/statusСтатус сервиса по компонентам
GET/api/v1/roomsСписок комнат организации
POST/api/v1/roomsСоздание комнаты и токена подключения
GET/api/v1/rooms/{id}Данные комнаты по идентификатору
PATCH/api/v1/rooms/{id}Изменение настроек комнаты
DELETE/api/v1/rooms/{id}Удаление комнаты
GET/api/v1/webinarsСписок и расписание вебинаров
POST/api/v1/webinarsСоздание вебинара
GET/api/v1/recordingsСписок записей встреч и вебинаров
DELETE/api/v1/recordings/{id}Удаление записи
GET/api/v1/filesСписок записей и файлов хранилища
GET/api/v1/storage/usageИспользованная квота хранилища
GET/api/v1/accountДанные организации и тарифа

Коды ответов

КодЗначение
200Запрос выполнен, тело ответа — JSON
400Неверные параметры запроса
401Ключ отсутствует, отозван или неверен
403Нет прав на объект или недостаточно прав ключа
404Объект не найден
429Превышен лимит запросов, заголовок Retry-After

Пагинация

Списочные методы (/api/v1/rooms, /api/v1/webinars, /api/v1/recordings, /api/v1/files) принимают параметры limit (по умолчанию 50, максимум 200) и offset. Общее число объектов возвращается в поле total.

curl "https://hrn.ru/api/v1/rooms?limit=50&offset=0" \
  -H "X-Auth-Token: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

# ответ
{"items":[...],"total":128,"limit":50,"offset":0}

Создание комнаты

Комната создаётся запросом с именем; в ответ приходит токен подключения для конкретного участника.

POST/api/v1/rooms
curl -X POST https://hrn.ru/api/v1/rooms \
  -H "X-Auth-Token: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" \
  -H "Content-Type: application/json" \
  -d '{"name":"planning-weekly"}'

# ответ
{"room":"planning-weekly","sid":"a41f9c02","join_token":"<join_token>","ws_url":"wss://hrn.ru/xmpp-websocket"}

Подключение к встрече из своего приложения

Токен join_token, полученный от POST /api/v1/rooms, открывает конкретного участника во встрече одним из двух способов.

  • Прямая ссылка: https://hrn.ru/room.html?room=<room>, токен передаётся вашим бэкендом при переходе.
  • Встраивание через iframe прямо в интерфейс вашего приложения.
<iframe
  src="https://hrn.ru/room.html?room=planning-weekly&token=<join_token>"
  allow="camera; microphone; display-capture"
  width="960" height="600"></iframe>

Вебхуки

ТрейнАп отправляет события на URL, указанный в настройках интеграции организации.

POST meeting.started

{"event":"meeting.started","room":"planning-weekly","sid":"a41f9c02","started_at":"2026-09-06T09:00:00+03:00"}

POST meeting.ended

{"event":"meeting.ended","room":"planning-weekly","sid":"a41f9c02","ended_at":"2026-09-06T09:42:10+03:00","duration_sec":2530}

POST recording.ready

{"event":"recording.ready","room":"planning-weekly","sid":"a41f9c02","recording_url":"https://hrn.ru/api/v1/files/rec-8841","duration_sec":2530}

Лимиты

2 запроса в секунду на один API-ключ, единый лимит без деления по тарифам. При превышении — код 429 и заголовок Retry-After; распределяйте нагрузку интеграции равномерно.

Нужна помощь с интеграцией?

Персональный менеджер поможет подключить API к вашей системе.