Skip to main content

Wallboard API - Alerts & Notifications (2.0)

API Support: [email protected]

Alert rules and notification channel management for the Wallboard digital signage platform.

Overview

Alerts notify administrators when devices go offline, data sources fail, or other conditions are met. Notification channels define how alerts are delivered.

Key Concepts

Concept Description
Alert Triggered notification when a condition is violated
Alert Rule Definition of when and how to trigger alerts
Notification Channel Delivery method for alerts (Email, SMS, Push)
Condition What triggers the alert (offline, error count, etc.)

Alert Rule Types

Type JSON Type Name Description
Device Offline DeviceOffline Device hasn't communicated within threshold
Datasource Error DatasourceError Data source refresh error count exceeded
Device Status Changed DeviceStatusChanged Device status changed to specified state
Device Metric DeviceMetricChanged Device metric exceeded threshold

Notification Channels

Type Description
EMAIL Email notification to specified addresses
SMS SMS text message notification
PUSH Push notification to mobile app
ALL All available notification methods

Working Hours

Alert rules can be configured to only evaluate during specific:

  • Working days: Specific days of the week
  • Working hours: Time range during the day

Filtering

Use WBQL in the search parameter. Key fields:

Filter Type Field Example
Team teamAssignments.team.id search=teamAssignments.team.id=team1
Alert type type search=type=DeviceOffline
Name name search=name:offline
Enabled enabled search=enabled=true

See Getting Started for full WBQL syntax.

alert

Alert viewing

List all alerts

Retrieve a paginated list of triggered alerts.

Minimum role: OWNER with customer selector

Authorizations:
bearer
query Parameters
customerId
integer <int64>

Customer/tenant ID for multi-tenant filtering.

  • Required for ADMIN users to select tenant context
  • Non-admin users can omit (defaults to their tenant)
search
string

WBQL (Wallboard Query Language) search expression for filtering.

Examples:

  • name:myalert - name contains "myalert"
  • enabled:true - only enabled rules
page
integer >= 0
Default: 0

Page index (0-based)

size
integer [ 1 .. 1000 ]
Default: 20

Number of elements per page (max 1000)

sort
string
Example: sort=name,asc

Sort expression. Format: field,direction

  • Directions: asc, desc
  • Multiple sorts: sort=name,asc&sort=createdAtDate,desc

Responses

Request samples

curl -X GET \
  'https://{server}/api/alert?customerId=182&page=0&size=15&sort=name' \
  -H 'Authorization: Bearer <token>'

Response samples

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

List device alerts

Retrieve a paginated list of device-related alerts.

Minimum role: VIEWER with customer selector

Authorizations:
bearer
query Parameters
customerId
integer <int64>

Customer/tenant ID for multi-tenant filtering.

  • Required for ADMIN users to select tenant context
  • Non-admin users can omit (defaults to their tenant)
search
string

WBQL (Wallboard Query Language) search expression for filtering.

Examples:

  • name:myalert - name contains "myalert"
  • enabled:true - only enabled rules
page
integer >= 0
Default: 0

Page index (0-based)

size
integer [ 1 .. 1000 ]
Default: 20

Number of elements per page (max 1000)

sort
string
Example: sort=name,asc

Sort expression. Format: field,direction

  • Directions: asc, desc
  • Multiple sorts: sort=name,asc&sort=createdAtDate,desc

Responses

Request samples

curl -X GET \
  'https://{server}/api/alert/device?customerId=182&page=0&size=15&sort=name' \
  -H 'Authorization: Bearer <token>'

Response samples

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

Get all device alerts (non-paginated)

Retrieve all device-related alerts without pagination.

Minimum role: VIEWER with customer selector

Authorizations:
bearer
query Parameters
customerId
integer <int64>

Customer/tenant ID for multi-tenant filtering.

  • Required for ADMIN users to select tenant context
  • Non-admin users can omit (defaults to their tenant)
