Skip to main content

Wallboard API Documentation (1.11)

Download OpenAPI specification:Download

API Support: support@wallboard.us

OpenAPI specification (OAS) for the Wallboard API.

Wallboard has hundreds of endpoints and documenting all of them takes time. If you have any question please contact our support and we'll extend the documentation on-demand, based on your needs.

Overview

In this document, you can find some useful information about the Wallboard API. The API mainly follows the REST approach with OAuth 2.0 authentication and authorization standards.

Wallboard have two types of end-points:

Public

  • Callable by any client
  • API root starts with /public-api/
  • No OAuth2 authorization
  • Usually used with GUID based ID-s

Secured

  • Only callable with OAuth2 authorization
  • API root starts with /api/

Notes

  • The API only uses JSON format for data transfer objects.
  • The update logic usually follows the “if an attribute is null, it’s ignored” logic.
  • In the return value if a primitive attribute is not present it means NULL.

Generally available parameters

customerId - tenant selector parameter

  • Customer ID parameter is present on most our endpoints and it can be used to select a specific tenant in the system, which the operations should be performed on.
  • This is used by ADMIN users (or network/subresellers OWNERS) as they have access to multiple tenants.
  • Non-admin users don't have to fill this parameter, because they can only access their customer's resources.
  • If as an ADMIN you want to get every resource in the system set this value to "-1".

page,size - pagination parameters

  • Pagination is implemented by the default Spring pagination logic.
  • Page index starts from 0.
  • If you don’t set any additional parameter, the API gives back the first 20 elements.
  • The maximum element count for a page is 1000.

sort parameter

  • Spring's default sort expression
  • Directions: asc, desc
  • Multiple parameters are supported - sort=name,asc&sort=lastActivity,desc
  • There is no escape logic, the parameter simply has to be URL encoded.
  • Value selectors can be chained with a . to be able to access embedded or connected entities' attributes
  • Examples: sort=name,asc, sort=content.name,asc

search - filtering parameter

With this parameter you can create dynamic queries to filter the resources.

select - selecting fields

With this parameter you can specify which attributes or related entities should be present in the response.

Syntax (WBQL - Wallboard Query Language)

Search (WBCriteria)

Value operators

  • : - means contains in case of string literals and equals in case of other value types
    • Example: name:mydevice - matches for prefix-mydevice-postfix
  • = - means exact match
  • - not equals
    • Unicode escape sequence: \u2260
  • - not contains
    • Works only with string literals
    • Unicode escape sequence: \u2209
  • ^ - starts with
    • Works only with string literals
  • > - greater than
  • - greater than or equal
    • Unicode escape sequence: \2265
  • < - less than
  • - less than or equal
    • Unicode escape sequence: \2264

Logical operators

  • , - AND
    • Example: name=a,name=b
  • | - OR
    • Example: name=something|name=something else
  • Logical groupings are currently not supported

Value matcher keywords

  • true
    • Only can be used with boolean attributes
    • Example: isValid:true
  • false
    • Only can be used with boolean attributes
  • NULL - value or connected entity is null
    • Example: content=NULL
  • !NULL - value or connected entity is NOT null
    • Example: folder.parent=!NULL

Escaping

  • All values has to be URL encoded
  • The search parameter value must be URL encoded (most libraries encode request parameters by default)
  • Format: search=urlEncode({value_name}{value_operator}urlEncode({value}))
  • Example: search=name:mydevice:athome (the second : is part of the device's name) -> search=name%3Amydevice%253Aathome
  • Example: search=teamAssignments.team.id=teamId1|teamAssignments.team.id=teamId2

Notes

  • Date type attributes are supported and can be matched by UTC timestamps (milliseconds)
    • Example: startDate>1683616562 - means the startDate should be after 2023-05-09T07:15:46+00:00
  • Value selectors can be chained with a . to be able to access embedded or connected entities' attributes
    • Example: deviceGroup.parent.id=000c08d294df48efb1b0f5aa754d7ef9 - meaning: the device's group's parent group's id should be '000c08d294df48efb1b0f5aa754d7ef9'.

Basic Examples

  • User name contains the letter a: name:a
  • Device state is online and is in emergency state: state:ONLINE,device.emergencyStatus:true
  • A device content's name contains the substring "happy new year": content.name:happy new year

Advanced Examples

  • Coming soon

Select (WBSelect)

With the select parameter you can also specify attributes that you want to select from a given entity. This method allows you to run more optimal and faster queries.

You can use the select function to append attributes from other related entities to the query (if the relationship is one-to-one or many-to-one).

Syntax:

  • * : Selects all primitive attributes of the entity
    • Equivalent to the missing select parameter
    • Calculated fields and related entities are NOT included
    • Example: select=*
  • , : Attributes should be separated with a ,
    • Example: select=id,name,comment
  • ( ) : Used to select specific attributes from related entities
    • Example: select=id,name,device(id,name)

Advanced examples:

  • select=*,customer(id,name)
    • Selects all primitive attributes from the device, plus the id and name of the customer it belongs to
  • select=*,totalUserLoginCount,lastDeviceActivity
    • Select all the primitive attributes from the customer and the two specified calculated fields

Team management

includeReadOnlyInfo parameter

  • Most of the GET endpoints support the optional calculation of the readOnly-ness of a resource
  • An entity can be read-only for a user depending on the team settings
  • If specifically not needed we suggest to turn if off, for faster response times

includeResourcesWithoutTeam parameter

  • Determines whether or not to include resources which are not assigned to any team

selectTeamIds parameter

  • A list of team ids that resources should be included in the response
  • If empty, all team's resources are included
  • Example: selectTeamIds=teamId1,teamId2

Roles

All users have a role and all of the secured API requires a minimum role to use it. The role is always hierarchical, so a user with an OWNER role can use all endpoints that require an OWNER or lower roles. We use the following hierarchy:

Global:

  • ADMIN
    • Super admin of the system.
    • Can access anything and can do everything.

Tenant:

  • OWNER
    • Tenant(customer) admin.
    • Under it's own domain can access anything and can do everything.
    • Can't belong to any team.
  • TECHNICIAN
    • Can do everything except user and team management.
  • APPROVER
  • EDITOR
  • CONTRIBUTOR
  • VIEWER

Terminology

We are using a bit different terminology for entities like you used to in our GUI. The following expressions mean the same:

  • device = screen = player
  • customer = client = tenant
  • subreseller = network owner

Swagger - Deprecated

We have swagger set up at https://development.wallboard.info/swagger-ui.html, but it's not perfectly configured, there can be missing or misleading parameters. Also, the microservice's API is missing from there.

Authentication

OAuth2 client credentials

By default, there are two built-in client credentials in the system, which you can use to get an access_token.

Default client details:

  • client-id: default-client
  • client-secret: 76211db5d8ea
  • Basic auth header value: Basic ZGVmYXVsdC1jbGllbnQ6NzYyMTFkYjVkOGVh
  • access_token validity: 20 minutes
  • refresh_token validity: 30 days

Short-lived client details:

  • client-id: short-lived
  • client-secret: mPSjfsJy8rs4m7y4
  • Basic auth header value: Basic c2hvcnQtbGl2ZWQ6bVBTamZzSnk4cnM0bTd5NA==
  • access_token validity: 20 minutes
  • refresh_token validity: 30 minutes

JWT

Certain new API endpoints use JWT token as authorization instead of the regular access_token.

token

OAuth2 token management operations

Get and refresh access token

To log in (get first access_token) fill username/password and set grant_type to "password".

To exchange a refresh_token for a new access_token fill refresh_token parameter and set grant_type to "refresh_token".

header Parameters
Authorization
required
string <Basic clientId:clientSecret>
Example: Basic ZGVmYXVsdC1jbGllbnQ6NzYyMTFkYjVkOGVh

Uses basic authentication. The 'clientId:clientSecret' part must be base64 encoded.

Request Body schema: x-www-form-urlencoded
required
username
string <username@example.com>

Email address of the user who wants to log in.

password
string

Password of the user who wants to log in.

refresh_token
string

Refresh token of the user who already logged in.

grant_type
string
Enum: "password" "refresh_token"

On login use "password", on refresh use "refresh_token".

Responses

Request samples

curl -X POST \
  https://example.com/oauth/token \
  -H 'Authorization: Basic ZGVmYXVsdC1jbGllbnQ6NzYyMTFkYjVkOGVh' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'grant_type=password' \
  --data-urlencode 'username=user@example.com' \
  --data-urlencode 'password=MyPassword123'

Response samples

Content type
application/json
{
  • "access_token": "string",
  • "token_type": "bearer",
  • "expires_in": 0,
  • "refresh_token": "string",
  • "refresh_total_validity_seconds": 0,
  • "jwt_access_token": "string",
  • "customer_id": 0
}

customer

Customer management

Get Customers

This endpoint is used to retrieve customer data.

query Parameters
search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

select
string (select)

WBQL select expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/customer/?page=0&size=10'

Response samples

Content type
application/json
{
  • "id": 0,
  • "comment": "string",
  • "country": "string",
  • "expirationDate": "string",
  • "freeLicenses": 0,
  • "browserSessionLicenses": 0,
  • "deviceSessionLimit": 0,
  • "licenseType": "BASIC",
  • "profile": "BASIC",
  • "location": "string",
  • "name": "string",
  • "restricted": true,
  • "type": "string",
  • "contentDesignerEmail": "string",
  • "supportEmail": "string",
  • "createdDate": "string",
  • "needsToBeInvoiced": true,
  • "storageSize": 0,
  • "vertical": "BANKING_AND_FINANCE",
  • "ownerSubresellerId": 0,
  • "hiddenUIElementRule": "string",
  • "slaveId": "string",
  • "enableAutomaticDistributionToDms": true,
  • "userFullAccessIfNotInTeam": true,
  • "accessResourcesWithoutTeam": true,
  • "isDeviceAndGroupCreationEnabledInRootForTeamUsers": true,
  • "isContentAndGroupCreationEnabledInRootForTeamUsers": true,
  • "isFileAndFolderCreationEnabledInRootForTeamUsers": true,
  • "brandingGuideline": {
    },
  • "activeLicenses": 0,
  • "totalUserLoginCount": 0,
  • "totalUserPresenceTime": 0,
  • "lastActivity": "string",
  • "lastDeviceActivity": "string",
  • "totalLicenses": 0,
  • "subreseller": {
    },
  • "owner": {
    }
}

user

User management

Get Users

This endpoint is used to retrieve user data.

query Parameters
customerId
integer
search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

select
string (select)

WBQL select expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/v2/user/??page=0&size=50&sort=lastActivity,desc&select=*,customer(*)'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "content": [
    ]
}

