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).
| Method | Path | Summary |
|---|---|---|
| GET | /v1/admin/rmm/checks | List checks |
| GET | /v1/admin/rmm/checks/:id | Get a check with its actions and assignments |
| POST | /v1/admin/rmm/checks | Create a check |
| PUT | /v1/admin/rmm/checks/:id | Update a check |
| POST | /v1/admin/rmm/checks/:id/toggle | Turn a check on or off |
| DELETE | /v1/admin/rmm/checks/:id | Delete a check |
| GET | /v1/admin/rmm/alerts/stats | Alert statistics |
| GET | /v1/admin/rmm/alerts | List alerts |
| POST | /v1/admin/rmm/alerts/:id/resolve | Resolve an alert |
| GET | /v1/admin/rmm/alerts/active | List 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
| Field | Type | Description |
|---|---|---|
checks | array 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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks' -Headers $headers#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
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
check | any | |
actions | array of any | |
assignments | array of any |
Example response
JSON
{
"check": null,
"actions": [],
"assignments": []
}Errors
| Status | Message |
|---|---|
| 404 | Check 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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks/42', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks/42",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks/42' -Headers $headers#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
| Name | Type | Description |
|---|---|---|
namerequired | string | The check's name. |
description | string | |
check_typerequired | string: "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_configrequired | object | Settings for the check type, e.g. { "threshold": 90, "duration_minutes": 10 } for CPU. |
severity | any: "info" | "warning" | "critical" | |
actions | array of any | What to do when it fires, e.g. [{ "type": "channel", "channel_id": 3 }]. |
assignments | array of any | Where it applies: all devices, sites, groups or single devices. |
Response 201
| Field | Type | Description |
|---|---|---|
message | string | |
check_id | integer |
Example response
JSON
{
"message": "Saved",
"check_id": 7
}Errors
| Status | Message |
|---|---|
| 400 | name, check_type and check_config are required |
| 400 | Unknown 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":[]}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"name":"Example name","description":"string","check_type":"cpu_usage","check_config":{},"severity":"info","actions":[],"assignments":[]}),
});
const data = await res.json();Python
import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"name":"Example name","description":"string","check_type":"cpu_usage","check_config":{},"severity":"info","actions":[],"assignments":[]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"name":"Example name","description":"string","check_type":"cpu_usage","check_config":{},"severity":"info","actions":[],"assignments":[]}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks' -Headers $headers -ContentType 'application/json' -Body $body#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
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
name | string | |
description | string | |
check_type | string | |
check_config | any | |
severity | any | |
actions | array of any | |
assignments | array of any |
Response 200
| Field | Type | Description |
|---|---|---|
message | string |
Example response
JSON
{
"message": "Saved"
}Errors
| Status | Message |
|---|---|
| 400 | Unknown action_type |
| 404 | Check 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":[]}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks/42', {
method: 'PUT',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"name":"Example name","description":"string","check_type":"string","check_config":"…","severity":"…","actions":[],"assignments":[]}),
});
const data = await res.json();Python
import os, requests
r = requests.put(
"https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks/42",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"name":"Example name","description":"string","check_type":"string","check_config":"…","severity":"…","actions":[],"assignments":[]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"name":"Example name","description":"string","check_type":"string","check_config":"…","severity":"…","actions":[],"assignments":[]}'
Invoke-RestMethod -Method PUT -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks/42' -Headers $headers -ContentType 'application/json' -Body $body#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
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
message | string |
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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks/42/toggle', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks/42/toggle",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks/42/toggle' -Headers $headers#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
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
message | string |
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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks/42', {
method: 'DELETE',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.delete(
"https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks/42",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method DELETE -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/rmm/checks/42' -Headers $headers#Alert statistics
GET
/v1/admin/rmm/alerts/statsActive 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
| Field | Type | Description |
|---|---|---|
active_total | any | |
active_by_severity | array of object | |
active_by_severity[].severity | any | |
active_by_severity[].cnt | integer | |
active_by_scope | any | |
trend | any | |
top_checks | array of object | |
top_checks[].check_id | integer | |
top_checks[].check_name | string, or null | |
top_checks[].cnt | integer | |
top_devices | array of object | |
top_devices[].device_id | string, or null | |
top_devices[].device_name | string, or null | |
top_devices[].cnt | integer |
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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/rmm/alerts/stats', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/rmm/alerts/stats",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/rmm/alerts/stats' -Headers $headers#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
| Field | Type | Description |
|---|---|---|
alerts | array 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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/rmm/alerts', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/rmm/alerts",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/rmm/alerts' -Headers $headers#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
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
message | string |
Example response
JSON
{
"message": "Saved"
}Errors
| Status | Message |
|---|---|
| 404 | Alert 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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/rmm/alerts/42/resolve', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/admin/rmm/alerts/42/resolve",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/rmm/alerts/42/resolve' -Headers $headers#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
| Field | Type | Description |
|---|---|---|
alerts | array 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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/rmm/alerts/active', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/rmm/alerts/active",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/rmm/alerts/active' -Headers $headersWas this page helpful?
Thanks for your feedback.