RDS
Digital Signage RDS — Documentación
ES EN CA FR PT DE IT RU

Введение в API

Публичный REST API Digital Signage RDS позволяет интегрировать сторонние сервисы с вашей учётной записью, автоматизировать задачи или создать собственную панель управления.


1. Начало работы за 3 шага

  1. Откройте свой Профиль и перейдите на вкладку API.
  2. Создайте новый ключ, задав ему имя (например, Zapier), выбрав срок действия и права доступа (только чтение или чтение
    • запись).
  3. Скопируйте токен (rds_live_…). Повторно он не показывается. Если вы его потеряете, придётся создать новый.

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

Передавайте токен в заголовке Authorization как Bearer token:

curl -H "Authorization: Bearer rds_live_xxxxx" \
     https://rds.digitalsignagerds.com/api/v1/me

Хороший первый тест — GET /me: он возвращает данные ключа и связанную компанию.

Права доступа (scopes)

У каждого ключа есть набор прав:

Право Что позволяет
read Получать списки и читать ресурсы (GET)
write Загружать контент и изменять ресурсы (POST)

Ключи только для чтения не могут загружать изображения и видео и что-либо изменять. Они вернут 403 insufficient_scope.

Срок действия и отзыв

Ключи могут истекать автоматически (30 дней, 90 дней, 1 год или «Без срока»). Их также можно отозвать вручную в своём профиле. Истёкший или отозванный ключ возвращает 401 Token has expired или 401 Token has been revoked.


3. Ограничение частоты запросов

60 запросов в минуту на токен. При превышении вы получите 429 Too Many Requests с заголовком Retry-After: <секунды>, который указывает, сколько нужно подождать.


4. Ответы

Одиночный ресурс

{
  "object": "device",
  "id": 1138,
  "code": "RDSDF25",
  "...": "..."
}

Списки (курсорная пагинация)

{
  "object": "list",
  "url": "/api/v1/devices",
  "data": [ { ... }, { ... } ],
  "has_more": true,
  "next_cursor": "1142"
}

Чтобы получить следующую страницу, передайте next_cursor как starting_after:

GET /api/v1/devices?starting_after=1142&limit=20

Параметры, принимаемые в списках:

Параметр Значение По умолчанию
limit 1–100 20
starting_after целочисленный id 0 (первый результат)

Ошибки

{
  "error": {
    "type": "unauthorized",
    "message": "Invalid token"
  }
}

Частые типы ошибок:

Код Type Когда
401 unauthorized Токен отсутствует, некорректен, неизвестен, отозван или истёк
403 insufficient_scope У ключа нет необходимого права
403 quota_exceeded Достигнута квота компании (devices, images, videos)
404 not_found Ресурс не существует или недоступен вашей компании
405 method_not_allowed HTTP-метод не поддерживается на этом маршруте
413 file_too_large Загружаемый файл превышает лимит
415 unsupported_media_type Расширение или содержимое файла не поддерживается
429 rate_limited Превышен лимит в 60 запросов в минуту
500 server_error Непредвиденная ошибка сервера

5. Доступные эндпоинты

Учётная запись

Метод Путь Описание
GET /me Данные ключа (быстрая проверка аутентификации)
GET /account Компания: адрес, контакт, лимиты, использование и подписка
GET /subscription Подписка: текущий цикл, счётчики и следующий платёж
GET /invoices Счета (Stripe), сначала самые свежие

Устройства

Метод Путь Описание
GET /devices Список устройств (без выведенных из эксплуатации)
GET /devices/{id_o_codigo} Одно устройство (принимает целочисленный id или код RDSxxx)
GET /devices?code=RDSF8B8 Фильтр списка по точному коду

Каждое устройство отдаёт is_online, last_seen_at, playlist_id + playlist_name, workspace_id + workspace_name (+ родительскую, если это подплощадка), kiosk_mode, kiosk_whitelist, branch_*, даты контракта и другое.

Площадки (workspaces)

Метод Путь Описание
GET /workspaces Список (площадки и подплощадки)
GET /workspaces/{id} Одна площадка с метками, контентом по умолчанию и картой

Playlists

Метод Путь Описание
GET /playlists Список playlist
GET /playlists/{id} Playlist с числом устройств / изображений / видео

Изображения

Метод Путь Описание
GET /images Список
GET /images/{id} Одно изображение (включает url для скачивания бинарного файла)
POST /images Загрузить (требуется scope write)

Видео

Метод Путь Описание
GET /videos Список
GET /videos/{id} Одно видео (включает url для скачивания бинарного файла)
POST /videos Загрузить (требуется scope write)

6. Загрузка контента

Эндпоинты POST /images и POST /videos принимают multipart/form-data с двумя частями: file (бинарный файл, обязательно) и name (необязательный текст с заголовком, видимым клиенту).

curl -X POST https://rds.digitalsignagerds.com/api/v1/images \
  -H "Authorization: Bearer rds_live_xxxxx" \
  -F "name=Cartel Navidad" \
  -F "file=@/ruta/al/cartel.png"

Ограничения для изображений:

Ограничения для видео:

Ответ на успешный POST — 201 Created с только что созданным ресурсом (включает id, filename, url и crc).


7. Интерактивный справочник

Чтобы протестировать каждый эндпоинт вживую, посмотреть точные схемы ответов и скачать OpenAPI YAML, перейдите на страницу Справочник (Swagger).