Reset user password

This endpoint is used to reset user password.

query Parameters
email
required
string

Responses

Request samples

curl -X POST \
  '{{server_root}}/public-api/user/forgotPassword?email=dolah%40wallboard.info'

user interface profile

User interface profile management

Get User interface profiles

This endpoint is used to retrieve user interface profile data.

query Parameters
customerId
integer
search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

select
string (select)

WBQL select expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/v2/userInterfaceProfile?page=0&size=50&customerId=182'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "sort": [
    ],
  • "content": [
    ]
}

team

Team management

Get teams

This endpoint is used to retrieve team data.

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

select
string (select)

WBQL select expression

includeTeamUserNumber
boolean
Default: false
includeTeamResourceNumber
boolean
Default: false

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/team/?customerId=182&includeTeamUserNumber=false&includeTeamResourceNumber=false'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "sort": "string",
  • "content": [
    ]
}

Get team list

This endpoint is used to retrieve team data list.

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

select
string (select)

WBQL select expression

includeTeamUserNumber
boolean
Default: false
includeTeamResourceNumber
boolean
Default: false

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/team/list?customerId=182&includeTeamUserNumber=false&includeTeamResourceNumber=false'

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "comment": "string",
  • "hiddenUIElementRules": "string",
  • "teamUserNumber": 0,
  • "teamDeviceNumber": 0,
  • "teamDeviceGroupNumber": 0,
  • "teamDeviceContentNumber": 0,
  • "teamDatasourceNumber": 0,
  • "teamContentGroupNumber": 0,
  • "teamFileNumber": 0,
  • "teamFileFolderNumber": 0,
  • "teamMessageNumber": 0,
  • "teamMessageGroupNumber": 0,
  • "teamCampaignNumber": 0,
  • "teamMicrosoftTenantNumber": 0,
  • "teamGoogleCredentialNumber": 0,
  • "teamAdvertiserNumber": 0,
  • "teamNotificationChannelNumber": 0,
  • "teamAlertRuleNumber": 0,
  • "teamWebhookEventActionNumber": 0
}

device

Device management

Register device

A device calls it every time it turned on or reconnects to the network

The deviceInfo parameter should be a stringified JSON object Example:

{
  "other":{
    "brand":"beta",
    "debug":false,
    "locked":false,
    "lastStartTime":"2023-10-18T00:01:11.467Z",
    "firmwareStatus":"UNKNOWN",
    "webViewVersion":"Chrome/87"
  },
  "general":{
    "model":"HD223",
    "version":"4.1.510",
    "hostname":"BrightSign-33E84S001174",
    "platform":"BRIGHTSIGN",
    "fwVersion":"9.0.105",
    "osVersion":"7.0.21",
    "versionCode":"JsCore",
    "serialNumber":"33E84S001183",
    "webResolution":"1440x900",
    "nativeResolution":"1440x900"
  },
  "metrics":{
    "cpu":{
      "cores":1,
      "threads":1,
      "description":"ARMv7 Processor rev 3 (v7l)"
    },
    "screen":[
      {
        "used":true,
        "scaling":1,
        "resolution":"1440x900",
        "displayName":""
      }
    ],
    "network":[
      {
        "ip":"192.168.1.53",
        "mac":"90:ac:3f:10:13:99",
        "name":"eth",
        "type":"eth"
      }
    ],
    "storage":[
      {
        "type":"internal",
        "mount":"/storage/sd",
        "capacity":31914459136
      }
    ],
    "maxMemory":482344960
  }
}
Request Body schema: application/json
required
deviceId
string
object (deviceInfo)
type
string (deviceType)
Enum: "TABLET" "PHONE" "SCREEN" "DESKTOP"
platform
string (platform)
Enum: "ANDROID" "WINDOWS" "BRIGHTSIGN" "SAMSUNG" "LG" "PWA" "UNKNOWN"
object (supportedFeatures)
fillContentDetails
boolean
Default: true

optional

Responses

Request samples

Content type
application/json
{
  • "deviceId": "string",
  • "deviceInfo": {
    },
  • "type": "TABLET",
  • "platform": "ANDROID",
  • "supportedFeatures": {
    },
  • "fillContentDetails": true
}

Response samples

Content type
application/json
{
  • "content": "string",
  • "deviceName": "string",
  • "showName": true,
  • "showConsole": true,
  • "showDeviceInfo": true,
  • "showStateIndicator": true,
  • "dataRowId": "string",
  • "datasourceId": "string",
  • "emergencyState": true,
  • "sensorConfig": "string",
  • "updateVersionUpperLimit": "string",
  • "rebootTime": "string",
  • "timeStamp": 0,
  • "licenseType": "BASIC",
  • "weatherLocation": "string",
  • "volumeLevel": 0,
  • "brightnessLevel": 0,
  • "displayStatus": "ON",
  • "locked": true,
  • "timeZone": "string",
  • "syncPeriodMillis": 0,
  • "rotation": {
    },
  • "tags": [
    ],
  • "advancedConfiguration": { },
  • "updateRule": { },
  • "workingHours": {
    },
  • "connectionSettings": { },
  • "statisticsSettings": { },
  • "resourcesToCache": {
    }
}

Get devices with basic attributes

Minimum role: VIEWER

Useful for listing or if quick response time is required and you only need the id and name.

Authorizations:
token_auth
query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

includeReadOnlyInfo
boolean (includeReadOnlyInfo)
Default: false

Whether or not the readOnly attribute should be filled on the response

includeResourcesWithoutTeam
boolean (includeResourcesWithoutTeam)
Default: true
selectTeamIds
Array of strings (selectTeamIds)
Example: selectTeamIds={team_id_1},{team_id_2}

Responses

Request samples

curl -X GET "https://example.com/api/device/simplePaged?customerId=123&page=0&size=20&sort=name,asc" \
  -H "Authorization: Bearer <your_access_token>" \
  -H "Content-Type: application/json"

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "content": [
    ]
}

device V2

Device management

Assign device to customer

Minimum role: TECHNICIAN

