Blog

Digital Signage API Integrations — Connect Any Data to Your Screens

· R52 Digital Signage Alliance · 3 min read

Code on a screen showing API integration for digital signage

Why APIs Matter for Digital Signage

Pre-built integrations cover 80% of common use cases — social media feeds, weather, news, Google Workspace, Microsoft 365. But organisations with unique data sources — a custom CRM, a proprietary inventory system, IoT sensors on a production line, a ticketing platform — need a way to get their data onto screens.

The Alliance API provides this connection: a simple, well-documented REST API that lets any developer push data to any screen in a network, trigger content changes, and retrieve proof-of-play data.

The Alliance API: What It Can Do

Push content updates — Send a JSON payload to the API and update the content on a specific screen, screen group, or the entire network. No login required: use API key authentication.

Trigger emergency alerts — Send an emergency override via API, putting a full-screen message on all screens in a specified zone within seconds. Integrate with your existing alerting infrastructure.

Schedule future content — POST a content item with a future start time and optional end time. The API queues it; the platform delivers it.

Update playlist data — Replace specific data in a running playlist without changing the template. Update prices, scores, inventory counts, or any other live data field.

Query screen status — GET the current status of any screen: online/offline, current content, last seen time.

Retrieve proof of play — Download a log of all content displayed on a screen or screen group within a time range, in JSON or CSV format.

Authentication

The Alliance API uses API key authentication. API keys are generated in the dashboard under Settings > API. Keys can be scoped to specific screens or screen groups, limiting the blast radius of a compromised key.

Authorization: Bearer r52_sk_xxxxxxxxxxxxxxxxxxxx

Example: Push a Live Price Update

const response = await fetch('https://r52signage.com/api/v1/content/update', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer r52_sk_xxxxxxxxxxxxxxxxxxxx',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    screenGroup: 'store-123-price-boards',
    data: {
      items: [
        { sku: 'LATTE-REG', price: '3.50', available: true },
        { sku: 'LATTE-LRG', price: '4.20', available: true },
        { sku: 'FLAT-WHITE', price: '3.20', available: false }
      ]
    }
  })
});

This call updates the price board template on all screens in the store-123-price-boards group with the new prices. Items marked available: false display as crossed out or are hidden, depending on the template configuration.

Example: Trigger an Emergency Alert

const response = await fetch('https://r52signage.com/api/v1/alerts/create', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer r52_sk_xxxxxxxxxxxxxxxxxxxx',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    zone: 'building-east-wing',
    priority: 'critical',
    message: 'FIRE ALARM — Evacuate via stairwell A. Do not use lifts.',
    duration: 3600 // Show for 1 hour, then revert to normal content
  })
});

Webhook Support

The Alliance can send webhooks to your systems on events:

  • Screen goes offline (trigger a monitoring alert)
  • Screen comes back online (auto-resolve the alert)
  • Content item approved (trigger downstream workflow)
  • Proof of play report ready (trigger report delivery)

Configure webhooks in the dashboard under Settings > Webhooks. All webhook payloads are signed with your webhook secret for verification.

SDKs and Client Libraries

The Alliance API has community-maintained client libraries for:

  • JavaScript / Node.js
  • Python
  • PHP
  • Ruby
  • Go

Official SDKs are in development. The REST API can be used directly from any language with an HTTP client.

Common Integration Patterns

IoT integration — An MQTT broker on a factory floor publishes sensor readings. A lightweight Node.js service subscribes and POSTs updates to the Alliance API. Screens show live temperature, humidity, and machine status.

CRM leaderboard — A daily cron job queries Salesforce for the top 10 sales reps by revenue, formats the data, and POSTs it to the sales floor screen.

E-commerce inventory — A Shopify webhook fires when stock drops below threshold. A webhook handler POSTs a “low stock” alert to screens in the warehouse.

Sports scores — A sporting data API subscription delivers score updates as they happen. A scores adapter POSTs to the Alliance API, keeping stadium concourse screens current.

Rate Limits

The Alliance API rate limit is 1,000 requests per minute per API key. For higher-frequency applications (IoT sensors reporting every second), use the batch endpoint which accepts up to 100 updates per call.

← All posts