Skip to the content.

Alerts

Tools for monitoring and managing device alerts. Alerts are generated automatically when monitored conditions trigger — for example, when a device goes offline, encounters a content error, or exceeds resource thresholds.

An alert rule is the definition (the conditions to watch); an alert is an instance the rule produced. The tools below cover alerts; Alert Rules covers the rules themselves.


list_alerts

List alerts for the account. Returns alert objects with id, device reference, status (active/resolved), timestamps, and alert details.

Parameter Type Required Description
device_id string or string[] No Filter by device ID(s)
active_only boolean No Return only active (unresolved) alerts
resolved boolean No Include resolved alerts
org_id string No Filter by organization ID (multi-org accounts)
take number No Results per page
page number No Page number (1-based)

get_alert

Get detailed information about a specific alert including type, associated device, trigger condition, timestamps, and resolution status.

Parameter Type Required Description
id string Yes The alert ID

update_alert

Update an alert’s status — typically to mark it as resolved or acknowledged.

Parameter Type Required Description
id string Yes The alert ID
resolved boolean No Set to true to mark as resolved

Alert Rules

Alert rules define the conditions that generate alerts. They are GraphQL-only — there are no REST equivalents.

Reading rules uses the GraphQL query path:

build_query({ operation: "alertRule", preset: "basic" })  →  execute_query

The ruleSet format

ruleSet is the heart of a rule. It is an array of groups: groups are combined with AND, and the items within a group are combined with OR.

[
  { "items": [
      { "type": "CpuUsage",    "op": "GTE", "value": [90] },
      { "type": "MemoryUsage", "op": "GTE", "value": [95] }
  ]},
  { "items": [{ "type": "DiskUsage", "op": "GT", "value": [80] }] }
]

That rule fires when (CPU ≥ 90% or memory ≥ 95%) and disk > 80%.

Each item takes a type, an optional op (EQ, NE, GT, LT, GTE, LTE — defaults to EQ, which is rarely what you want, so set it), and a value array whose first element is the threshold.

type Unit
TimeOffline Minutes since last ping (device offline). Ignores op — always “offline for at least value minutes”
LastUpdate Minutes since last content check-in (content not in sync)
CpuUsage / MemoryUsage / DiskUsage Percent, averaged over period
SystemTemperature Degrees Celsius
NoContent Count of content items played in the window
ClockSkew Minutes of clock drift. Honors only GT / GTE
DisplayDetected Number of displays detected
BatteryVoltage / BatteryPercentage Volts / percent
BytesTxDay / BytesRxDay / BytesTotalDay KB over a fixed 24-hour window
BytesTxPeriod / BytesRxPeriod / BytesTotalPeriod KB over period

Condition types are case-sensitive, and the list is closed — an unrecognized type is rejected.


create_alert_rule

Create an alert rule.

Parameter Type Required Description
name string Yes Name of the alert rule
ruleSet group[] Yes The conditions — see the ruleSet format
isEnabled boolean No Whether the rule is evaluated
period number No Look-back window in minutes (default 60). Used by the time-window conditions; ignored by those that read the current value
webhookUrl string No HTTPS URL POSTed to when the rule triggers
allDevices boolean No Evaluate every device; ignores deviceIds
deviceIds string[] No Devices to evaluate (when allDevices is not set)
allUsers boolean No Notify every user; ignores userIds
userIds string[] No Users to notify (when allUsers is not set)
threshold number No Legacy — leave unset; put thresholds in each condition’s value

Example — alert when a lobby display has been offline for 30 minutes:

{
  "name": "Lobby display offline",
  "ruleSet": [{ "items": [{ "type": "TimeOffline", "value": [30] }] }],
  "deviceIds": ["<device-id>"],
  "allUsers": true,
  "isEnabled": true
}

update_alert_rule

Update an existing alert rule. Pass the complete desired state, not just the deltas — read the rule back first (build_query({ operation: "alertRule" })) so you don’t drop fields you meant to keep. Supplying ruleSet replaces the entire condition set.

Takes the same parameters as create_alert_rule, all optional, plus:

Parameter Type Required Description
id string Yes The alert rule ID to update

Set isEnabled: false to pause a rule without deleting it.


delete_alert_rule

Permanently delete an alert rule. It stops being evaluated and generates no further alerts. To pause a rule instead, use update_alert_rule with isEnabled: false.

Parameter Type Required Description
id string Yes The alert rule ID to delete

Back to Home