Authorizations:
token_auth
query Parameters
customerId
integer
Request Body schema: application/json
required
customerId
string
activationCode
string
serial
string
deviceName
string
deviceGroupId
string
contentId
string
emergencyContentId
string
licenseOrderId
integer
showName
boolean
Default: false
showConsole
boolean
Default: false
weatherLocation
string
timeZone
string
object (rotation)
tags
Array of strings <= 10 items
emergencyStatus
boolean
Default: false
updateVersionUpperLimit
string
rebootTime
string
volumeLevel
integer
brightnessLevel
integer
advancedConfiguration
object
updateRule
object
datasourceId
string
daraRowId
string
sensorConfig
string
migrateFromDeviceId
string
deleteMigratedDevice
boolean
Default: false
object

Responses

Request samples

Content type
application/json
{
  • "customerId": "string",
  • "activationCode": "string",
  • "serial": "string",
  • "deviceName": "string",
  • "deviceGroupId": "string",
  • "contentId": "string",
  • "emergencyContentId": "string",
  • "licenseOrderId": 0,
  • "showName": false,
  • "showConsole": false,
  • "weatherLocation": "string",
  • "timeZone": "string",
  • "rotation": {
    },
  • "tags": [
    ],
  • "emergencyStatus": false,
  • "updateVersionUpperLimit": "string",
  • "rebootTime": "string",
  • "volumeLevel": 0,
  • "brightnessLevel": 0,
  • "advancedConfiguration": { },
  • "updateRule": { },
  • "datasourceId": "string",
  • "daraRowId": "string",
  • "sensorConfig": "string",
  • "migrateFromDeviceId": "string",
  • "deleteMigratedDevice": false,
  • "resourceCreationTeamAssignParams": {
    }
}

Move device to device group

Request Body schema: application/json
required
deviceIds
Array of strings
groupIds
Array of strings
targetGroupId
string

Responses

Request samples

Content type
application/json
{
  • "deviceIds": [
    ],
  • "groupIds": [
    ],
  • "targetGroupId": "string"
}

Set advanced configuration

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

Request Body schema: application/json
required
advancedConfiguration
object

Responses

Request samples

Content type
application/json
{
  • "advancedConfiguration": { }
}

Set update rule

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

Request Body schema: application/json
required
updateRule
object

Responses

Request samples

Content type
application/json
{
  • "updateRule": { }
}

Set data row

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

dataRowId
required
string

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/dataRowId?customerId=182&applyOn=DEVICE&dataRowId=row1&search=id=f229806904154d8abe67f42629d0c1bb'

Delete data row

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

Responses

Request samples

curl -X DELETE \
  '{{server_root}}/api/v2/device/dataRowId?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb'

Set datasource

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

datasourceId
string

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/datasource?applyOn=DEVICE&customerId=182&search=id=f229806904154d8abe67f42629d0c1bb&datasourceId=6edd67f7597645de8ed0f0a1dceaed30'

Delete datasource

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

Responses

Request samples

curl -X DELETE \
  '{{server_root}}/api/v2/device/datasource?applyOn=DEVICE&customerId=182&search=id=f229806904154d8abe67f42629d0c1bb'

Set rotation

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

angle
required
integer
type
required
string
Default: "WEB_VIEW"
Enum: "WEB_VIEW" "DEVICE"

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/rotation?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb&angle=90&type=WEB_VIEW'

Set brightness

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

level
required
integer

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/brightness?customerId=182&applyOn=DEVICE&level=10&search=id=f229806904154d8abe67f42629d0c1bb'

Set volume

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

level
required
integer

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/volume?customerId=182&applyOn=DEVICE&level=10&search=id=f229806904154d8abe67f42629d0c1bb'

Set time

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

timeZone
required
string <Europe/Budapest>

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/time?customerId=182&applyOn=DEVICE&timeZone=Europe%2FBudapest&search=id=f229806904154d8abe67f42629d0c1bb'

Set weather location

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

weatherLocation
required
string <New York, NY>

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/setWeatherLocation?customerId=182&applyOn=DEVICE&weatherLocation=New%20York%2C%20NY&search=id=f229806904154d8abe67f42629d0c1bb'

Set working hours

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

Request Body schema: application/json
required
object
mode
string
Value: "DEVICE"

Responses

Request samples

Content type
application/json
{
  • "days": {
    },
  • "mode": "DEVICE"
}

Set reboot time

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

time
required
string <02:00:00>

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/rebootTime?applyOn=DEVICE&customerId=182&time=2:0:00&search=id=f229806904154d8abe67f42629d0c1bb'

Delete reboot time

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/rebootTime?applyOn=DEVICE&customerId=182&search=id=f229806904154d8abe67f42629d0c1bb'

Set update version upper limit

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

version
required
string <1.2.3.4>

0 means never update.

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/setUpdateVersionUpperLimit?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb&version=4.0.8'

Add tag

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

Request Body schema: application/json
required
tags
Array of strings

Responses

Request samples

Content type
application/json
{
  • "tags": [
    ]
}

Set tag

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

Request Body schema: application/json
required
tags
Array of strings

Responses

Request samples

Content type
application/json
{
  • "tags": [
    ]
}

Remove tag

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

Request Body schema: application/json
required
tags
Array of strings

Responses

Request samples

Content type
application/json
{
  • "tags": [
    ]
}

Set sensor config

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

Request Body schema: application/json
required
sensorConfig
object

Responses

Request samples

Content type
application/json
{
  • "sensorConfig": { }
}

Reset sensor

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/resetSensor?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb'

Turn on and off display

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

enabled
required
boolean

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/display?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb&enabled=true'

Turn on and off emergency

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

emergencyStatus
required
boolean

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/emergency?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb&emergencyStatus=true'

Turn on and off lock

path Parameters
locked
required
boolean
query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/lockDown/true?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb'

Show console

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

enabled
required
boolean

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/showConsole?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb&enabled=true'

Show device info

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

enabled
required
boolean

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/showDeviceInfo?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb&enabled=true'

Show name

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

enabled
required
boolean

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/showName?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb&enabled=true'

Show state indicator

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

enabled
required
boolean

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/showStateIndicator?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb&enabled=true'

Set toast message

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

message
required
string

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/showToastMessage?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb&message=Welcome'

Send command

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

command
required
string

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/showToastMessage?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb&command=testCommand'

Update device

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/update?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb'

Restart device

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/restart?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb'

Snooze device

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/snooze?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb'

Wake up device

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/wakeUp?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb'

Start recovery

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/startRecovery?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb'

Start settings

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/startSettings?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb'

Load page

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

url
required
string

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/loadPage?customerId=182&applyOn=DEVICE&url=https%3A%2F%2Fwallboard.info%2F&search=id=f229806904154d8abe67f42629d0c1bb'

Request log

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

logcat
required
boolean
Default: false
bugreport
required
boolean
Default: false
systemLog
required
boolean
Default: false
systemReport
required
boolean
Default: false

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/requestLog?customerId=182&applyOn=DEVICE&logcat=false&bugreport=false&systemLog=false&systemReport=false&search=id=f229806904154d8abe67f42629d0c1bb'

Install application

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

url
required
integer
Request Body schema: application/json
required
params
object

Responses

Request samples

Content type
application/json
{
  • "params": { }
}

Take high resolution preview

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/takeHighResPreview?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb'

Turn on rapid preview mode

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

duration
required
integer
minimumDelayBetweenPreviews
required
integer

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/turnOnRapidPreviewMode?customerId=182&applyOn=DEVICE&duration=5&minimumDelayBetweenPreviews=5&search=id=f229806904154d8abe67f42629d0c1bb'

Set preview content

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

contentId
required
string

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/previewContent?customerId=182&applyOn=DEVICE&contentId=bbc27d811cfe44d18eae17bb2734122e&search=id=f229806904154d8abe67f42629d0c1bb'

Set preview template

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

templateId
required
string

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/previewContent?customerId=182&applyOn=DEVICE&templateId=bbc27d811cfe44d18eae17bb2734122e&search=id=f229806904154d8abe67f42629d0c1bb'

Upload preview image

Upload a preview image for a device. This api always response with status OK.

query Parameters
deviceId
required
string

ID of the device

highRes
boolean
Default: false

Indicates whether the image is high resolution or not

header Parameters
Content-Type
required
string <multipart/form-data; boundary={boundary}>
Example: multipart/form-data; boundary=q1w2e3r4t5y6u7i8o9
Request Body schema: multipart/form-data
image
any <binary>

Responses

Request samples

Content type
multipart/form-data
--q1w2e3r4t5y6u7i8o9
Content-Disposition: form-data; name=image; filename="image.jpg"
Content-Type: image/jpg

{..binary_data_of_picture..}

Assign content to device

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

