Build with
Screen-Signs API
Integrate digital signage into your applications with our powerful REST API. Complete control over screens, content, and analytics with simple HTTP requests.
API Documentation
API Overview
The Screen-Signs API is a RESTful API that allows you to programmatically manage your digital signage displays, content, and analytics. Built for developers who want to integrate digital signage capabilities into their applications.
Key Features
- Manage screens, content, and scheduling programmatically
- Real-time updates via WebSocket connections
- Rich analytics and reporting capabilities
- Webhook support for event notifications
Base URL
Getting Started
Get up and running with the Screen-Signs API in minutes. Follow these simple steps to make your first API call.
Step 1: Get Your API Key
Sign up for a Screen-Signs account and navigate to your account settings to generate an API key.
Step 2: Make Your First Request
Test your API key by fetching your account information:
curl -X GET "https://api.screen-signs.com/v1/account" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json"
const response = await fetch('https://api.screen-signs.com/v1/account', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
});
const data = await response.json();
console.log(data);
import requests
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
response = requests.get('https://api.screen-signs.com/v1/account', headers=headers)
data = response.json()
print(data)
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.screen-signs.com/v1/account');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);
print_r($data);
?>
Authentication
The Screen-Signs API uses Bearer token authentication. Include your API key in the Authorization header of every request.
API Key Authentication
JWT Token Authentication (Advanced)
For server-to-server integrations, you can also use JWT tokens for enhanced security:
POST /v1/auth/token
Content-Type: application/json
{
"api_key": "YOUR_API_KEY",
"expires_in": 3600
Response:
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 3600
}
API Endpoints
Screens Management
/screens
Retrieve a paginated list of all screens in your account.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| page | integer | Page number (default: 1) |
| per_page | integer | Items per page (max: 100) |
| status | string | Filter by status: active, offline, error |
{
"data": [
{
"id": 123,
"name": "Lobby Display",
"location": "Main Lobby",
"status": "active",
"last_seen": "2025-01-15T10:30:00Z",
"display_code": "ABC123",
"current_design": {
"id": 456,
"name": "Welcome Message"
],
"meta": {
"current_page": 1,
"total": 25,
"per_page": 20
}
/screens
Create a new screen and get a unique display code.
{
"name": "Reception Display",
"location": "Front Desk",
"description": "Customer information display",
"tags": ["reception", "customer-facing"],
"settings": {
"auto_refresh": true,
"refresh_interval": 60
}
Design Management
/designs
Create a new design using a template or from scratch.
{
"name": "Summer Sale Promotion",
"template_id": 456,
"elements": [
{
"type": "text",
"content": "Summer Sale - 50% Off!",
"style": {
"fontSize": "48px",
"color": "#ffffff",
"textAlign": "center"
},
"position": { "x": 100, "y": 200 }
]
}
Content Management
/screens/{id}/content
Update content on a specific screen in real-time.
{
"design_id": 789,
"schedule": {
"start_time": "2025-01-15T09:00:00Z",
"end_time": "2025-01-15T17:00:00Z",
"repeat": "daily"
},
"priority": 1
}
Templates
/templates/{id}
Delete a custom template from your account. Built-in templates cannot be deleted.
Rate Limiting
To ensure fair usage and maintain service quality, the Screen-Signs API implements rate limiting based on your subscription plan.
Free Plan
Pro & Business Plans
Rate Limit Headers
Every API response includes headers with your current rate limit status:
X-RateLimit-Limit: 1000 X-RateLimit-Remaining: 999 X-RateLimit-Reset: 1642694400 X-RateLimit-Retry-After: 3600
Error Codes
The Screen-Signs API uses standard HTTP status codes and returns detailed error information in JSON format.
| Status Code | Error Type | Description |
|---|---|---|
| 400 | Bad Request | Invalid request format or missing required parameters |
| 401 | Unauthorized | Invalid or missing API key |
| 403 | Forbidden | Insufficient permissions for the requested resource |
| 404 | Not Found | Requested resource does not exist |
| 422 | Validation Error | Request validation failed |
| 429 | Rate Limited | Too many requests - rate limit exceeded |
| 500 | Server Error | Internal server error occurred |
Error Response Format
{
"error": {
"code": "validation_failed",
"message": "The given data was invalid.",
"details": {
"name": ["The name field is required."],
"location": ["The location field must be a string."]
},
"documentation_url": "https://docs.screen-signs.com/api/errors#validation_failed"
}
SDKs & Libraries
Accelerate your integration with our official SDKs and community-maintained libraries.
Official SDKs
Community Libraries
Go Package
CommunityGo client library with full API coverage.
go get github.com/screen-signs/go-sdk
View on GitHub
Ready to Start Building?
Get your API key and start integrating digital signage into your applications today.
Free tier includes 100 API calls per hour • No credit card required