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.
1-click
Generate and rotate keys for external integrations.
Available now
Query devices by ID or by channel.
Running now
Inspect campaigns that are currently active.
How it works
Every API request requires a valid Bearer token in theAuthorization header. Use the API Key Management section below to create projects and generate keys.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.
| Property | Type | Description |
|---|---|---|
| Authorization | header | Bearer token. Required on all requests. |
| Content-Type | header | application/json (for POST/PUT requests) |
Authorization: Bearer b44_sk_••••••••91a4
Content-Type: application/jsonAPI Key Management
Manage projects, create multiple secret keys, and control one-time copy access for newly created keys.
Projects
Production Key
Copy used
Staging Key
Copy used
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 device details
Fetch a single device and return core fields such as device name, model, address, channel, and status.
Parameters
| Property | Type | Description |
|---|---|---|
| deviceId | string | Unique device identifier (path param) |
curl -X GET "https://your-domain.com/api/devices/DEV-1001" \
-H "Authorization: Bearer b44_sk_••••••••91a4"{
"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"
}
}List devices by channel
Find all devices assigned to a specific channel and return device name, model, address, and connectivity status.
Parameters
| Property | Type | Description |
|---|---|---|
| channelId | string | Channel identifier (query param) |
curl -G "https://your-domain.com/api/devices" \
--data-urlencode "channelId=HQ" \
-H "Authorization: Bearer b44_sk_••••••••91a4"{
"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 active campaigns
Return campaigns that are running now for a specific channel, including campaign name, time window, ratio, and assigned playback targets.
Parameters
| Property | Type | Description |
|---|---|---|
| channelId | string | Channel identifier (query param) |
curl -G "https://your-domain.com/api/campaigns/active" \
--data-urlencode "channelId=HQ" \
-H "Authorization: Bearer b44_sk_••••••••91a4"{
"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 subscriptions by device MAC
Return all subscriptions linked to a device by using its MAC address.
Parameters
| Property | Type | Description |
|---|---|---|
| deviceMac | string | Device MAC address (query param) |
curl -G "https://your-domain.com/api/subscriptions" \
--data-urlencode "deviceMac=AA:BB:CC:DD:EE:FF" \
-H "Authorization: Bearer b44_sk_••••••••91a4"{
"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 -X GET "https://your-domain.com/api/devices/DEV-1001" \
-H "Authorization: Bearer b44_sk_••••••••91a4"Response
{
"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.
Create a dedicated API project for each integration or external system.
Give every project its own public key and secret key pair.
Pass the secret key in the Authorization header as a Bearer token.
Use the public key only in trusted frontend upload flows when needed.
Review each project separately before expanding to real permissions and logs.
# 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"