contentId
required
string
nextContentId
string
nextContentStartDate
integer
asAssigned
required
boolean
Default: true
asEmergency
required
boolean
Default: false

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/assignContent?customerId=182&applyOn=DEVICE&contentId=bbc27d811cfe44d18eae17bb2734122e&asAssigned=true&asEmergency=false&search=id=f229806904154d8abe67f42629d0c1bb'

Refresh content

Minimum role: APPROVER

Authorizations:
token_auth
query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

Responses

Request samples

curl -X POST \
  https://example.com/api/v2/device/refreshContent?customerId=123&search=id%3A000c08d294df48efb1b0f5aa754d7ef9&applyOn=DEVICE \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json'

Cache content

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

contentId
required
string
cacheAt
string

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/cacheContent?customerId=182&applyOn=DEVICE&contentId=bbc27d811cfe44d18eae17bb2734122e&search=id=f229806904154d8abe67f42629d0c1bb'

Cache content files

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

cacheAt
string
Request Body schema: application/json
required
urls
Array of strings

Responses

Request samples

Content type
application/json
{
  • "urls": [
    ]
}

Clear cache

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

contentId
required
string
limit
integer

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/clearCache?customerId=182&applyOn=DEVICE&limit=10&search=id=f229806904154d8abe67f42629d0c1bb'

Detach content from device

query Parameters
customerId
required
integer
search
string (search)

WBQL search expression

applyOn
required
string (applyOn)
Enum: "DEVICE" "DEVICEGROUP" "ALL"

Defines what search expression will applied to.

detachNext
boolean
Default: true
detachAssigned
boolean
Default: true
detachEmergency
boolean
Default: false

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/detachContent?customerId=182&applyOn=DEVICE&search=id=f229806904154d8abe67f42629d0c1bb&detachNext=true&detachAssigned=true&detachEmergency=false'

Set location image

query Parameters
deviceId
required
integer
header Parameters
Content-Type
required
string <multipart/form-data>
Request Body schema: multipart/form-data
files
Array of strings <binary> [ items <binary > ]
previews
Array of strings <binary> [ items <binary > ]

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/v2/device/534/locationImage'

Response samples

Content type
application/json
{
  • "content": [
    ]
}

Get location image

This endpoint is used to retrieve device location image data.

path Parameters
deviceId
required
integer

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/v2/device/534/locationImage'

Response samples

Content type
application/json
{
  • "content": [
    ]
}

Delete location image

path Parameters
deviceId
required
integer
fileName
required
string

Responses

Request samples

curl -X DELETE \
  '{{server_root}}/api/v2/device/534/locationImage?fileName=kep.jpg'

Response samples

Content type
application/json
{
  • "content": [ ]
}

Get summary of devices

This endpoint is used to retrieve summary of devices.

query Parameters
customerId
integer
deviceGroupSearch
string
deviceSearch
string
quickFilterId
string

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/v2/device/view/summary'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "sort": [
    ],
  • "content": [
    ]
}

Get devices

This endpoint is used to retrieve device data.

query Parameters
customerId
integer
includeReadOnlyInfo
boolean
Default: false
search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

select
string (select)

WBQL select expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/v2/device?customerId=123&page=0&size=20&sort=name&includeReadOnlyInfo=false'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "content": [
    ]
}

Get device breadcrumb

This endpoint is used to retrieve the path of the device.

query Parameters
customerId
integer
deviceGroupId
string

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/v2/device/view/breadcrumb?customerId=182&deviceGroupId=eac27d811cfe44d18eae17bb2734121d'

Response samples

Content type
application/json
{
  • "groups": [
    ]
}

Get device preview

This endpoint is used to retrieve device preview image data.

path Parameters
deviceId
required
integer

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/v2/device/534/previewStore'

Response samples

Content type
application/json
{
  • "content": [
    ]
}

device content

Device content management

Get device contents

This endpoint is used to retrieve device content data.

query Parameters
customerId
integer
includeLoops
boolean
Default: true
includeContents
boolean
Default: true
includeSchedules
boolean
Default: true
shuffleDeviceContents
boolean
Default: true
includeReadOnlyInfo
boolean
Default: false
search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

select
string (select)

WBQL select expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/v2/deviceContent?customerId=182&includeLoops=true&includeContents=true&includeSchedules=true&shuffleDeviceContents=true&includeReadOnlyInfo=false'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "sort": [
    ],
  • "content": [
    ]
}

file

File management

Upload file

Minimum role: EDITOR

RFC 1867 compliant multipart/form-data stream (https://www.ietf.org/rfc/rfc1867.txt)

For pictures the thumbnails are created automatically by the server, but video files require and explicitly uploaded preview.

Authorizations:
token_auth
query Parameters
customerId
integer (customerId)
teamIds
string <{teamId},{readOnly},{teamId},{readOnly}... > (teamIds)
Example: teamIds=000c08d294df48efb1b0f5aa754d7ef9,true,00a22e86602c4a88914614aa9516a481,false
parentId
string

Folder ID where the file will be uploaded. If empty, the file will be uploaded into the root folder.

validFrom
integer <Epoch Unix timestamp in milliseconds.> (unix_timestamp)
Example: validFrom=1683802510

File validity start time.

validTo
integer <Epoch Unix timestamp in milliseconds.> (unix_timestamp)
Example: validTo=1683802510

File validity end time.

header Parameters
Content-Type
required
string <multipart/form-data; boundary={boundary}>
Example: multipart/form-data; boundary=q1w2e3r4t5y6u7i8o9
Request Body schema: multipart/form-data
files
Array of strings <binary> [ items <binary > ]
previews
Array of strings <binary> [ items <binary > ]

Responses

Request samples

Content type
multipart/form-data
--q1w2e3r4t5y6u7i8o9
Content-Disposition: form-data; name=files; filename="my_picture.png"
Content-Type: image/png

{..binary_data_of_picture..}
--q1w2e3r4t5y6u7i8o9
Content-Disposition: form-data; name=previews; filename="my_video_preview.preview"
Content-Type: video/mp4

{..binary_data_of_video_preview..}
--q1w2e3r4t5y6u7i8o9--

Response samples

Content type
application/json
[
  • {
    }
]

Get files

This endpoint is used to retrieve file data.

query Parameters
customerId
integer
search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

select
string (select)

WBQL select expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/v2/file?customerId=182'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "sort": [
    ],
  • "content": [
    ]
}

Get files from folder

This endpoint is used to retrieve file data from file folder.

query Parameters
customerId
required
integer
folderId
required
string
contentTypes
Array of strings
recursively
boolean
Default: true

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/v2/file/getFilesFromFolder?customerId=182&contentTypes=image%2F&folderId=58&recursively=true'

Response samples

Content type
application/json
[
  • {
    }
]

file folder

File folder management

Get filtered file folders

This endpoint is used to retrieve filtered file folder data.

query Parameters
customerId
integer
search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

select
string (select)

WBQL select expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/v2/quickFilter/?customerId=182'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "sort": [
    ],
  • "content": [
    ]
}

campaign

Campaign management

Update campaign team assignment

query Parameters
customerId
integer (customerId)
campaignId
required
integer
Request Body schema: application/json
required
Array of objects
removeFromTeamIds
Array of strings

Responses

Request samples

Content type
application/json
{
  • "assignToTeams": [
    ],
  • "removeFromTeamIds": [
    ]
}

Create campaign

query Parameters
customerId
integer (customerId)
teamIds
string <{teamId},{readOnly},{teamId},{readOnly}... > (teamIds)
Example: teamIds=000c08d294df48efb1b0f5aa754d7ef9,true,00a22e86602c4a88914614aa9516a481,false
Request Body schema: application/json
required
name
string
validFrom
string <2024-03-19>
validTo
string <2024-03-20>
weight
integer

This is the priority of the campaign. Priority increases as the number decreases.

contentShuffleMode
string (contentShuffleMode)
Enum: "BALANCED" "SERIAL"
saturation
integer

Campaigns with higher saturation will be played proportionally more.

skipDefaultPage
boolean
Default: false
skipInvalidFiles
boolean
Default: false
enabled
boolean
Default: true
object (affectedHours)
object (affectedDays)
object (affectedDates)
object (tagCondition)
object (tagCondition)
object (tagCondition)
type
string (campaignType)
Enum: "CONTENT" "CONTENT_BY_TAG" "MESSAGE_GROUP" "ASSETS_STATIC" "ASSETS_DYNAMIC"
object (teamAccessList)
object (teamAccessList)
playMultipleItemsInSinglePlaybackSlot
boolean
Default: false
playAllItemsInSinglePlaybackSlot
boolean
Default: true
playbackSlotDuration
integer
playbackSlotNumberOfElementsToPlay
integer
tags
Array of strings
readOnly
boolean (readOnly)

