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

Introducción a la API

La API REST pública de Digital Signage RDS te permite integrar terceros con tu cuenta, automatizar tareas o construir tu propio panel de control.


1. Empezar en 3 pasos

  1. Entra en tu Perfil y abre la pestaña API.
  2. Crea una nueva clave dándole un nombre (p. ej. Zapier), eligiendo la caducidad y los permisos (solo lectura o lectura
    • escritura).
  3. Copia el token (rds_live_…). No se vuelve a mostrar. Si lo pierdes, tendrás que crear otro.

2. Autenticación

Pasa el token en la cabecera Authorization como Bearer token:

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

Un buen primer test es GET /me: te devuelve la clave y la empresa asociada.

Permisos (scopes)

Cada clave tiene un conjunto de permisos:

Permiso Qué permite
read Listar y leer recursos (GET)
write Subir contenido y modificar recursos (POST)

Las claves de solo lectura no pueden subir imágenes/vídeos ni modificar nada. Devolverán 403 insufficient_scope.

Caducidad y revocación

Las claves pueden caducar automáticamente (30 días, 90 días, 1 año o "Sin caducidad"). También puedes revocarlas manualmente desde tu perfil. Una clave caducada o revocada devuelve 401 Token has expired o 401 Token has been revoked.


3. Límite de tasa

60 peticiones por minuto por token. Cuando lo superes, recibirás un 429 Too Many Requests con una cabecera Retry-After: <segundos> que indica cuánto esperar.


4. Respuestas

Recurso único

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

Listas (paginación con cursor)

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

Para obtener la siguiente página, pasa el next_cursor como starting_after:

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

Parámetros aceptados en listas:

Parámetro Valor Por defecto
limit 1–100 20
starting_after id entero 0 (primer resultado)

Errores

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

Tipos de error frecuentes:

Código Type Cuándo
401 unauthorized Token ausente, malformado, desconocido, revocado o caducado
403 insufficient_scope La clave no tiene el permiso necesario
403 quota_exceeded Has alcanzado el cupo de la empresa (devices, images, videos)
404 not_found El recurso no existe o no es visible para tu empresa
405 method_not_allowed Método HTTP no admitido en esa ruta
413 file_too_large Archivo subido excede el límite
415 unsupported_media_type Extensión o contenido del archivo no admitido
429 rate_limited Has superado las 60 peticiones por minuto
500 server_error Error inesperado del servidor

5. Endpoints disponibles

Cuenta

Método Ruta Descripción
GET /me Datos de la clave (test rápido de auth)
GET /account Empresa: dirección, contacto, límites, uso y suscripción
GET /subscription Suscripción: ciclo actual, contadores y próximo pago
GET /invoices Facturas (Stripe), más recientes primero

Dispositivos

Método Ruta Descripción
GET /devices Lista de dispositivos (excluye los retirados)
GET /devices/{id_o_codigo} Un dispositivo (admite id entero o código RDSxxx)
GET /devices?code=RDSF8B8 Filtrar lista por código exacto

Cada dispositivo expone is_online, last_seen_at, playlist_id + playlist_name, workspace_id + workspace_name (+ padre si es sub-sede), kiosk_mode, kiosk_whitelist, branch_*, fechas de contrato y más.

Sedes (workspaces)

Método Ruta Descripción
GET /workspaces Lista (sedes y sub-sedes)
GET /workspaces/{id} Una sede con etiquetas, contenido por defecto y mapa

Playlists

Método Ruta Descripción
GET /playlists Lista de playlists
GET /playlists/{id} Playlist con conteo de dispositivos / imágenes / vídeos

Imágenes

Método Ruta Descripción
GET /images Lista
GET /images/{id} Una imagen (incluye url para descargar el binario)
POST /images Subir (requiere scope write)

Vídeos

Método Ruta Descripción
GET /videos Lista
GET /videos/{id} Un vídeo (incluye url para descargar el binario)
POST /videos Subir (requiere scope write)

6. Subir contenido

Los endpoints POST /images y POST /videos aceptan multipart/form-data con dos partes: file (binario, obligatorio) y name (texto opcional con el título visible para el cliente).

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"

Restricciones de imágenes:

Restricciones de vídeos:

La respuesta de un POST exitoso es 201 Created con el recurso recién creado (incluye id, filename, url y crc).


7. Referencia interactiva

Para probar cada endpoint en directo, ver los esquemas exactos de respuesta y descargar el OpenAPI YAML, ve a la página Referencia (Swagger).