search
string

WBQL (Wallboard Query Language) search expression for filtering.

Examples:

  • name:myalert - name contains "myalert"
  • enabled:true - only enabled rules

Responses

Request samples

curl -X GET \
  'https://{server}/api/alert/device/all?customerId=182' \
  -H 'Authorization: Bearer <token>'

Response samples

Content type
application/json
[
  • {
    }
]

List data source alerts

Retrieve a paginated list of data source-related alerts.

Minimum role: VIEWER with customer selector

Authorizations:
bearer
query Parameters
customerId
integer <int64>

Customer/tenant ID for multi-tenant filtering.

  • Required for ADMIN users to select tenant context
  • Non-admin users can omit (defaults to their tenant)
search
string

WBQL (Wallboard Query Language) search expression for filtering.

Examples:

  • name:myalert - name contains "myalert"
  • enabled:true - only enabled rules
page
integer >= 0
Default: 0

Page index (0-based)

size
integer [ 1 .. 1000 ]
Default: 20

Number of elements per page (max 1000)

sort
string
Example: sort=name,asc

Sort expression. Format: field,direction

  • Directions: asc, desc
  • Multiple sorts: sort=name,asc&sort=createdAtDate,desc

Responses

Request samples

curl -X GET \
  'https://{server}/api/alert/datasource?customerId=182&page=0&size=15&sort=name' \
  -H 'Authorization: Bearer <token>'

Response samples

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

alert rule

Alert rule configuration

List alert rules

Retrieve a paginated list of alert rules.

Minimum role: TECHNICIAN with customer selector

Authorizations:
bearer
query Parameters
customerId
integer <int64>

Customer/tenant ID for multi-tenant filtering.

  • Required for ADMIN users to select tenant context
  • Non-admin users can omit (defaults to their tenant)
search
string

WBQL (Wallboard Query Language) search expression for filtering.

Examples:

  • name:myalert - name contains "myalert"
  • enabled:true - only enabled rules
page
integer >= 0
Default: 0

Page index (0-based)

size
integer [ 1 .. 1000 ]
Default: 20

Number of elements per page (max 1000)

sort
string
Example: sort=name,asc

Sort expression. Format: field,direction

  • Directions: asc, desc
  • Multiple sorts: sort=name,asc&sort=createdAtDate,desc

Responses

Request samples

curl -X GET \
  'https://{server}/api/alertRule?customerId=182&page=0&size=15&sort=name' \
  -H 'Authorization: Bearer <token>'

Response samples

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

Create alert rule

Create a new alert rule.

Minimum role: TECHNICIAN with customer selector

Authorizations:
bearer
query Parameters
customerId
integer <int64>

Customer/tenant ID for multi-tenant filtering.

  • Required for ADMIN users to select tenant context
  • Non-admin users can omit (defaults to their tenant)
teamIds
string
Example: teamIds=000c08d294df48efb1b0f5aa754d7ef9:false

Team assignment for resource creation. Format: {teamId}:{readOnly}

Request Body schema: application/json
required
@type
required
string (AlertRuleType)
Enum: "DeviceOffline" "DatasourceError" "DeviceStatusChanged" "DeviceMetricChanged"

Type of alert rule. Used as discriminator for polymorphic serialization.

name
required
string

Alert rule name (unique per customer)

comment
string

Optional description or notes

enabled
boolean
Default: true

Whether the alert rule is active

object (AlertRuleCondition)

Alert rule condition. Structure depends on the @type discriminator.

Condition Types:

  • DeviceOfflineAndNoActivityForMinutes - Device offline condition
  • DeviceStatusChangedCondition - Device status change condition
  • DatasourceRefreshErrorCondition - Data source error condition
  • DeviceMetricChangedCondition - Device metric condition
delayEvaluateAfterViolationMinutes
integer >= 0
Default: 60

Minutes to wait before re-evaluating after a violation