If false, the resource is modifiable by the user

duration
integer
defaultDuration
integer

Default duration for media items without length (images).

orderingMode
string (orderingMode)
Enum: "RANDOM" "ALPHABET" "DEFAULT"
advertiserId
string
Array of objects
Array of objects
Array of objects
Array of objects
Array of objects

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "validFrom": "string",
  • "validTo": "string",
  • "weight": 0,
  • "contentShuffleMode": "BALANCED",
  • "saturation": 0,
  • "skipDefaultPage": false,
  • "skipInvalidFiles": false,
  • "enabled": true,
  • "affectedHours": {
    },
  • "affectedDays": {
    },
  • "affectedDates": {
    },
  • "deviceTagCondition": {
    },
  • "contentTagCondition": {
    },
  • "fileTagCondition": {
    },
  • "type": "CONTENT",
  • "teamAccessList": {
    },
  • "playedAssetTeamAccessList": {
    },
  • "playMultipleItemsInSinglePlaybackSlot": false,
  • "playAllItemsInSinglePlaybackSlot": true,
  • "playbackSlotDuration": 0,
  • "playbackSlotNumberOfElementsToPlay": 0,
  • "tags": [
    ],
  • "readOnly": true,
  • "duration": 0,
  • "defaultDuration": 0,
  • "orderingMode": "RANDOM",
  • "advertiserId": "string",
  • "campaignDeviceGroupAssignments": [
    ],
  • "campaignContentAssignments": [
    ],
  • "campaignMessageGroupAssignments": [
    ],
  • "campaignFileAssignments": [
    ],
  • "campaignFileFolderAssignments": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "validFrom": "string",
  • "validTo": "string",
  • "weight": 0,
  • "contentShuffleMode": "BALANCED",
  • "saturation": 0,
  • "skipDefaultPage": false,
  • "skipInvalidFiles": false,
  • "enabled": true,
  • "affectedHours": {
    },
  • "affectedDays": {
    },
  • "affectedDates": {
    },
  • "deviceTagCondition": {
    },
  • "contentTagCondition": {
    },
  • "fileTagCondition": {
    },
  • "type": "CONTENT",
  • "customerId": 0,
  • "creatorEmail": "string",
  • "teamAccessList": {
    },
  • "playedAssetTeamAccessList": {
    },
  • "playMultipleItemsInSinglePlaybackSlot": false,
  • "playAllItemsInSinglePlaybackSlot": true,
  • "playbackSlotDuration": 0,
  • "playbackSlotNumberOfElementsToPlay": 0,
  • "tags": [
    ],
  • "readOnly": true,
  • "duration": 0,
  • "defaultDuration": 0,
  • "orderingMode": "RANDOM",
  • "advertiserId": "string",
  • "affectedScreenCount": 0
}

Get campaigns

This endpoint is used to retrieve campaign data.

query Parameters
customerId
integer
includeAffectedScreenCount
boolean
Default: false
search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

select
string (select)

WBQL select expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/campaign?customerId=182&includeAffectedScreenCount=false'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "sort": [
    ],
  • "content": [
    ]
}

Get campaigns with basic attributes (simple)

This endpoint is useful for listing or if quick response time is required and you only need the id and name.

query Parameters
customerId
integer
includeReadOnlyInfo
boolean (includeReadOnlyInfo)
Default: false

Whether or not the readOnly attribute should be filled on the response

search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

select
string (select)

WBQL select expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/campaign/simple?customerId=182&includeReadOnlyInfo=false'

Response samples

Content type
application/json
{
  • "content": [
    ]
}

Get campaigns with basic attributes (simplePaged)

This endpoint is useful for listing or if quick response time is required and you only need the id and name.

query Parameters
customerId
integer (customerId)
includeReadOnlyInfo
boolean (includeReadOnlyInfo)
Default: false

Whether or not the readOnly attribute should be filled on the response

search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/campaign/simplePaged?customerId=182&includeReadOnlyInfo=false'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "sort": "string",
  • "content": [
    ]
}

Get campaign player devices

This endpoint is used to retrieve the data of the devices, on which the campaign is being played.

query Parameters
campaignId
required
integer

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/campaign/playerDevices?campaignId=653'

Response samples

Content type
application/json
[
  • {
    }
]

Get campaign

This endpoint is used to retrieve campaign data by campaignId.

path Parameters
campaignId
required
integer

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/campaign/653'

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "validFrom": "string",
  • "validTo": "string",
  • "weight": 0,
  • "contentShuffleMode": "BALANCED",
  • "saturation": 0,
  • "skipDefaultPage": false,
  • "skipInvalidFiles": false,
  • "enabled": true,
  • "affectedHours": {
    },
  • "affectedDays": {
    },
  • "affectedDates": {
    },
  • "deviceTagCondition": {
    },
  • "contentTagCondition": {
    },
  • "fileTagCondition": {
    },
  • "type": "CONTENT",
  • "customerId": 0,
  • "creatorEmail": "string",
  • "teamAccessList": {
    },
  • "playedAssetTeamAccessList": {
    },
  • "playMultipleItemsInSinglePlaybackSlot": false,
  • "playAllItemsInSinglePlaybackSlot": true,
  • "playbackSlotDuration": 0,
  • "playbackSlotNumberOfElementsToPlay": 0,
  • "tags": [
    ],
  • "readOnly": true,
  • "duration": 0,
  • "defaultDuration": 0,
  • "orderingMode": "RANDOM",
  • "advertiserId": "string",
  • "campaignDeviceGroupAssignments": [
    ],
  • "campaignContentAssignments": [
    ],
  • "campaignMessageGroupAssignments": [
    ],
  • "campaignFileAssignments": [
    ],
  • "campaignFileFolderAssignments": [
    ]
}

Update campaign

path Parameters
campaignId
required
integer
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "validFrom": "string",
  • "validTo": "string",
  • "weight": 0,
  • "contentShuffleMode": "BALANCED",
  • "saturation": 0,
  • "skipDefaultPage": false,
  • "skipInvalidFiles": false,
  • "enabled": true,
  • "affectedHours": {
    },
  • "affectedDays": {
    },
  • "affectedDates": {
    },
  • "deviceTagCondition": {
    },
  • "contentTagCondition": {
    },
  • "fileTagCondition": {
    },
  • "type": "CONTENT",
  • "customerId": 0,
  • "creatorEmail": "string",
  • "teamAccessList": {
    },
  • "playedAssetTeamAccessList": {
    },
  • "playMultipleItemsInSinglePlaybackSlot": false,
  • "playAllItemsInSinglePlaybackSlot": true,
  • "playbackSlotDuration": 0,
  • "playbackSlotNumberOfElementsToPlay": 0,
  • "tags": [
    ],
  • "readOnly": true,
  • "duration": 0,
  • "defaultDuration": 0,
  • "orderingMode": "RANDOM",
  • "advertiserId": "string",
  • "campaignDeviceGroupAssignments": [
    ],
  • "campaignContentAssignments": [
    ],
  • "campaignMessageGroupAssignments": [
    ],
  • "campaignFileAssignments": [
    ],
  • "campaignFileFolderAssignments": [
    ]
}

Delete campaign

path Parameters
campaignId
required
integer

Responses

Request samples

curl -X DELETE \
  '{{server_root}}/api/campaign/653'

Delete campaign by date

path Parameters
date
required
string
query Parameters
customerId
integer (customerId)

Responses

Request samples

curl -X DELETE \
  '{{server_root}}/api/campaign/deleteCampaignsByDate?date=2024-01-01'

message

Message management

Get messages

This endpoint is used to retrieve message data.

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

includeDeviceGroupName
boolean
Default: false
includeContentName
boolean
Default: false

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/message?customerId=182&includeDeviceGroupName=false&includeContentName=false'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "sort": "string",
  • "content": [
    ]
}

Update message

path Parameters
messageId
required
integer
Request Body schema: application/json
required
validFrom
string
validTo
string
weight
integer
text
string
skipDefaultPage
boolean
enabled
boolean
contentId
string
simpleLoopId
string
object
object (affectedDays)
messageGroupId
integer
name
string
deviceGroupId
string
object
saturation
integer
tags
Array of strings
defaultDuration
integer
orderingMode
string
Enum: "RANDOM" "ALPHABET" "DEFAULT"
object
advertiserId
string
deviceGroupName
string
contentName
string

Responses

