Все примеры подразумевают заголовок X-API-Key из статьи API: обзор и авторизация.
Список сессий
Возвращает историю подключений организации. Ключ под ролью «Техник» или «Администратор» видит все сессии, под ролью «Наблюдатель» - только те, в которых участвовал владелец ключа.
Запрос
GET /api/v1/sessions
Право: чтение сессий.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
fromDeviceId | строка | Только сессии, начатые с этого устройства |
toDeviceId | строка | Только сессии к этому устройству |
from | дата | Начало периода в формате ISO 8601, например 2026-08-01T00:00:00Z |
to | дата | Конец периода |
relayed | true или false | Отобрать только соединения через ретранслятор или только прямые |
limit | число | Сколько записей вернуть |
Параметр relayed удобен для отчёта о качестве сети: доля сессий со значением true показывает, как часто прямое соединение не проходит и трафик идёт через промежуточный сервер.
Пример
curl -H "X-API-Key: ВАШ_КЛЮЧ" \
"https://pcdesk.ru/api/v1/sessions?from=2026-08-01T00:00:00Z&relayed=true&limit=100"
Карточка сессии
Возвращает одну сессию подробно: участников с обеих сторон, время начала и конца, признак ретранслятора, связанную запись экрана и события передачи файлов.
Запрос
GET /api/v1/sessions/{id}
Право: чтение сессий.
Если сессии с таким идентификатором в вашей организации нет, приходит 404 - в том числе когда она существует в другой организации.
Список записей
Запрос
GET /api/v1/recordings
Право: чтение записей.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
sessionId | строка | Записи конкретной сессии |
scope | self или tenant | self - свои записи (по умолчанию), tenant - все записи организации, нужна роль техника или администратора |
limit | число | Сколько записей вернуть |
Получение записи со ссылкой на видео
Возвращает запись вместе с временными ссылками на файл. Ссылки живут недолго и предназначены для немедленного скачивания или проигрывания - не сохраняйте их в своей базе, запрашивайте заново перед каждым показом.
Ссылок две, и они не взаимозаменяемы: presignedGetUrl открывает запись для проигрывания (браузер играет её в плеере), а presignedDownloadUrl сохраняет тем же файлом на диск - хранилище отдаёт по ней заголовок Content-Disposition: attachment и имя файла. Для встроенного плеера берите первую, для кнопки «Скачать» - вторую: тогда файл сохраняет сам браузер, и он же сообщит, если на диске не хватило места.
Запрос
GET /api/v1/recordings/{id}
Право: чтение записей.
Так удобно встроить проигрывание записи в свою систему заявок: по идентификатору сессии находите запись, затем получаете ссылку в момент, когда сотрудник нажал «Смотреть».
Загрузка записи
Загрузка идёт в два шага, потому что файл кладётся в хранилище напрямую, минуя наш сервер.
Шаг 1. Получить ссылку для загрузки
POST /api/v1/recordings/presign
Право: изменение записей.
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
sessionId | строка | да | Сессия, к которой относится запись |
size | число | нет | Точный размер готового файла в байтах. Если передан, он подписывается в ссылку, и загрузка с другим размером будет отклонена |
В ответ приходят ссылка для загрузки и ключ объекта в хранилище.
Шаг 2. Отправить файл по полученной ссылке методом PUT, целиком, без заголовка X-API-Key - ссылка уже содержит подпись.
Шаг 3. Подтвердить загрузку
POST /api/v1/recordings
Право: изменение записей.
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
sessionId | строка | да | Та же сессия |
storageKey | строка | да | Ключ объекта из первого шага |
durationSec | число | да | Длительность записи в секундах |
size | число | да | Размер файла в байтах |
Размер проверяется по факту в хранилище, поэтому занизить его в запросе, чтобы обойти квоту тарифа, не получится. Запись появляется в кабинете только после подтверждения: файл, загруженный без третьего шага, в списке не отображается.
Удаление записи
Запрос
DELETE /api/v1/recordings/{id}
Право: изменение записей. Роль: техник или администратор.
Запись помечается удалённой и исчезает из списка. Сама сессия в журнале остаётся - видно, что подключение было, но записи по нему больше нет.