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

API Introduction

The Digital Signage RDS public REST API lets you integrate third parties with your account, automate tasks, or build your own dashboard.


1. Three steps to start

  1. Open your Profile and go to the API tab.
  2. Create a new key with a name (e.g. Zapier), pick an expiration and the permissions (read only or read + write).
  3. Copy the token (rds_live_…). It will not be shown again. If you lose it, create another one.

2. Authentication

Pass the token in the Authorization header as a Bearer token:

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

A good first test is GET /me: it returns the key and the associated account.

Permissions (scopes)

Each key carries a set of permissions:

Scope What it allows
read List and read resources (GET)
write Upload content and modify resources (POST)

Read-only keys cannot upload images/videos or modify anything; they will return 403 insufficient_scope.

Expiration and revocation

Keys may auto-expire (30 days, 90 days, 1 year or "No expiration"). You can also revoke them manually from your profile. An expired or revoked key returns 401 Token has expired or 401 Token has been revoked.


3. Rate limit

60 requests per minute per token. When you go over, you get a 429 Too Many Requests with a Retry-After: <seconds> header telling you how long to wait.


4. Responses

Single resource

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

Lists (cursor pagination)

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

To fetch the next page, pass the next_cursor as starting_after:

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

Accepted list parameters:

Parameter Value Default
limit 1–100 20
starting_after integer id 0 (first result)

Errors

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

Common error types:

Code Type When
401 unauthorized Missing, malformed, unknown, revoked or expired token
403 insufficient_scope The key lacks the required permission
403 quota_exceeded Account device / image / video cap reached
404 not_found Resource does not exist or is not visible to your account
405 method_not_allowed HTTP method not allowed on this path
413 file_too_large Uploaded file exceeds the limit
415 unsupported_media_type File extension or content not supported
429 rate_limited Over 60 requests per minute
500 server_error Unexpected server error

5. Available endpoints

Account

Method Path Description
GET /me Key info (auth smoke test)
GET /account Account: address, contact, limits, usage and subscription
GET /subscription Subscription: current cycle, counters and next payment
GET /invoices Invoices (Stripe), newest first

Devices

Method Path Description
GET /devices List devices (retired devices excluded)
GET /devices/{id_or_code} A device (accepts integer id or RDSxxx code)
GET /devices?code=RDSF8B8 Filter list by exact code

Each device exposes is_online, last_seen_at, playlist_id + playlist_name, workspace_id + workspace_name (+ parent if it's a sub-workspace), kiosk_mode, kiosk_whitelist, branch_*, contract dates and more.

Workspaces

Method Path Description
GET /workspaces List (workspaces and sub-workspaces)
GET /workspaces/{id} A workspace with tags, default content and map

Playlists

Method Path Description
GET /playlists List of playlists
GET /playlists/{id} Playlist with device / image / video counts

Images

Method Path Description
GET /images List
GET /images/{id} An image (includes url to fetch the binary)
POST /images Upload (requires write scope)

Videos

Method Path Description
GET /videos List
GET /videos/{id} A video (includes url to fetch the binary)
POST /videos Upload (requires write scope)

6. Uploading content

POST /images and POST /videos accept multipart/form-data with two parts: file (binary, required) and name (optional text — the customer-facing title).

curl -X POST https://rds.digitalsignagerds.com/api/v1/images \
  -H "Authorization: Bearer rds_live_xxxxx" \
  -F "name=Christmas banner" \
  -F "file=@/path/to/banner.png"

Image constraints:

Video constraints:

A successful POST returns 201 Created with the newly created resource (including id, filename, url, and crc).


7. Interactive reference

To try every endpoint live, see the exact response schemas, and grab the OpenAPI YAML, go to Reference (Swagger).