Request samples

Content type
application/json
{
  • "validFrom": "string",
  • "validTo": "string",
  • "weight": 0,
  • "text": "string",
  • "skipDefaultPage": true,
  • "enabled": true,
  • "contentId": "string",
  • "simpleLoopId": "string",
  • "affectedHours": {
    },
  • "affectedDays": {
    },
  • "messageGroupId": 0,
  • "name": "string",
  • "deviceGroupId": "string",
  • "teamAccessList": {
    },
  • "saturation": 0,
  • "tags": [
    ],
  • "defaultDuration": 0,
  • "orderingMode": "RANDOM",
  • "affectedDates": {
    },
  • "advertiserId": "string",
  • "deviceGroupName": "string",
  • "contentName": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "validFrom": "string",
  • "validTo": "string",
  • "weight": 0,
  • "text": "string",
  • "type": "CONTENT",
  • "skipDefaultPage": true,
  • "enabled": true,
  • "contentId": "string",
  • "simpleLoopId": "string",
  • "affectedHours": {
    },
  • "affectedDays": {
    },
  • "messageGroupId": 0,
  • "name": "string",
  • "deviceGroupId": "string",
  • "customerId": 0,
  • "creatorEmail": "string",
  • "createDate": 1683802510,
  • "teamAccessList": {
    },
  • "saturation": 0,
  • "tags": [
    ],
  • "defaultDuration": 0,
  • "orderingMode": "RANDOM",
  • "affectedDates": {
    },
  • "advertiserId": "string",
  • "deviceGroupName": "string",
  • "contentName": "string"
}

datasource

Datasource management

Get datasource

This endpoint is used to retrieve datasource data.

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

select
string (select)

WBQL select expression

Responses

Request samples

curl -X POST \
  '{{server_root}}/api/datasource/?customerId=182'

Response samples

Content type
application/json
{
  • "object": {
    }
}

Get datasource resource

Public API for accessing datasource resources.

This API allows you to retrieve specific resources from a datasource identified by its ID. You can specify the JSON path to the desired resource and the response type too (JSON or file).

JSONPath standard: https://www.ietf.org/archive/id/draft-goessner-dispatch-jsonpath-00.html
JSONPath tester: https://jsonpath.com/

The API offers support for both JSON and binary responses. In the case where the selected value corresponds to an internal URL (e.g. https://beta.wallboard.info/api/storage/datasources/f56b7b4b780a46199754aedc74354703/resources/f56b7b4b780a46199754aedc74354703.jpg), the API will return the actual file associated with that URL.

path Parameters
datasourceId
required
string

ID of the datasource

query Parameters
path
string
Default: "$"
Example: path=$.charts[0]

JSON path to the resource

type
string
Default: "json"
Enum: "file" "json"

Datasource response type

Responses

Request samples

curl --location -g --request GET 'example.com/public-api/datasource/8994b2113f8e4496aacaa05a6b25073a/resource?path=$.charts[0].image&type=file'

Response samples

Content type

Update INTERNAL datasource's data

Minimum role: TECHNICIAN

Authorizations:
token_auth
path Parameters
datasourceId
string
Request Body schema: application/json
required
data
string <{\"example_key\" : \"example_value\"}>

In Wallboard all datasources mapped to JSON format in the end. Hence, the value of this field should be a stringified JSON.

Responses

Request samples

Content type
application/json
{
  • "data": "string"
}

Response samples

Content type
application/json
{
  • "timestamp": 1683802510,
  • "status": 0,
  • "error": "string",
  • "message": "string",
  • "path": "string",
  • "exception": "string",
  • "details": { }
}

webhook

Webhook management

Call webhook as POST request

Authorizations:
api_key_auth
Request Body schema: application/json
required

Custom JSON payload. The only required attribute is the event_id.

Example body: {"event_id":"decrease","keySelector":"test"}

Webhook calls are async in a way that they always send back the response instantly, but the actual action executed in the background.

event_id
string

Responses

Request samples

Content type
application/json
{
  • "event_id": "string"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Call webhook as GET request

Every webhook can be called as GET request. The payload is a Base64 encoded JSON.

Webhook calls are async in a way that they always send back the response instantly, but the actual action executed in the background.

query Parameters
apiKey
string <JWT>
payload
string <Base64 encoded JSON>
Example: payload=eyJldmVudF9pZCI6ImRlY3JlYXNlIiwia2V5U2VsZWN0b3IiOiJ0ZXN0In0=

Original JSON in the example: {"event_id":"decrease","keySelector":"test"}

Responses

Request samples

curl -X GET \
  'https://example.com/public-api/integration/webhooks?apiKey=your_api_key&payload=eyJldmVudF9pZCI6ImRlY3JlYXNlIiwia2V5U2VsZWN0b3IiOiJ0ZXN0In0='

Response samples

Content type
application/json
{
  • "message": "string"
}

Update webhook team assignment

query Parameters
customerId
integer (customerId)
actionId
required
integer
Request Body schema: application/json
required
Array of objects
removeFromTeamIds
Array of strings

Responses

Request samples

Content type
application/json
{
  • "assignToTeams": [
    ],
  • "removeFromTeamIds": [
    ]
}

Create webhook event action

query Parameters
customerId
integer (customerId)
teamIds
string <{teamId},{readOnly},{teamId},{readOnly}... > (teamIds)
Example: teamIds=000c08d294df48efb1b0f5aa754d7ef9,true,00a22e86602c4a88914614aa9516a481,false
Request Body schema: application/json
required
name
string
id
integer
eventId
string
enabled
boolean
action
string (action)
Enum: "ENABLE_EMERGENCY_ON_DEVICE" "ENABLE_EMERGENCY_ON_DEVICE_TAG" "ENABLE_EMERGENCY_ON_DEVICE_GROUP" "ENABLE_EMERGENCY_ON_DEVICE_ALL" "DISABLE_EMERGENCY_ON_DEVICE" "DISABLE_EMERGENCY_ON_DEVICE_TAG" "DISABLE_EMERGENCY_ON_DEVICE_GROUP" "DISABLE_EMERGENCY_ON_DEVICE_ALL" "LOAD_URL_ON_DEVICE" "LOAD_URL_ON_DEVICE_TAG" "LOAD_URL_ON_DEVICE_GROUP" "LOAD_URL_ON_DEVICE_ALL" "PAUSE_CONTENT_ON_DEVICE" "PAUSE_CONTENT_ON_DEVICE_TAG" "PAUSE_CONTENT_ON_DEVICE_GROUP" "PAUSE_CONTENT_ON_DEVICE_ALL" "RESUME_CONTENT_ON_DEVICE" "RESUME_CONTENT_ON_DEVICE_TAG" "RESUME_CONTENT_ON_DEVICE_GROUP" "RESUME_CONTENT_ON_DEVICE_ALL" "REFRESH_CONTENT_ON_DEVICE" "REFRESH_CONTENT_ON_DEVICE_TAG" "REFRESH_CONTENT_ON_DEVICE_GROUP" "REFRESH_CONTENT_ON_DEVICE_ALL" "SEND_SENSOR_EVENT_TO_DEVICE" "SEND_SENSOR_EVENT_TO_DEVICE_TAG" "SEND_SENSOR_EVENT_TO_DEVICE_GROUP" "SEND_SENSOR_EVENT_TO_DEVICE_ALL" "RESTART_DEVICE" "RESTART_DEVICE_TAG" "RESTART_DEVICE_GROUP" "RESTART_DEVICE_ALL" "ASSIGN_CONTENT_ON_DEVICE" "ASSIGN_CONTENT_ON_DEVICE_TAG" "ASSIGN_CONTENT_ON_DEVICE_GROUP" "ASSIGN_CONTENT_ON_DEVICE_ALL" "PREVIEW_CONTENT_ON_DEVICE" "PREVIEW_CONTENT_ON_DEVICE_TAG" "PREVIEW_CONTENT_ON_DEVICE_GROUP" "PREVIEW_CONTENT_ON_DEVICE_ALL" "WAKE_UP_DEVICE" "WAKE_UP_DEVICE_TAG" "WAKE_UP_DEVICE_GROUP" "WAKE_UP_DEVICE_ALL" "SNOOZE_DEVICE" "SNOOZE_DEVICE_TAG" "SNOOZE_DEVICE_GROUP" "SNOOZE_DEVICE_ALL" "SHOW_TOAST_MESSAGE_DEVICE" "SHOW_TOAST_MESSAGE_DEVICE_TAG" "SHOW_TOAST_MESSAGE_DEVICE_GROUP" "SHOW_TOAST_MESSAGE_DEVICE_ALL" "REFRESH_DATASOURCE" "REFRESH_DATASOURCE_ALL" "INCREASE_VALUE_IN_DATASOURCE" "DECREASE_VALUE_IN_DATASOURCE" "SET_INTERNAL_DATASOURCE" "MERGE_INTERNAL_DATASOURCE" "DELETE_BY_KEY_INTERNAL_DATASOURCE" "INSERT_TO_ARRAY_INTERNAL_DATASOURCE" "REMOVE_FROM_ARRAY_INTERNAL_DATASOURCE" "EMPTY_ARRAY_INTERNAL_DATASOURCE" "ROTATE_ARRAY_INTERNAL_DATASOURCE" "ENABLE_CAMPAIGN" "ENABLE_CAMPAIGN_BY_TAGS" "DISABLE_CAMPAIGN" "DISABLE_CAMPAIGN_BY_TAGS" "CHANGE_SATURATION_CAMPAIGN" "CHANGE_SATURATION_CAMPAIGN_BY_TAGS" "CHANGE_PRIORITY_CAMPAIGN" "CHANGE_PRIORITY_CAMPAIGN_BY_TAGS" "FORCE_SYNC_SHARED_FOLDER" "UPLOAD_FILE_TO_FOLDER"
actionParams
object
targetName
string
Value: "ALL"
targetId
string
customerId
integer
readOnly
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "id": 0,
  • "eventId": "string",
  • "enabled": true,
  • "action": "ENABLE_EMERGENCY_ON_DEVICE",
  • "actionParams": { },
  • "targetName": "ALL",
  • "targetId": "string",
  • "customerId": 0,
  • "readOnly": true
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "id": 0,
  • "eventId": "string",
  • "enabled": true,
  • "action": "ENABLE_EMERGENCY_ON_DEVICE",
  • "actionParams": { },
  • "targetName": "ALL",
  • "targetId": "string",
  • "customerId": 0,
  • "readOnly": true
}

Get webhook event actions

This endpoint is used to retrieve webhook event action data.

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

select
string (select)

WBQL select expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/webhookEvent/actions?customerId=123'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "sort": "string",
  • "content": [
    ]
}

Get webhook with basic attributes (simple)

This endpoint is useful for listing or if quick response time is required and you only need the id and name.

query Parameters
customerId
integer (customerId)
includeReadOnlyInfo
boolean (includeReadOnlyInfo)
Default: false

Whether or not the readOnly attribute should be filled on the response

search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

select
string (select)

WBQL select expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/webhookEvent/simple?customerId=182&includeReadOnlyInfo=false'

Response samples

Content type
application/json
{
  • "content": [
    ]
}

Get webhook with basic attributes (simplePaged)

This endpoint is useful for listing or if quick response time is required and you only need the id and name.

query Parameters
customerId
integer (customerId)
includeReadOnlyInfo
boolean (includeReadOnlyInfo)
Default: false

Whether or not the readOnly attribute should be filled on the response

search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

select
string (select)

WBQL select expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/webhookEvent/simplePaged?customerId=182&includeReadOnlyInfo=false'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "sort": "string",
  • "content": [
    ]
}

