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.
| Method | Path | Summary |
|---|---|---|
| GET | /v2/app/rmm-backups | Backup overview |
| GET | /v2/app/rmm-backups/devices/:id | A device's backup jobs and history |
| POST | /v2/app/rmm-backups/devices/:id/jobs | Create a backup job |
| PUT | /v2/app/rmm-backups/jobs/:id | Update a backup job |
| DELETE | /v2/app/rmm-backups/jobs/:id | Delete a backup job |
| POST | /v2/app/rmm-backups/jobs/:id/run | Back up now |
| GET | /v2/app/rmm-backups/runs/:id/browse | Browse the files in a backup |
| GET | /v2/app/rmm-backups/runs/:id/download | Download a backup |
| DELETE | /v2/app/rmm-backups/runs/:id | Delete a backup |
| POST | /v2/app/rmm-backups/runs/:id/restore | Restore from a backup |
#Backup overview
GET
/v2/app/rmm-backupsEvery 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
| Field | Type | Description |
|---|---|---|
min_agent | any |
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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups', {
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/v2/app/rmm-backups",
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/v2/app/rmm-backups' -Headers $headers#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
| Name | Type | Description |
|---|---|---|
idrequired | integer |
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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/devices/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/v2/app/rmm-backups/devices/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/v2/app/rmm-backups/devices/42' -Headers $headers#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
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
job | any |
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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/devices/42/jobs', {
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/v2/app/rmm-backups/devices/42/jobs",
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/v2/app/rmm-backups/devices/42/jobs' -Headers $headers#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
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
job | any |
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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/jobs/42', {
method: 'PUT',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.put(
"https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/jobs/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 PUT -Uri 'https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/jobs/42' -Headers $headers#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
| Name | Type | Description |
|---|---|---|
idrequired | integer |
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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/jobs/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/v2/app/rmm-backups/jobs/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/v2/app/rmm-backups/jobs/42' -Headers $headers#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
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
full | any | true 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":"…"}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/jobs/42/run', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"full":"…"}),
});
const data = await res.json();Python
import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/jobs/42/run",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"full":"…"},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"full":"…"}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/jobs/42/run' -Headers $headers -ContentType 'application/json' -Body $body#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
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Query parameters
| Name | Type | Description |
|---|---|---|
path | string |
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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/runs/42/browse', {
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/v2/app/rmm-backups/runs/42/browse",
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/v2/app/rmm-backups/runs/42/browse' -Headers $headers#Download a backup
GET
/v2/app/rmm-backups/runs/:id/downloadNeeds 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
| Name | Type | Description |
|---|---|---|
idrequired | integer |
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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/runs/42/download', {
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/v2/app/rmm-backups/runs/42/download",
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/v2/app/rmm-backups/runs/42/download' -Headers $headers#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
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
ok | boolean |
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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/runs/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/v2/app/rmm-backups/runs/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/v2/app/rmm-backups/runs/42' -Headers $headers#Restore from a backup
POST
/v2/app/rmm-backups/runs/:id/restoreNeeds 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
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
target_device_id | integer | The device to restore to. |
paths | array of any | Files and folders to restore (empty for everything). |
destination | string | original (where they came from) or folder. |
folder | any | The folder to restore into, with destination: folder. |
overwrite | any | Replace 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":"…"}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/runs/42/restore', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"target_device_id":7,"paths":[],"destination":"string","folder":"…","overwrite":"…"}),
});
const data = await res.json();Python
import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/runs/42/restore",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"target_device_id":7,"paths":[],"destination":"string","folder":"…","overwrite":"…"},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"target_device_id":7,"paths":[],"destination":"string","folder":"…","overwrite":"…"}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v2/app/rmm-backups/runs/42/restore' -Headers $headers -ContentType 'application/json' -Body $bodyWas this page helpful?
Thanks for your feedback.