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 an attribute is not present it means NULL (to lower the overall traffic).

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
[
  • {
    }
]

Delete file

This endpoint is used to delete file by fileId.

path Parameters
fileId
required
string

Responses

Request samples

curl -X DELETE \
  '{{server_root}}/api/file/9d1db619f8364d5cb18c3853cb69c056'

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 (workingTime)
object (affectedDays)
object (affectedDates)
object (tagCondition)
object (tagCondition)
object (tagCondition)
type
string (campaignType)
Enum: "CONTENT" "CONTENT_BY_TAG" "MESSAGE_GROUP" "ASSETS_STATIC" "ASSETS_DYNAMIC" "SIMPLE_LOOP" "SIMPLE_LOOP_BY_TAG"
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

Create message

query Parameters
customerId
integer (customerId)
teamIds
string
Example: teamIds=000c08d294df48efb1b0f5aa754d7ef9:true,00a22e86602c4a88914614aa9516a481:false

It is mandatory to choose from the own teams if the user belongs to at least one team and have a lower role than owner.

includeReadOnlyInfo
boolean (includeReadOnlyInfo)
Default: false

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

Request Body schema: application/json
required
text
string
validFrom
string
validTo
string
object

It is mandatory to choose from the own teams if the user belongs to at least one team and have a lower role than owner.

type
string
Enum: "CONTENT" "ASSETS_STATIC" "ASSETS_DYNAMIC" "TEXT" "SIMPLE_LOOP"
contentId
string
simpleLoopId
string
weight
integer
skipDefaultPage
boolean
enabled
boolean
object
object (affectedDays)
messageGroupId
integer
name
string
deviceGroupId
string
saturation
integer
tags
Array of strings
defaultDuration
integer
orderingMode
string
Enum: "RANDOM" "ALPHABET" "DEFAULT"
object
advertiserId
string
object
object
object
object

Responses

Request samples

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