Get webhook event action by eventId

This endpoint is used to retrieve webhook event action data.

path Parameters
eventId
required
string

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/webhookEvent/1/actions'

Response samples

Content type
application/json
[
  • {
    }
]

Get webhook event action by actionId

This endpoint is used to retrieve webhook event action data.

path Parameters
actionId
required
integer

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/webhookEvent/actions/133'

Response samples

Content type
application/json
{
  • "name": "string",
  • "id": 0,
  • "eventId": "string",
  • "enabled": true,
  • "action": "ENABLE_EMERGENCY_ON_DEVICE",
  • "actionParams": { },
  • "targetName": "ALL",
  • "customerId": 0,
  • "readOnly": true
}

Update webhook event action

path Parameters
actionId
required
integer
Request Body schema: application/json
required
name
string
id
integer
eventId
string
enabled
boolean
action
string (action)
Enum: "ENABLE_EMERGENCY_ON_DEVICE" "ENABLE_EMERGENCY_ON_DEVICE_TAG" "ENABLE_EMERGENCY_ON_DEVICE_GROUP" "ENABLE_EMERGENCY_ON_DEVICE_ALL" "DISABLE_EMERGENCY_ON_DEVICE" "DISABLE_EMERGENCY_ON_DEVICE_TAG" "DISABLE_EMERGENCY_ON_DEVICE_GROUP" "DISABLE_EMERGENCY_ON_DEVICE_ALL" "LOAD_URL_ON_DEVICE" "LOAD_URL_ON_DEVICE_TAG" "LOAD_URL_ON_DEVICE_GROUP" "LOAD_URL_ON_DEVICE_ALL" "PAUSE_CONTENT_ON_DEVICE" "PAUSE_CONTENT_ON_DEVICE_TAG" "PAUSE_CONTENT_ON_DEVICE_GROUP" "PAUSE_CONTENT_ON_DEVICE_ALL" "RESUME_CONTENT_ON_DEVICE" "RESUME_CONTENT_ON_DEVICE_TAG" "RESUME_CONTENT_ON_DEVICE_GROUP" "RESUME_CONTENT_ON_DEVICE_ALL" "REFRESH_CONTENT_ON_DEVICE" "REFRESH_CONTENT_ON_DEVICE_TAG" "REFRESH_CONTENT_ON_DEVICE_GROUP" "REFRESH_CONTENT_ON_DEVICE_ALL" "SEND_SENSOR_EVENT_TO_DEVICE" "SEND_SENSOR_EVENT_TO_DEVICE_TAG" "SEND_SENSOR_EVENT_TO_DEVICE_GROUP" "SEND_SENSOR_EVENT_TO_DEVICE_ALL" "RESTART_DEVICE" "RESTART_DEVICE_TAG" "RESTART_DEVICE_GROUP" "RESTART_DEVICE_ALL" "ASSIGN_CONTENT_ON_DEVICE" "ASSIGN_CONTENT_ON_DEVICE_TAG" "ASSIGN_CONTENT_ON_DEVICE_GROUP" "ASSIGN_CONTENT_ON_DEVICE_ALL" "PREVIEW_CONTENT_ON_DEVICE" "PREVIEW_CONTENT_ON_DEVICE_TAG" "PREVIEW_CONTENT_ON_DEVICE_GROUP" "PREVIEW_CONTENT_ON_DEVICE_ALL" "WAKE_UP_DEVICE" "WAKE_UP_DEVICE_TAG" "WAKE_UP_DEVICE_GROUP" "WAKE_UP_DEVICE_ALL" "SNOOZE_DEVICE" "SNOOZE_DEVICE_TAG" "SNOOZE_DEVICE_GROUP" "SNOOZE_DEVICE_ALL" "SHOW_TOAST_MESSAGE_DEVICE" "SHOW_TOAST_MESSAGE_DEVICE_TAG" "SHOW_TOAST_MESSAGE_DEVICE_GROUP" "SHOW_TOAST_MESSAGE_DEVICE_ALL" "REFRESH_DATASOURCE" "REFRESH_DATASOURCE_ALL" "INCREASE_VALUE_IN_DATASOURCE" "DECREASE_VALUE_IN_DATASOURCE" "SET_INTERNAL_DATASOURCE" "MERGE_INTERNAL_DATASOURCE" "DELETE_BY_KEY_INTERNAL_DATASOURCE" "INSERT_TO_ARRAY_INTERNAL_DATASOURCE" "REMOVE_FROM_ARRAY_INTERNAL_DATASOURCE" "EMPTY_ARRAY_INTERNAL_DATASOURCE" "ROTATE_ARRAY_INTERNAL_DATASOURCE" "ENABLE_CAMPAIGN" "ENABLE_CAMPAIGN_BY_TAGS" "DISABLE_CAMPAIGN" "DISABLE_CAMPAIGN_BY_TAGS" "CHANGE_SATURATION_CAMPAIGN" "CHANGE_SATURATION_CAMPAIGN_BY_TAGS" "CHANGE_PRIORITY_CAMPAIGN" "CHANGE_PRIORITY_CAMPAIGN_BY_TAGS" "FORCE_SYNC_SHARED_FOLDER" "UPLOAD_FILE_TO_FOLDER"
actionParams
object
targetName
string
Value: "ALL"
customerId
integer
readOnly
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "id": 0,
  • "eventId": "string",
  • "enabled": true,
  • "action": "ENABLE_EMERGENCY_ON_DEVICE",
  • "actionParams": { },
  • "targetName": "ALL",
  • "customerId": 0,
  • "readOnly": true
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "id": 0,
  • "eventId": "string",
  • "enabled": true,
  • "action": "ENABLE_EMERGENCY_ON_DEVICE",
  • "actionParams": { },
  • "targetName": "ALL",
  • "customerId": 0,
  • "readOnly": true
}

