RMM: checks & alerts

Checks watch devices and raise alerts: CPU, memory and disk, stopped services, offline devices, containers, Proxmox and backup health, HTTP/TCP/ping, network devices and interfaces, database and device backups. Each check has a severity, the devices it applies to (assignments), and actions to take when it fires (notify a channel).

MethodPathSummary
GET/v1/admin/rmm/checksList checks
GET/v1/admin/rmm/checks/:idGet a check with its actions and assignments
POST/v1/admin/rmm/checksCreate a check
PUT/v1/admin/rmm/checks/:idUpdate a check
POST/v1/admin/rmm/checks/:id/toggleTurn a check on or off
DELETE/v1/admin/rmm/checks/:idDelete a check
GET/v1/admin/rmm/alerts/statsAlert statistics
GET/v1/admin/rmm/alertsList alerts
POST/v1/admin/rmm/alerts/:id/resolveResolve an alert
GET/v1/admin/rmm/alerts/activeList active alerts

#List checks

GET/v1/admin/rmm/checks
Address
https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): rmm.checks.view, rmm.checks.manage, rmm.alerts.resolve, rmm.integrations.manage.

Response 200

FieldTypeDescription
checksarray of any
Example response
JSON
{
  "checks": []
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Get a check with its actions and assignments

GET/v1/admin/rmm/checks/:id
Address
https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks/:id
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): rmm.checks.view, rmm.checks.manage, rmm.alerts.resolve, rmm.integrations.manage.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
checkany
actionsarray of any
assignmentsarray of any
Example response
JSON
{
  "check": null,
  "actions": [],
  "assignments": []
}

Errors

StatusMessage
404Check not found

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks/42' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Create a check

POST/v1/admin/rmm/checks
Address
https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): rmm.checks.manage.

Request body JSON

NameTypeDescription
namerequiredstringThe check's name.
descriptionstring
check_typerequiredstring: "cpu_usage" | "ram_usage" | "disk_usage" | "disk_free" | "service_stopped" | "device_offline" | "docker_container_down" | "proxmox_guest_down" | "pbs_datastore_usage" | "http_check" | "tcp_check" | "ping_check" | "proxmox_host_health" | "proxmox_backup_missing" | "network_device_down" | "network_interface_down" | "mysql_backup" | "device_backup"
check_configrequiredobjectSettings for the check type, e.g. { "threshold": 90, "duration_minutes": 10 } for CPU.
severityany: "info" | "warning" | "critical"
actionsarray of anyWhat to do when it fires, e.g. [{ "type": "channel", "channel_id": 3 }].
assignmentsarray of anyWhere it applies: all devices, sites, groups or single devices.

Response 201

FieldTypeDescription
messagestring
check_idinteger
Example response
JSON
{
  "message": "Saved",
  "check_id": 7
}

Errors

StatusMessage
400name, check_type and check_config are required
400Unknown action_type

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","description":"string","check_type":"cpu_usage","check_config":{},"severity":"info","actions":[],"assignments":[]}'

#Update a check

PUT/v1/admin/rmm/checks/:id
Address
https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks/:id
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): rmm.checks.manage.

Path parameters

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
namestring
descriptionstring
check_typestring
check_configany
severityany
actionsarray of any
assignmentsarray of any

Response 200

FieldTypeDescription
messagestring
Example response
JSON
{
  "message": "Saved"
}

Errors

StatusMessage
400Unknown action_type
404Check not found

Example request

Bash
curl -X PUT 'https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks/42' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","description":"string","check_type":"string","check_config":"…","severity":"…","actions":[],"assignments":[]}'

#Turn a check on or off

POST/v1/admin/rmm/checks/:id/toggle
Address
https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks/:id/toggle
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): rmm.checks.manage.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
messagestring
Example response
JSON
{
  "message": "Saved"
}

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks/42/toggle' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Delete a check

DELETE/v1/admin/rmm/checks/:id
Address
https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks/:id
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): rmm.checks.manage.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
messagestring
Example response
JSON
{
  "message": "Saved"
}

Example request

Bash
curl -X DELETE 'https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks/42' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Alert statistics

GET/v1/admin/rmm/alerts/stats

Active alerts by severity and scope, the trend, and the noisiest checks and devices.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/rmm/alerts/stats
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): rmm.checks.view, rmm.checks.manage, rmm.alerts.resolve, rmm.integrations.manage.

Response 200

FieldTypeDescription
active_totalany
active_by_severityarray of object
active_by_severity[].severityany
active_by_severity[].cntinteger
active_by_scopeany
trendany
top_checksarray of object
top_checks[].check_idinteger
top_checks[].check_namestring, or null
top_checks[].cntinteger
top_devicesarray of object
top_devices[].device_idstring, or null
top_devices[].device_namestring, or null
top_devices[].cntinteger
Example response
JSON
{
  "active_total": null,
  "active_by_severity": [
    {
      "severity": null,
      "cnt": 1
    }
  ],
  "active_by_scope": null,
  "trend": null,
  "top_checks": [
    {
      "check_id": 7,
      "check_name": "Example check name",
      "cnt": 1
    }
  ],
  "top_devices": [
    {
      "device_id": "string",
      "device_name": "Example device name",
      "cnt": 1
    }
  ]
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/rmm/alerts/stats' \
  -H "X-API-Key: $BRAMBLE_KEY"

#List alerts

GET/v1/admin/rmm/alerts
Address
https://<your-org>.brambleit.cloud/api/v1/admin/rmm/alerts
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): rmm.checks.view, rmm.checks.manage, rmm.alerts.resolve, rmm.integrations.manage.

Response 200

FieldTypeDescription
alertsarray of any
Example response
JSON
{
  "alerts": []
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/rmm/alerts' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Resolve an alert

POST/v1/admin/rmm/alerts/:id/resolve
Address
https://<your-org>.brambleit.cloud/api/v1/admin/rmm/alerts/:id/resolve
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): rmm.alerts.resolve, rmm.checks.manage.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
messagestring
Example response
JSON
{
  "message": "Saved"
}

Errors

StatusMessage
404Alert not found or already resolved

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/rmm/alerts/42/resolve' \
  -H "X-API-Key: $BRAMBLE_KEY"

#List active alerts

GET/v1/admin/rmm/alerts/active
Address
https://<your-org>.brambleit.cloud/api/v1/admin/rmm/alerts/active
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): rmm.checks.view, rmm.checks.manage, rmm.alerts.resolve, rmm.integrations.manage.

Response 200

FieldTypeDescription
alertsarray of any
Example response
JSON
{
  "alerts": []
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/rmm/alerts/active' \
  -H "X-API-Key: $BRAMBLE_KEY"