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

#Backup overview

GET/v2/app/rmm-backups

Every device's file, whole-device and database backups, plus Proxmox guest coverage.

Address
https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).

Response 200

FieldTypeDescription
min_agentany
Example response
JSON
{
  "…await backups.overview(r": "…",
  "min_agent": null,
  "…perms(req)": "…"
}

Example request

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

#A device's backup jobs and history

GET/v2/app/rmm-backups/devices/:id
Address
https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/devices/:id
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

Example response
JSON
{
  "…await backups.deviceDeta": "…",
  "…perms(req)": "…"
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/devices/42' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Create a backup job

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

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
jobany
Example response
JSON
{
  "job": null
}

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/devices/42/jobs' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Update a backup job

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

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
jobany
Example response
JSON
{
  "job": null
}

Example request

Bash
curl -X PUT 'https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/jobs/42' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Delete a backup job

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

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

Example request

Bash
curl -X DELETE 'https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/jobs/42' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Back up now

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

Path parameters

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
fullanytrue takes a full backup instead of an incremental.

Response 200

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/jobs/42/run' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"full":"…"}'

#Browse the files in a backup

GET/v2/app/rmm-backups/runs/:id/browse
Address
https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/runs/:id/browse
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).

Path parameters

NameTypeDescription
idrequiredinteger

Query parameters

NameTypeDescription
pathstring

Response 200

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/runs/42/browse' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Download a backup

GET/v2/app/rmm-backups/runs/:id/download

Needs rmm.backups.download; audited.

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

Path parameters

NameTypeDescription
idrequiredinteger

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/runs/42/download' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Delete a backup

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

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
okboolean
Example response
JSON
{
  "ok": true
}

Example request

Bash
curl -X DELETE 'https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/runs/42' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Restore from a backup

POST/v2/app/rmm-backups/runs/:id/restore

Needs rmm.backups.restore; audited. Restores to the same device or another with the same OS.

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

Path parameters

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
target_device_idintegerThe device to restore to.
pathsarray of anyFiles and folders to restore (empty for everything).
destinationstringoriginal (where they came from) or folder.
folderanyThe folder to restore into, with destination: folder.
overwriteanyReplace files that already exist.

Response 200

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/runs/42/restore' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"target_device_id":7,"paths":[],"destination":"string","folder":"…","overwrite":"…"}'