Device management endpoints for the Wallboard digital signage platform.
Manage display devices (screens/players), device groups, device content types, and device installation rules.
| Concept | Description |
|---|---|
| Device | Physical or virtual display screen/player |
| Device Group | Hierarchical folder structure for organizing devices |
| Device Content | Base class for content types: Content (single layouts), Schedule (time-based playlists), SimpleLoop (basic playlists) |
| Device Install Rule | Auto-provisioning rules for new devices |
| Status | Description |
|---|---|
ONLINE |
Device is connected and active |
OFFLINE |
Device is not connected |
| Platform | Description |
|---|---|
ANDROID |
Android-based players |
WINDOWS |
Windows players |
BRIGHTSIGN |
BrightSign devices |
SAMSUNG |
Samsung Smart Signage |
LG |
LG webOS Signage |
CHROME_OS |
Chrome OS devices |
BROWSER |
Web browser client |
UNKNOWN |
Platform not detected |
Use WBQL in the search parameter. Key fields for devices:
| Filter Type | Field | Example |
|---|---|---|
| Folder (direct) | deviceGroupId |
search=deviceGroupId=abc123 |
| Folder (recursive) | deviceGroupPath |
search=deviceGroupPath:abc123 |
| Team | teamAssignments.team.id |
search=teamAssignments.team.id=team1 |
| Status | deviceStatus |
search=deviceStatus=ONLINE |
| Platform | platform |
search=platform=ANDROID |
See Getting Started for full WBQL syntax, operators, and precedence rules.
Retrieve a paginated list of devices with optional filtering.
Minimum role: VIEWER
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| page | integer >= 0 Default: 0 Page index (0-based) |
| size | integer [ 1 .. 1000 ] Default: 20 Number of elements per page (max 1000) |
| sort | string Example: sort=name,asc Sort expression. Format:
|
| search | string WBQL filter expression. Operators: |
| select | string Field projection. |
| includeReadOnlyInfo | boolean Default: false Include |
curl -X GET 'https://{server}/api/v2/device?customerId=123&page=0&size=20&select=id,name,deviceStatus,lastActivity' \ -H 'Authorization: Bearer YOUR_TOKEN'
{- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "totalElements": 0,
- "totalPages": 0,
- "size": 0,
- "content": [
- {
- "id": "string",
- "name": "string",
- "deviceStatus": "ONLINE",
- "address": "string",
- "lastActivity": 0,
- "comment": "string",
- "tags": [
- "string"
], - "customerId": 0,
- "deviceGroupId": "string",
- "deviceGroupPath": "string",
- "contentId": "string",
- "contentType": "string",
- "emergencyStatus": true,
- "emergencyContentId": "string",
- "volumeLevel": 100,
- "brightnessLevel": 100,
- "rotation": {
- "angle": 0,
- "type": "WEB_VIEW"
}, - "displayStatus": "ON",
- "locked": true,
- "timeZone": "string",
- "platform": "ANDROID",
- "version": "string",
- "serial": "string",
- "macAddress": "string",
- "localIpAddress": "string",
- "nativeResolutionWidth": 0,
- "nativeResolutionHeight": 0,
- "deviceInfo": "string",
- "sensorConfig": "string",
- "location": { },
- "locationMetaData": { },
- "workingHours": { },
- "supportedFeatures": { },
- "advancedConfiguration": { },
- "updateRule": { },
- "adminMetadata": { },
- "dspAttributes": { },
- "previewPath": "string",
- "previewUrl": "string",
- "nativeOrientation": "LANDSCAPE",
- "webViewOrientation": "LANDSCAPE",
- "packageName": "string",
- "alerts": [
- {
- "id": "string",
- "alertRuleId": "string",
- "alertRuleName": "string",
- "createdAtDate": "2019-08-24T14:15:22Z"
}
], - "readOnly": true
}
]
}Retrieve devices and device groups in a combined view. Useful for building folder-based navigation.
Minimum role: VIEWER
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| deviceSearch | string WBQL search for devices |
| deviceGroupSearch | string WBQL search for device groups |
| quickFilterId | string Quick filter ID to apply |
| groupSelect | string WBQL select expression for device groups |
| page | integer >= 0 Default: 0 Page index (0-based) |
| size | integer [ 1 .. 1000 ] Default: 20 Number of elements per page (max 1000) |
| sort | string Example: sort=name,asc Sort expression. Format:
|
| select | string Field projection. |
{- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "totalElements": 0,
- "totalPages": 0,
- "size": 0,
- "content": [
- {
- "id": "string",
- "name": "string",
- "deviceStatus": "ONLINE",
- "address": "string",
- "lastActivity": 0,
- "comment": "string",
- "tags": [
- "string"
], - "customerId": 0,
- "deviceGroupId": "string",
- "deviceGroupPath": "string",
- "contentId": "string",
- "contentType": "string",
- "emergencyStatus": true,
- "emergencyContentId": "string",
- "volumeLevel": 100,
- "brightnessLevel": 100,
- "rotation": {
- "angle": 0,
- "type": "WEB_VIEW"
}, - "displayStatus": "ON",
- "locked": true,
- "timeZone": "string",
- "platform": "ANDROID",
- "version": "string",
- "serial": "string",
- "macAddress": "string",
- "localIpAddress": "string",
- "nativeResolutionWidth": 0,
- "nativeResolutionHeight": 0,
- "deviceInfo": "string",
- "sensorConfig": "string",
- "location": { },
- "locationMetaData": { },
- "workingHours": { },
- "supportedFeatures": { },
- "advancedConfiguration": { },
- "updateRule": { },
- "adminMetadata": { },
- "dspAttributes": { },
- "previewPath": "string",
- "previewUrl": "string",
- "nativeOrientation": "LANDSCAPE",
- "webViewOrientation": "LANDSCAPE",
- "packageName": "string",
- "alerts": [
- {
- "id": "string",
- "alertRuleId": "string",
- "alertRuleName": "string",
- "createdAtDate": "2019-08-24T14:15:22Z"
}
], - "readOnly": true
}
]
}Retrieve breadcrumb navigation path for a device group.
Minimum role: VIEWER
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| deviceGroupId | string Device group ID to get breadcrumb for |
{- "path": [
- {
- "id": "string",
- "name": "string"
}
]
}Retrieve device status summary for dashboard display.
Minimum role: VIEWER
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
{- "onlineCount": 0,
- "offlineCount": 0,
- "totalCount": 0
}Retrieve devices within a geographic rectangle for map display.
Minimum role: VIEWER
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| page | integer >= 0 Default: 0 Page index (0-based) |
| size | integer [ 1 .. 1000 ] Default: 20 Number of elements per page (max 1000) |
| sort | string Example: sort=name,asc Sort expression. Format:
|
| select | string Field projection. |
| search | string WBQL filter expression. Operators: |
| includeRectangleNorthLat | number <double> North latitude boundary |
| includeRectangleEastLon | number <double> East longitude boundary |
| includeRectangleSouthLat | number <double> South latitude boundary |
| includeRectangleWestLon | number <double> West longitude boundary |
{- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "totalElements": 0,
- "totalPages": 0,
- "size": 0,
- "content": [
- {
- "id": "string",
- "name": "string",
- "deviceStatus": "ONLINE",
- "address": "string",
- "lastActivity": 0,
- "comment": "string",
- "tags": [
- "string"
], - "customerId": 0,
- "deviceGroupId": "string",
- "deviceGroupPath": "string",
- "contentId": "string",
- "contentType": "string",
- "emergencyStatus": true,
- "emergencyContentId": "string",
- "volumeLevel": 100,
- "brightnessLevel": 100,
- "rotation": {
- "angle": 0,
- "type": "WEB_VIEW"
}, - "displayStatus": "ON",
- "locked": true,
- "timeZone": "string",
- "platform": "ANDROID",
- "version": "string",
- "serial": "string",
- "macAddress": "string",
- "localIpAddress": "string",
- "nativeResolutionWidth": 0,
- "nativeResolutionHeight": 0,
- "deviceInfo": "string",
- "sensorConfig": "string",
- "location": { },
- "locationMetaData": { },
- "workingHours": { },
- "supportedFeatures": { },
- "advancedConfiguration": { },
- "updateRule": { },
- "adminMetadata": { },
- "dspAttributes": { },
- "previewPath": "string",
- "previewUrl": "string",
- "nativeOrientation": "LANDSCAPE",
- "webViewOrientation": "LANDSCAPE",
- "packageName": "string",
- "alerts": [
- {
- "id": "string",
- "alertRuleId": "string",
- "alertRuleName": "string",
- "createdAtDate": "2019-08-24T14:15:22Z"
}
], - "readOnly": true
}
]
}Assign content to one or more devices.
Minimum role: APPROVER
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| applyOn required | string Enum: "DEVICE" "DEVICE_GROUP" "DEVICE_TAG" "ALL" Defines what the search expression applies to |
| search | string WBQL filter expression. Operators: |
| contentId required | string Content ID to assign |
| nextContentId | string Next content ID (for scheduled transitions) |
| nextContentStartDate | string <date-time> When to start next content |
| asAssigned | boolean Default: true Assign as primary content |
| asEmergency | boolean Default: false Assign as emergency content |
Remove content assignment from one or more devices.
Minimum role: APPROVER
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| applyOn required | string Enum: "DEVICE" "DEVICE_GROUP" "DEVICE_TAG" "ALL" Defines what the search expression applies to |
| search | string WBQL filter expression. Operators: |
| detachNext | boolean Default: true Detach next scheduled content |
| detachAssigned | boolean Default: true Detach assigned content |
| detachEmergency | boolean Default: false Detach emergency content |
Force devices to reload their content.
Minimum role: APPROVER
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| applyOn required | string Enum: "DEVICE" "DEVICE_GROUP" "DEVICE_TAG" "ALL" Defines what the search expression applies to |
| search | string WBQL filter expression. Operators: |
Register an unregistered device or assign it to a customer account.
Registration methods:
| Method | Field | Platforms | Use Case |
|---|---|---|---|
| 4-digit code | activationCode |
All | General registration |
| Serial number | serial |
LG, Samsung, BrightSign, some Android | Bulk deployment |
| Pre-registration | serial + createDeviceIfSerialNotFound=true |
Same as serial | Zero-touch deployment |
License assignment: Most registrations use licenseStatus=LICENSED with licenseOrderId.
The license tier comes from the order.
Minimum role: TECHNICIAN
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| activationCode | string 4-digit code displayed on unregistered device screen. Works on all platforms. Code changes periodically. | ||||||||||||||||||
| serial | string Hardware serial number (8+ characters). Supported platforms: LG, Samsung, BrightSign, some Android (Qbic). NOT available on standard Android devices. | ||||||||||||||||||
| createDeviceIfSerialNotFound | boolean Default: false Pre-registration mode. When | ||||||||||||||||||
| deviceName | string Display name for the device (shown in UI) | ||||||||||||||||||
| comment | string Optional notes/description | ||||||||||||||||||
| deviceGroupId | string Device folder ID to place device in | ||||||||||||||||||
| contentId | string Base content to assign immediately | ||||||||||||||||||
| emergencyContentId | string Emergency content (shown when emergency mode triggered) | ||||||||||||||||||
| licenseStatus | string (DeviceLicenseStatus) Enum: "UN_LICENSED" "LICENSED" "FREE" "TRIAL" Device license state. Determines if device can display content.
Typical workflow:
FREE status: Limited availability, requires customer configuration. | ||||||||||||||||||
| licenseOrderId | integer <int64> License order ID. Required when | ||||||||||||||||||
| licenseType | string (LicenseType) Enum: "BASIC" "PROFESSIONAL" "DBA" "ENTERPRISE" "VIDEO_WALL" Device license tier. Higher tiers include all features of lower tiers.
When is this field used?
| ||||||||||||||||||
| tags | Array of strings Tag names to assign to the device | ||||||||||||||||||
| timeZone | string Required. IANA timezone identifier.
Examples: | ||||||||||||||||||
| volumeLevel | integer [ 0 .. 100 ] Audio volume (0-100) | ||||||||||||||||||
| brightnessLevel | integer [ 0 .. 100 ] Screen brightness (0-100) | ||||||||||||||||||
object (DeviceRotation) Device screen rotation settings | |||||||||||||||||||
| weatherLocation | string Location string for weather widgets | ||||||||||||||||||
| datasourceId | string Data source ID to bind for data-driven content | ||||||||||||||||||
| dataRowId | string Specific data row ID within the datasource | ||||||||||||||||||
| showName | boolean Default: false Display device name overlay on screen | ||||||||||||||||||
| showConsole | boolean Default: false Show debug console (for troubleshooting) | ||||||||||||||||||
| showDeviceInfo | boolean Default: false Show device info overlay | ||||||||||||||||||
| showStateIndicator | boolean Default: true Show connection state indicator | ||||||||||||||||||
| emergencyStatus | boolean Default: false Enable emergency mode immediately after registration | ||||||||||||||||||
| rebootTime | string Daily scheduled reboot time (HH:mm format, 24h) | ||||||||||||||||||
| sensorConfig | string Sensor configuration (JSON string, platform-specific) | ||||||||||||||||||
| updateVersionUpperLimit | string Maximum app version device can update to (locks updates) |
{- "activationCode": "1234",
- "deviceName": "Lobby Display",
- "deviceGroupId": "folder-uuid",
- "licenseStatus": "LICENSED",
- "licenseOrderId": 12345,
- "timeZone": "Europe/Budapest"
}Move one or more devices to a device group (folder).
Minimum role: TECHNICIAN
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| applyOn required | string Enum: "DEVICE" "DEVICE_GROUP" "DEVICE_TAG" "ALL" Defines what the search expression applies to |
| search | string WBQL filter expression. Operators: |
| deviceGroupId required | string Target device group/folder ID |
Set the physical location (GPS coordinates) for one or more devices. Used for map view functionality.
Minimum role: TECHNICIAN
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| applyOn required | string Enum: "DEVICE" "DEVICE_GROUP" "DEVICE_TAG" "ALL" Defines what the search expression applies to |
| search | string WBQL filter expression. Operators: |
| lat | number <double> Latitude coordinate |
| lon | number <double> Longitude coordinate |
| address | string Human-readable address |
{- "lat": 0.1,
- "lon": 0.1,
- "address": "string"
}Update the license type or status for one or more devices.
Minimum role: TECHNICIAN
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| applyOn required | string Enum: "DEVICE" "DEVICE_GROUP" "DEVICE_TAG" "ALL" Defines what the search expression applies to |
| search | string WBQL filter expression. Operators: |
| licenseType | string (LicenseType) Enum: "BASIC" "PROFESSIONAL" "DBA" "ENTERPRISE" "VIDEO_WALL" New license type |
| licenseStatus | string (DeviceLicenseStatus) Enum: "UN_LICENSED" "LICENSED" "FREE" "TRIAL" New license status |
| licenseOrderId | integer <int64> License order ID |
| unassignContentOnDowngrade | boolean Default: false Remove content assignment when downgrading license |
Set brightness level for one or more devices.
Minimum role: TECHNICIAN
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| applyOn required | string Enum: "DEVICE" "DEVICE_GROUP" "DEVICE_TAG" "ALL" Defines what the search expression applies to |
| search | string WBQL filter expression. Operators: |
| level required | integer [ 0 .. 100 ] Brightness level (0-100) |
Set volume level for one or more devices.
Minimum role: TECHNICIAN
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| applyOn required | string Enum: "DEVICE" "DEVICE_GROUP" "DEVICE_TAG" "ALL" Defines what the search expression applies to |
| search | string WBQL filter expression. Operators: |
| level required | integer [ 0 .. 100 ] Volume level (0-100) |
Set screen rotation for one or more devices.
Minimum role: TECHNICIAN
Rotation Types:
WEB_VIEW (default) - Rotates the web content viewDEVICE - Rotates at device/OS level| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| applyOn required | string Enum: "DEVICE" "DEVICE_GROUP" "DEVICE_TAG" "ALL" Defines what the search expression applies to |
| search | string WBQL filter expression. Operators: |
| angle required | integer Enum: 0 90 180 270 Rotation angle in degrees |
| type | string Default: "WEB_VIEW" Enum: "WEB_VIEW" "DEVICE" Type of rotation (default WEB_VIEW) |
Set timezone for one or more devices.
Minimum role: TECHNICIAN
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| applyOn required | string Enum: "DEVICE" "DEVICE_GROUP" "DEVICE_TAG" "ALL" Defines what the search expression applies to |
| search | string |