Delete webhook event action

path Parameters
actionId
required
integer

Responses

Request samples

curl -X DELETE \
  '{{server_root}}/api/webhookEvent/actions/133'

webhook api key

Webhook api key management

Update webhook api key team assignment

query Parameters
customerId
integer (customerId)
webhookApiKeyId
required
string
Request Body schema: application/json
required
Array of objects
removeFromTeamIds
Array of strings

Responses

Request samples

Content type
application/json
{
  • "assignToTeams": [
    ],
  • "removeFromTeamIds": [
    ]
}

Create webhook api key

query Parameters
customerId
integer (customerId)
teamIds
string <{teamId},{readOnly},{teamId},{readOnly}... > (teamIds)
Example: teamIds=000c08d294df48efb1b0f5aa754d7ef9,true,00a22e86602c4a88914614aa9516a481,false
Request Body schema: application/json
required
name
string
enabled
boolean
restricted
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "enabled": true,
  • "restricted": true
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "id": 0,
  • "token": "string",
  • "restricted": true,
  • "createdAt": "string",
  • "customerId": 0,
  • "readOnly": true
}

Get webhook api key

This endpoint is used to retrieve webhook api key data.

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

select
string (select)

WBQL select expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/webhooks/apikey?customerId=182'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "sort": "string",
  • "content": [
    ]
}

Get webhook api key with basic attributes (simple)

This endpoint is useful for listing or if quick response time is required and you only need the id and name.

query Parameters
customerId
integer (customerId)
includeReadOnlyInfo
boolean (includeReadOnlyInfo)
Default: false

Whether or not the readOnly attribute should be filled on the response

search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

select
string (select)

WBQL select expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/webhooks/apikey/simple?customerId=182&includeReadOnlyInfo=false'

Response samples

Content type
application/json
{
  • "content": [
    ]
}

Get webhook api key with basic attributes (simplePaged)

This endpoint is useful for listing or if quick response time is required and you only need the id and name.

query Parameters
customerId
integer (customerId)
includeReadOnlyInfo
boolean (includeReadOnlyInfo)
Default: false

Whether or not the readOnly attribute should be filled on the response

search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/webhooks/apikey/simplePaged?customerId=182&includeReadOnlyInfo=false'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "sort": "string",
  • "content": [
    ]
}

Get webhook api key by id

This endpoint is used to retrieve webhook api key data.

path Parameters
id
required
string

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/webhooks/apikey/981eb1fb92a045bf96a919f8c810cfd4'

Response samples

Content type
application/json
{
  • "name": "string",
  • "id": 0,
  • "token": "string",
  • "restricted": true,
  • "createdAt": "string",
  • "customerId": 0,
  • "readOnly": true
}

Update webhook api key

path Parameters
id
required
string
Request Body schema: application/json
required
name
string
id
integer
token
string
restricted
boolean
createdAt
string
customerId
integer
readOnly
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "id": 0,
  • "token": "string",
  • "restricted": true,
  • "createdAt": "string",
  • "customerId": 0,
  • "readOnly": true
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "id": 0,
  • "token": "string",
  • "restricted": true,
  • "createdAt": "string",
  • "customerId": 0,
  • "readOnly": true
}

Delete webhook api key

path Parameters
id
required
string

Responses

Request samples

curl -X DELETE \
  '{{server_root}}/api/webhooks/apikey/981eb1fb92a045bf96a919f8c810cfd4'

alert rule

Alert rule management

Update alert rule team assignment

query Parameters
customerId
integer (customerId)
alertRuleId
required
integer
Request Body schema: application/json
required
Array of objects
removeFromTeamIds
Array of strings

Responses

Request samples

Content type
application/json
{
  • "assignToTeams": [
    ],
  • "removeFromTeamIds": [
    ]
}

Create alert rule

query Parameters
customerId
integer (customerId)
teamIds
string <{teamId},{readOnly},{teamId},{readOnly}... > (teamIds)
Example: teamIds=000c08d294df48efb1b0f5aa754d7ef9,true,00a22e86602c4a88914614aa9516a481,false
Request Body schema: application/json
required
@type
string
Enum: "DeviceOffline" "DatasourceError"
comment
string
object
delayEvaluateAfterViolationMinutes
integer
enabled
boolean
name
string
Array of objects
scheduledEvaluateSeconds
integer
object (teamAccessList)
object (affectedDays)
object (workingTime)
id
integer

Responses

Request samples

Content type
application/json
{
  • "@type": "DeviceOffline",
  • "comment": "string",
  • "condition": {
    },
  • "delayEvaluateAfterViolationMinutes": 0,
  • "enabled": true,
  • "name": "string",
  • "notificationChannel": [
    ],
  • "scheduledEvaluateSeconds": 0,
  • "teamAccessList": {
    },
  • "workingDays": {
    },
  • "workingTime": {
    },
  • "id": 0
}

Response samples

Content type
application/json
{
  • "@type": "DeviceOffline",
  • "comment": "string",
  • "condition": {
    },
  • "delayEvaluateAfterViolationMinutes": 0,
  • "enabled": true,
  • "name": "string",
  • "notificationChannel": [
    ],
  • "scheduledEvaluateSeconds": 0,
  • "teamAccessList": {
    },
  • "workingDays": {
    },
  • "workingTime": {
    },
  • "alertFixedSmsTemplate": "string",
  • "alertSmsTemplate": "string",
  • "appliedToDeviceGroupId": "string",
  • "evaluateSummaryEmailTemplate": "string",
  • "excludeDeviceGroupIds": [
    ],
  • "excludeDeviceIds": [
    ],
  • "id": 0,
  • "version": 0
}

Get alert rule

This endpoint is used to retrieve alert rule data.

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

select
string (select)

WBQL select expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/alertRule?customerId=182'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "sort": "string",
  • "content": [
    ]
}

alert

Alert management

Get alert

This endpoint is used to retrieve alert data.

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/alert?customerId=182'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "sort": "string",
  • "content": [
    ]
}

Get datasource alert

This endpoint is used to retrieve datasource alert data.

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/alert/datasource?customerId=182'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "sort": "string",
  • "content": [
    ]
}

Get device alert

This endpoint is used to retrieve device alert data.

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/alert/device?customerId=182'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "sort": "string",
  • "content": [
    ]
}

Get all device alert

This endpoint is used to retrieve device alert data.

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/alert/device/all?customerId=182'

Response samples

Content type
application/json
{
  • "alertRuleId": 0,
  • "alertRuleName": "string",
  • "createdAtDate": "string",
  • "deviceGroupId": "string",
  • "deviceGroupPath": "string",
  • "deviceId": "string",
  • "deviceLastActivity": "string",
  • "deviceLastStatusChange": "string",
  • "deviceName": "string",
  • "id": 0
}

log

Log management

Delete log

Responses

Request samples

curl -X DELETE \
  '{{server_root}}/api/log/'

Get log

This endpoint is used to retrieve log data.

query Parameters
customerId
integer (customerId)
search
string (search)

WBQL search expression

page
integer (page)
Default: 0

Page index

size
integer (size)
Default: 20

Size of page

sort
string (sort)

Sort expression

select
string (select)

WBQL select expression

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/log/?customerId=182'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "sort": "string",
  • "content": [
    ]
}

Get specific log

This endpoint is used to retrieve device or content log data.

query Parameters
customerId
integer (customerId)
deviceId
string

Either contentId or deviceId must be filled.

contentId
string

Either contentId or deviceId must be filled.

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/log/specific?customerId=182&contentId=bbc27d811cfe44d18eae17bb2734122e'

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "size": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "sort": "string",
  • "content": [
    ]
}

Get log csv

This endpoint is used to retrieve log data in csv format.

query Parameters
customerId
integer (customerId)
fromDate
date
toDate
date

Responses

Request samples

curl -X GET \
  '{{server_root}}/api/log/csv?customerId=182'

Response samples

Content type
application/json
{
  • "timestamp": "string",
  • "contentName": "string",
  • "deviceName": "string",
  • "userEmail": "string",
  • "logLevel": "INFO",
  • "message": "string"
}