RMM API

Bramble RMM for technicians — devices, sites and groups, scripts, remote terminal and screen, checks and alerts, applications, backups, databases, logs, dashboards, virtualisation and network discovery — plus the API the Bramble agent itself uses. RMM settings (check definitions, scheduled tasks, enrolment keys, device management) are in the Admin Centre API.

Address
https://<your-org>.brambleit.cloud/api
Sign-in
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Endpoints
138
OpenAPI
rmm.json
Guides
How RMM works

v1 and v2. /v2/app/rmm... is what RMM uses today. Some /v1/app/rmm/... routes remain for older pages and agents and are marked legacy; prefer v2.

Scope. List endpoints follow the RMM site and group selector: pass site_id and/or group_id in the query to narrow them.

Permissions. Each area checks an RMM permission (rmm.devices.view, rmm.scripts.run, rmm.backups.restore…); see Licences & roles.

Devices are identified by their 32-character device_id string, not a number.

Resources

Devices, sites & groups

Devices and how they're organised into sites and groups; a device's details, utilisation history and commands; running a command on a device.

MethodPathSummary
GET/v1/app/rmm/sitesList sites (legacy)
GET/v1/app/rmm/deivce/:deivceid:Get a device (legacy, misspelt path)
POST/v1/app/rmm/groupsList groups in a site (legacy)
POST/v1/app/rmm/devicesList devices in a group (legacy)
POST/v1/app/rmm/device/utilizationA device's utilisation (legacy)
POST/v1/app/rmm/device/commandSend a command to a device (legacy)
GET/v1/app/rmm/device/:idGet a device (legacy)
POST/v1/app/rmm/group/commands/listRecent commands in a group (legacy)
POST/v1/app/rmm/device/commands/listA device's recent commands (legacy)
GET/v2/app/rmm/sitesList sites and groups
POST/v2/app/rmm/groupsList groups in a site
GET/v2/app/rmm/groups/:siteIdFetch groups for a specific site (tenant-scoped)
POST/v2/app/rmm/devicesBody { site_id?, group_id?
GET/v2/app/rmm/device/:idGet a device
PUT/v2/app/rmm/device/:idUpdate editable device fields
DELETE/v2/app/rmm/device/:idRemove a device from the dashboard immediately (hidden from every list/ get below) but defer the actual hard delete: queue the uninstall script, mark the dev…
POST/v2/app/rmm/device/:id/proxmox-configSave a Proxmox VE host's API login
POST/v2/app/rmm/device/:id/pbs-configSave a Proxmox Backup Server's API login
GET/v2/app/rmm/device/:id/backup-statusComputeGuestBackupPosture / summariseProxmoxHealth live in services/proxmox-health.js (shared with the check engine)
GET/v2/app/rmm/sites/:siteId/backup-coverageCross-references this site's Proxmox hosts against their linked PBS servers (which may live in a different site — see note above) to compute per-guest backup…
POST/v2/app/rmm/device/:id/fetch-logQueues a fetch_log command — the agent reads its own local agent.log (tail, capped at ~200KB) and returns it as the command's stdout
POST/v2/app/rmm/device/:id/refreshQueues a refresh_data command — the agent immediately re-posts heartbeat/utilization/full inventory instead of waiting for its normal 60s/30min timers
POST/v2/app/rmm/device/maintenance/toggleToggle maintenance mode for a device
POST/v2/app/rmm/device/commandSend a command to a device
POST/v2/app/rmm/device/commands/listA device's recent commands and their results
GET/v2/app/rmm/device/commands/:id/outputOutput of a command archived to BRM-Blob (services/rmm-history.js); the list endpoints return output_archived = 1 and no output for those
GET/v2/app/rmm/device/utilization/historyUtilisation for a device over a date range (YYYY-MM-DD), including days archived to BRM-Blob
POST/v2/app/rmm/group/commands/listCommand log for RMM2's site/group selection: body { site_id?, group_id?, limit } (neither = every device)
GET/v2/app/rmm/enrollment/keysList enrolment keys (for install commands)

Remote access

Opening a remote terminal or screen (VNC) session on a device. The response is a short-lived session the RMM page hands to Bramble Remote.

MethodPathSummary
POST/v1/app/rmm/device/terminal/sessionOpen a remote terminal (legacy)
POST/v2/app/rmm/device/terminal/sessionOpen a remote terminal
POST/v2/app/rmm/device/vnc/sessionOpen a remote screen (VNC)

Scripts

The script library and running a script on a device. Scripts are written in Admin Centre → RMM.

MethodPathSummary
GET/v1/app/rmm/scriptsList scripts (legacy)
GET/v1/app/rmm/scripts/:idGet a script (legacy)
POST/v1/app/rmm/scriptsCreate a script (legacy)
PUT/v1/app/rmm/scripts/:idUpdate a script (legacy)
DELETE/v1/app/rmm/scripts/:idDelete a script (legacy)
POST/v1/app/rmm/scripts/runRun a script on a device (legacy)
GET/v2/app/rmm/scriptsList scripts
GET/v2/app/rmm/script-categoriesList script folders
GET/v2/app/rmm/scripts/:idGet a script
POST/v2/app/rmm/scriptsCreate a script
PUT/v2/app/rmm/scripts/:idUpdate a script
DELETE/v2/app/rmm/scripts/:idDelete a script
POST/v2/app/rmm/scripts/runRun a script on a device

Checks & alerts

The monitoring checks that apply to devices, per-device exclusions and direct assignments, and the alerts they raise: list, acknowledge and resolve.

MethodPathSummary
GET/v2/app/rmm-checks/checksList monitoring checks
GET/v2/app/rmm-checks/checks/:idGet a single check with its actions and assignments
POST/v2/app/rmm-checks/checksCreate a monitoring check
PUT/v2/app/rmm-checks/checks/:idUpdate a check. Requires an active RMM license
POST/v2/app/rmm-checks/checks/:id/toggleToggle a check's enabled/disabled state
DELETE/v2/app/rmm-checks/checks/:idDelete a check. Requires an active RMM license
GET/v2/app/rmm-checks/device/:deviceId/checksList checks that apply to a device
POST/v2/app/rmm-checks/device/:deviceId/exclude/:checkIdToggle exclusion of a check for a specific device
POST/v2/app/rmm-checks/device/:deviceId/assign/:checkIdAssign an existing check directly to a device
GET/v2/app/rmm-checks/alertsList recent alert log entries
POST/v2/app/rmm-checks/alerts/:id/resolveManually resolve (dismiss) a firing alert
POST/v2/app/rmm-checks/alerts/acknowledgeAcknowledge firing alerts
GET/v2/app/rmm-checks/alerts/activeList currently firing alerts

Applications

The application catalogue (winget, apt, Snap, Flathub, dnf and uploaded installers), search across package sources, assignments (required, uninstall, exclude) to all devices, sites, groups or single devices, and one-off installs.

MethodPathSummary
GET/v2/app/rmm-apps?site_id=&group_id= (RMM2's selection) narrows the device counts
GET/v2/app/rmm-apps/searchSearch package sources
GET/v2/app/rmm-apps/lookupCheck an exact package name
GET/v2/app/rmm-apps/targetsSites, groups and devices an app can be assigned to
POST/v2/app/rmm-apps/appsAdd an app to the catalogue
GET/v2/app/rmm-apps/apps/:idGet an app
PUT/v2/app/rmm-apps/apps/:idUpdate an app
DELETE/v2/app/rmm-apps/apps/:idRemove an app from the catalogue
POST/v2/app/rmm-apps/apps/:id/installersStart uploading an installer (Windows MSI/EXE)
PUT/v2/app/rmm-apps/apps/:id/installers/:iid/parts/:nUpload one part of an installer
POST/v2/app/rmm-apps/apps/:id/installers/:iid/completeFinish an installer upload
DELETE/v2/app/rmm-apps/apps/:id/installers/:iidDelete an uploaded installer
POST/v2/app/rmm-apps/apps/:id/syncPush an app's assignments to devices now
GET/v2/app/rmm-apps/device/:deviceIdA device's managed apps and their state
POST/v2/app/rmm-apps/device/:deviceId/installInstall an app on a device once
POST/v2/app/rmm-apps/device/:deviceId/uninstallUninstall an app from a device
DELETE/v2/app/rmm-apps/device/:deviceId/apps/:appIdClear an app's state on a device

Backups

File and whole-device backups: jobs per device, runs, browsing a backup's files, downloads, and restoring to the same or another device. Backups are stored encrypted in Bramble. Restore and download need their own permissions and are audited.

MethodPathSummary
GET/v2/app/rmm-backupsBackup overview
GET/v2/app/rmm-backups/devices/:idA device's backup jobs and history
POST/v2/app/rmm-backups/devices/:id/jobsCreate a backup job
PUT/v2/app/rmm-backups/jobs/:idUpdate a backup job
DELETE/v2/app/rmm-backups/jobs/:idDelete a backup job
POST/v2/app/rmm-backups/jobs/:id/runBack up now
GET/v2/app/rmm-backups/runs/:id/browseBrowse the files in a backup
GET/v2/app/rmm-backups/runs/:id/downloadDownload a backup
DELETE/v2/app/rmm-backups/runs/:idDelete a backup
POST/v2/app/rmm-backups/runs/:id/restoreRestore from a backup

Databases

MySQL/MariaDB servers found on devices: overview, backup settings and backups, and opening a backup as a read-only copy to browse its tables.

MethodPathSummary
GET/v2/app/rmm-databasesDatabase servers overview
GET/v2/app/rmm-databases/devices/:idA server's databases, backups and settings
PUT/v2/app/rmm-databases/devices/:id/settingsSet a server's backup settings
POST/v2/app/rmm-databases/devices/:id/backupBack up databases now
POST/v2/app/rmm-databases/devices/:id/refreshRefresh a server's overview now
GET/v2/app/rmm-databases/backups/:id/downloadDownload a database backup
DELETE/v2/app/rmm-databases/backups/:idDelete a database backup
POST/v2/app/rmm-databases/backups/:id/openOpening a backup to look at its data: like a download, it shows everything
DELETE/v2/app/rmm-databases/mounts/:idClose an opened backup
POST/v2/app/rmm-databases/mounts/:id/queryBrowse an opened backup
GET/v2/app/rmm-databases/mounts/:id/queries/:qidResult of a browse request

Logs

Syslog collectors on devices and searching the collected logs.

MethodPathSummary
GET/v2/app/rmm-logsLog collectors and recent logs
GET/v2/app/rmm-logs/searchSearch collected logs
PUT/v2/app/rmm-logs/collectors/:deviceIdTurn a device into a syslog collector
DELETE/v2/app/rmm-logs/collectors/:deviceIdStop a syslog collector

Dashboards

Personal and shared dashboards built from RMM and Warden data, and the query endpoint widgets use.

MethodPathSummary
GET/v2/app/rmm-dashboardsList dashboards
POST/v2/app/rmm-dashboards/query?site_id=&group_id= — RMM2's site/group selection; every widget follows it (sources with no site, like network scan findings, cover the organisation)
POST/v2/app/rmm-dashboards/valuesValues a field can take (for widget filters)
POST/v2/app/rmm-dashboardsCreate a dashboard
PUT/v2/app/rmm-dashboards/:idUpdate a dashboard
POST/v2/app/rmm-dashboards/:id/duplicateCopy a dashboard
DELETE/v2/app/rmm-dashboards/:idDelete a dashboard

Virtualisation

Proxmox VE and Proxmox Backup Server hosts, their guests and backup coverage, and links between a PVE host and the PBS that backs it up.

MethodPathSummary
GET/v2/app/rmm/hypervisor-hostsTenant-wide list of devices flagged as Proxmox/PBS hosts, for the link picker on a device's Hypervisor tab and the site Backups tab
GET/v2/app/rmm/hypervisor-linksList PVE ↔ PBS links
POST/v2/app/rmm/hypervisor-linksLink a PVE host to its backup server
DELETE/v2/app/rmm/hypervisor-links/:idRemove a PVE ↔ PBS link
GET/v2/app/rmm/virtualisationEverything RMM2's Virtualisation view needs in one call: each Proxmox host with its live guests (status, CPU, RAM from the agent's inventory) and each guest'…

Network discovery

A device promoted to a network probe scans its subnets for devices that don't run the agent (printers, switches, cameras…). Configure, scan now, ping through it, and list what it found.

MethodPathSummary
POST/v2/app/rmm-network-probe/device/:id/promotePromote a device to a Network Probe
POST/v2/app/rmm-network-probe/device/:id/demoteDemote a device from Network Probe
GET/v2/app/rmm-network-probe/device/:idGet a device's Network Probe status and configuration
POST/v2/app/rmm-network-probe/device/:id/configSave a Network Probe's scan configuration
POST/v2/app/rmm-network-probe/device/:id/scan-nowTrigger an immediate subnet scan
POST/v2/app/rmm-network-probe/device/:id/pingRun an ad-hoc ping against a single host via a Network Probe
GET/v2/app/rmm-network-probe/groups/:groupId/discovered-devicesList discovered (non-agent) devices for a site group
GET/v2/app/rmm-network-probe/discovered-devicesSame as the group listing above, for RMM2's site/group selection: one group, a whole site, or (neither) every site
GET/v2/app/rmm-network-probe/discovered-device/:idGet full detail for one discovered network device

Network monitoring

Monitors for network devices: ping, TCP ports and SNMP (v2c or v3) with interface traffic history. Adopt a discovered device or add one by address.

MethodPathSummary
GET/v2/app/rmm-network-monitor/monitorsList with 24h uptime and a 60-minute latency spark
GET/v2/app/rmm-network-monitor/monitors/:idDetail: interfaces (latest rates) + 24h reachability
GET/v2/app/rmm-network-monitor/monitors/:id/interfaces/:ifIndexTraffic history for one port
POST/v2/app/rmm-network-monitor/monitors{ discovered_device_id } to adopt a discovered device, or { probe_device_id, ip_address, name } to add one by IP
PUT/v2/app/rmm-network-monitor/monitors/:idName, is_enabled, is_maintenance, check_ping, tcp_ports, snmp_enabled, snmp_version, snmp_community, snmp_v3
DELETE/v2/app/rmm-network-monitor/monitors/:idDelete a monitor

Agent versions

The current agent version per platform (used by agents and installers to update themselves), and publishing a new release.

MethodPathSummary
GET/v1/app/rmm/versionCurrent versions
GET/v1/app/rmm/version/agentCurrent agent version
GET/v1/app/rmm/version/agent/linuxCurrent Linux agent version and checksum
GET/v1/app/rmm/version/agent/windowsCurrent Windows agent version and checksum
GET/v1/app/rmm/version/agent/macosCurrent macOS agent version and checksum
GET/v1/app/rmm/version/agent/remoteCurrent Remote agent version and checksum
GET/v1/app/rmm/version/agent/legacyCurrent version for old agents
GET/v1/app/rmm/version/serverCurrent server version
POST/v1/app/rmm/release/agent/:platformPublish an agent release
GET/v2/app/rmm/version/agentCurrent agent version
GET/v2/app/rmm/versionCurrent versions