scheduledEvaluateSeconds
integer >= 0
Default: 60

Seconds between scheduled evaluations

object (WorkingDays)

Days when alert should be evaluated

object (WorkingTime)

Time range when alert should be evaluated

Array of objects (NotificationChannelRef)

Notification channels to use when alert triggers

object (TeamAccessList)

Responses

Request samples

Content type
application/json
Example
{
  • "@type": "DeviceOffline",
  • "name": "Device Offline Alert",
  • "comment": "Alert when devices are offline for 30 minutes",
  • "enabled": true,
  • "condition": {
    },
  • "delayEvaluateAfterViolationMinutes": 60,
  • "workingDays": {
    },
  • "notificationChannels": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 336,
  • "@type": "DeviceOffline",
  • "name": "Device Offline Alert",
  • "comment": "Alert when devices are offline",
  • "enabled": true,
  • "condition": {
    },
  • "delayEvaluateAfterViolationMinutes": 60,
  • "scheduledEvaluateSeconds": 60,
  • "workingDays": {
    }
}

Update alert rule

Update an existing alert rule.

Minimum role: TECHNICIAN

Authorizations:
bearer
path Parameters
alertRuleId
required
integer <int64>

Alert rule ID

Request Body schema: application/json
required
@type
required
string (AlertRuleType)
Enum: "DeviceOffline" "DatasourceError" "DeviceStatusChanged" "DeviceMetricChanged"

Type of alert rule. Used as discriminator for polymorphic serialization.

name
required
string

Alert rule name (unique per customer)

comment
string

Optional description or notes

enabled
boolean
Default: true

Whether the alert rule is active

object (AlertRuleCondition)

Alert rule condition. Structure depends on the @type discriminator.

Condition Types:

  • DeviceOfflineAndNoActivityForMinutes - Device offline condition
  • DeviceStatusChangedCondition - Device status change condition
  • DatasourceRefreshErrorCondition - Data source error condition
  • DeviceMetricChangedCondition - Device metric condition
delayEvaluateAfterViolationMinutes
integer >= 0
Default: 60

Minutes to wait before re-evaluating after a violation

scheduledEvaluateSeconds
integer >= 0
Default: 60

Seconds between scheduled evaluations

object (WorkingDays)

Days when alert should be evaluated

object (WorkingTime)

Time range when alert should be evaluated

Array of objects (NotificationChannelRef)

Notification channels to use when alert triggers

object (TeamAccessList)

Responses

Request samples

Content type
application/json
{
  • "id": 336,
  • "@type": "DeviceOffline",
  • "name": "Device Offline Alert",
  • "comment": "Alert when devices are offline",
  • "enabled": true,
  • "condition": {
    },
  • "delayEvaluateAfterViolationMinutes": 60,
  • "scheduledEvaluateSeconds": 60,
  • "workingDays": {
    }
}

Response samples

Content type
application/json
{
  • "id": 336,
  • "@type": "DeviceOffline",
  • "name": "Device Offline Alert",
  • "comment": "Alert when devices are offline",
  • "enabled": true,
  • "condition": {
    },
  • "delayEvaluateAfterViolationMinutes": 60,
  • "scheduledEvaluateSeconds": 60,
  • "workingDays": {
    }
}

Delete alert rule

Delete an alert rule.

Minimum role: TECHNICIAN

Authorizations:
bearer
path Parameters
alertRuleId
required
integer <int64>

Alert rule ID

Responses

Request samples

curl -X DELETE \
  'https://{server}/api/alertRule/336' \
  -H 'Authorization: Bearer <token>'

Update team assignments

Update the team assignments for an alert rule.

Minimum role: OWNER with customer selector

Authorizations:
bearer
query Parameters
customerId
integer <int64>

Customer/tenant ID for multi-tenant filtering.

  • Required for ADMIN users to select tenant context
  • Non-admin users can omit (defaults to their tenant)
