Digital Signage API Integrations — Connect Any Data to Your Screens

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.