Brand Display OSBrand Control, Simplified

Developer API Center

Welcome to the ThinkSign API documentation. This API enables you to query devices, inspect active campaigns, manage subscriptions, and integrate with external systems using simple REST endpoints.

API Keys

1-click

Generate and rotate keys for external integrations.

Device APIs

Available now

Query devices by ID or by channel.

Campaign APIs

Running now

Inspect campaigns that are currently active.

How it works

Every API request requires a valid Bearer token in the Authorization header. Use the API Key Management section below to create projects and generate keys.
Authenticationshell
curl "https://your-domain.com/api/authentication" \
  -H "Authorization: Bearer YOUR_API_KEY"

Authentication

ThinkSign uses API keys to allow access to the API. The API key must be included in all API requests as a Bearer token in the Authorization header.

PropertyTypeDescription
AuthorizationheaderBearer token. Required on all requests.
Content-Typeheaderapplication/json (for POST/PUT requests)
Example Headerhttp
Authorization: Bearer b44_sk_••••••••91a4
Content-Type: application/json

API Key Management

Manage projects, create multiple secret keys, and control one-time copy access for newly created keys.

Projects

Public key
Secret keys

Production Key

Copy used

Staging Key

Copy used

Secret keys are only shown once when created. After hiding or leaving the page, they stay masked.

API Endpoints

Below are all available endpoints. Each section shows the request format on the left and code examples with response on the right, similar to the Pixelixe API documentation style.

GET

Get device details

Fetch a single device and return core fields such as device name, model, address, channel, and status.

Endpoint
/api/devices/{deviceId}

Parameters

PropertyTypeDescription
deviceIdstringUnique device identifier (path param)
Requestshell
curl -X GET "https://your-domain.com/api/devices/DEV-1001" \
  -H "Authorization: Bearer b44_sk_••••••••91a4"
Responsejson
{
  "success": true,
  "data": {
    "device_id": "DEV-1001",
    "device_name": "Lobby Screen 01",
    "model": "Samsung QM55B",
    "address": "125 W 25th St, New York, NY",
    "channel": "Retail North America",
    "status": "online"
  }
}

GET

List devices by channel

Find all devices assigned to a specific channel and return device name, model, address, and connectivity status.

Endpoint
/api/devices?channelId={channelId}

Parameters

PropertyTypeDescription
channelIdstringChannel identifier (query param)
Requestshell
curl -G "https://your-domain.com/api/devices" \
  --data-urlencode "channelId=HQ" \
  -H "Authorization: Bearer b44_sk_••••••••91a4"
Responsejson
{
  "success": true,
  "data": [
    {
      "device_id": "DEV-1001",
      "device_name": "Lobby Screen 01",
      "model": "Samsung QM55B",
      "address": "125 W 25th St, New York, NY",
      "status": "online"
    },
    {
      "device_id": "DEV-1008",
      "device_name": "Checkout Display 02",
      "model": "LG 49VL5F",
      "address": "18 Mercer St, New York, NY",
      "status": "offline"
    }
  ]
}

GET

Get active campaigns

Return campaigns that are running now for a specific channel, including campaign name, time window, ratio, and assigned playback targets.

Endpoint
/api/campaigns/active?channelId={channelId}

Parameters

PropertyTypeDescription
channelIdstringChannel identifier (query param)
Requestshell
curl -G "https://your-domain.com/api/campaigns/active" \
  --data-urlencode "channelId=HQ" \
  -H "Authorization: Bearer b44_sk_••••••••91a4"
Responsejson
{
  "success": true,
  "data": [
    {
      "campaign_id": "CMP-204",
      "campaign_name": "Spring Launch",
      "starts_at": "2026-03-30T08:00:00Z",
      "ends_at": "2026-04-15T22:00:00Z",
      "aspect_ratio": "16:9",
      "assigned_devices": 24
    }
  ]
}

GET

Get subscriptions by device MAC

Return all subscriptions linked to a device by using its MAC address.

Endpoint
/api/subscriptions?deviceMac={deviceMac}

Parameters

PropertyTypeDescription
deviceMacstringDevice MAC address (query param)
Requestshell
curl -G "https://your-domain.com/api/subscriptions" \
  --data-urlencode "deviceMac=AA:BB:CC:DD:EE:FF" \
  -H "Authorization: Bearer b44_sk_••••••••91a4"
Responsejson
{
  "success": true,
  "data": [
    {
      "subscription_id": "SUB-301",
      "subscription_name": "Premium Monitoring",
      "status": "active",
      "plan": "Annual",
      "device_mac": "AA:BB:CC:DD:EE:FF"
    },
    {
      "subscription_id": "SUB-488",
      "subscription_name": "Content Sync",
      "status": "active",
      "plan": "Monthly",
      "device_mac": "AA:BB:CC:DD:EE:FF"
    }
  ]
}

Code Snippets

Implementation examples in multiple programming languages. Select an endpoint and language to see a working code snippet.

cURL Examplecurl
curl -X GET "https://your-domain.com/api/devices/DEV-1001" \
  -H "Authorization: Bearer b44_sk_••••••••91a4"

Response

JSON Responsejson
{
  "success": true,
  "data": {
    "device_id": "DEV-1001",
    "device_name": "Lobby Screen 01",
    "model": "Samsung QM55B",
    "address": "125 W 25th St, New York, NY",
    "channel": "Retail North America",
    "status": "online"
  }
}

Quick Start Guide

Follow these steps to get up and running with the API.

1

Create a dedicated API project for each integration or external system.

2

Give every project its own public key and secret key pair.

3

Pass the secret key in the Authorization header as a Bearer token.

4

Use the public key only in trusted frontend upload flows when needed.

5

Review each project separately before expanding to real permissions and logs.

Full Exampleshell
# Step 1: Create API project and get your key
# Step 2: Test authentication
curl "https://your-domain.com/api/authentication" \
  -H "Authorization: Bearer b44_sk_••••••••91a4"

# Step 3: Query a device
curl -X GET "https://your-domain.com/api/devices/DEV-1001" \
  -H "Authorization: Bearer b44_sk_••••••••91a4"

# Step 4: List active campaigns
curl -G "https://your-domain.com/api/campaigns/active" \
  --data-urlencode "channelId=HQ" \
  -H "Authorization: Bearer b44_sk_••••••••91a4"
The API surface can expand later with more devices, campaigns, analytics, and webhook resources.