alertRuleId
required
integer <int64>

Alert rule ID

Request Body schema: application/json
required
Array of objects

Teams to assign the resource to

removeFromTeamIds
Array of strings

Team IDs to remove the resource from

Responses

Request samples

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

notification channel

Notification delivery channels

List notification channels

Retrieve a paginated list of notification channels.

Minimum role: TECHNICIAN with customer selector

Authorizations:
bearer
query Parameters
customerId
integer <int64>

Customer/tenant ID for multi-tenant filtering.

  • Required for ADMIN users to select tenant context
  • Non-admin users can omit (defaults to their tenant)
search
string

WBQL (Wallboard Query Language) search expression for filtering.

Examples:

  • name:myalert - name contains "myalert"
  • enabled:true - only enabled rules
page
integer >= 0
Default: 0

Page index (0-based)

size
integer [ 1 .. 1000 ]
Default: 20

Number of elements per page (max 1000)

sort
string
Example: sort=name,asc

Sort expression. Format: field,direction

  • Directions: asc, desc
  • Multiple sorts: sort=name,asc&sort=createdAtDate,desc

Responses

Request samples

curl -X GET \
  'https://{server}/api/alertRuleNotificationChannel?customerId=182&page=0&size=15&sort=name' \
  -H 'Authorization: Bearer <token>'

Response samples

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

Create notification channel

Create a new notification channel.

Minimum role: TECHNICIAN with customer selector

Authorizations:
bearer
query Parameters
customerId
integer <int64>

Customer/tenant ID for multi-tenant filtering.

  • Required for ADMIN users to select tenant context
  • Non-admin users can omit (defaults to their tenant)
teamIds
string
Example: teamIds=000c08d294df48efb1b0f5aa754d7ef9:false

Team assignment for resource creation. Format: {teamId}:{readOnly}

Request Body schema: application/json
required
name
required
string

Channel name (unique per customer)

comment
string

Optional description or notes

channelType
required
string (NotificationChannelType)
Enum: "EMAIL" "SMS" "PUSH" "ALL"

Notification delivery method

notify
Array of strings

Recipients list. Content depends on channelType:

  • EMAIL: email addresses
  • SMS: phone numbers
  • PUSH: device tokens

Responses

Request samples

Content type
application/json
Example
{}

Response samples

Content type
application/json
{}

Update notification channel

Update an existing notification channel.

Minimum role: TECHNICIAN

Authorizations:
bearer
path Parameters
id
required
integer <int64>

Notification channel ID

Request Body schema: application/json
required
name
required
string

Channel name (unique per customer)

comment
string

Optional description or notes

channelType
required
string (NotificationChannelType)
Enum: "EMAIL" "SMS" "PUSH" "ALL"

Notification delivery method

notify
Array of strings

Recipients list. Content depends on channelType:

  • EMAIL: email addresses
  • SMS: phone numbers
  • PUSH: device tokens

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Delete notification channel

Delete a notification channel.

Note: Cannot delete a notification channel that is assigned to an alert rule.

Minimum role: TECHNICIAN

Authorizations:
bearer
path Parameters
id
required
integer <int64>

Notification channel ID

Responses

Request samples

curl -X DELETE \
  'https://{server}/api/alertRuleNotificationChannel/15' \
  -H 'Authorization: Bearer <token>'

Update team assignments

Update the team assignments for a notification channel.

Minimum role: OWNER with customer selector

Authorizations:
bearer
query Parameters
customerId
integer <int64>

Customer/tenant ID for multi-tenant filtering.

  • Required for ADMIN users to select tenant context
  • Non-admin users can omit (defaults to their tenant)
notificationChannelId
required
integer <int64>

Notification channel ID

Request Body schema: application/json
required
Array of objects

Teams to assign the resource to

removeFromTeamIds
Array of strings

Team IDs to remove the resource from

Responses

Request samples

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