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

#?site_id=&group_id= (RMM2's selection) narrows the device counts

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

Response 200

FieldTypeDescription
appsarray of any
platformsarray of any
managersarray of any
min_agentany
canobject
can.manageany
can.deployany
Example response
JSON
{
  "apps": [],
  "platforms": [],
  "managers": [],
  "min_agent": null,
  "can": {
    "manage": null,
    "deploy": null
  }
}

Example request

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

#Check an exact package name

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

Query parameters

NameTypeDescription
managerany
idinteger

Response 200

FieldTypeDescription
foundboolean
packageany
Example response
JSON
{
  "found": false,
  "package": null
}

Example request

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

#Sites, groups and devices an app can be assigned to

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

Response 200

FieldTypeDescription
sitesarray of any
groupsarray of any
devicesarray of any
Example response
JSON
{
  "sites": [],
  "groups": [],
  "devices": []
}

Example request

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

#Add an app to the catalogue

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

Request body JSON

NameTypeDescription
namestringThe app's name.
publisheranyWho makes it.
descriptionstring
sourcesarray of anyWhere to install it from per platform, e.g. winget id, apt package, Flathub id.
assignmentsarray of anyWho gets it: required / uninstall / exclude, for all devices, sites, groups or devices.

Response 201

FieldTypeDescription
idinteger
Example response
JSON
{
  "id": 42
}

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v2/app/rmm-apps/apps' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","publisher":"…","description":"string","sources":[],"assignments":[]}'

#Get an app

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

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

Errors

StatusMessage
404App not found

Example request

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

#Update an app

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

Path parameters

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
namestring
publisherany
descriptionstring
sourcesarray of any
assignmentsarray of any

Response 200

FieldTypeDescription
idinteger
Example response
JSON
{
  "id": 42
}

Errors

StatusMessage
404App not found

Example request

Bash
curl -X PUT 'https://<your-org>.brambleit.cloud/api/v2/app/rmm-apps/apps/42' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","publisher":"…","description":"string","sources":[],"assignments":[]}'

#Remove an app from the catalogue

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

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

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

Errors

StatusMessage
404App not found

Example request

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

#Start uploading an installer (Windows MSI/EXE)

POST/v2/app/rmm-apps/apps/:id/installers

Returns an upload id. Send the file in parts with the PUT …/parts/:n endpoint, then call …/complete.

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

Path parameters

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
file_namestringThe installer's file name.
sizeintegerIts size in bytes.
versionanyThe app version it installs.
argsarray of anySilent-install arguments.

Response 201

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v2/app/rmm-apps/apps/42/installers' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"file_name":"Example file name","size":1,"version":"…","args":[]}'

#Upload one part of an installer

PUT/v2/app/rmm-apps/apps/:id/installers/:iid/parts/:n

The request body is the raw bytes of part n.

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

Path parameters

NameTypeDescription
idrequiredinteger
iidrequiredinteger
nrequirednumber

Response 200

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

Example request

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

#Finish an installer upload

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

Path parameters

NameTypeDescription
idrequiredinteger
iidrequiredinteger

Response 200

Example response
JSON
true

Example request

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

#Delete an uploaded installer

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

Path parameters

NameTypeDescription
idrequiredinteger
iidrequiredinteger

Response 200

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

Example request

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

#Push an app's assignments to devices now

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

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
queuedany
Example response
JSON
{
  "queued": null
}

Errors

StatusMessage
404App not found

Example request

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

#A device's managed apps and their state

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

Path parameters

NameTypeDescription
deviceIdrequiredinteger

Response 200

FieldTypeDescription
canobject
can.manageany
can.deployany
Example response
JSON
{
  "…r": "…",
  "can": {
    "manage": null,
    "deploy": null
  }
}

Errors

StatusMessage
404Device not found

Example request

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

#Install an app on a device once

POST/v2/app/rmm-apps/device/:deviceId/install
Address
https://<your-org>.brambleit.cloud/api/v2/app/rmm-apps/device/:deviceId/install
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): rmm.apps.deploy.

Path parameters

NameTypeDescription
deviceIdrequiredinteger

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v2/app/rmm-apps/device/1/install' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Uninstall an app from a device

POST/v2/app/rmm-apps/device/:deviceId/uninstall
Address
https://<your-org>.brambleit.cloud/api/v2/app/rmm-apps/device/:deviceId/uninstall
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): rmm.apps.deploy.

Path parameters

NameTypeDescription
deviceIdrequiredinteger

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v2/app/rmm-apps/device/1/uninstall' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Clear an app's state on a device

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

Path parameters

NameTypeDescription
deviceIdrequiredstring
appIdrequirednumber

Response 200

FieldTypeDescription
removedinteger
Example response
JSON
{
  "removed": 1
}

Example request

Bash
curl -X DELETE 'https://<your-org>.brambleit.cloud/api/v2/app/rmm-apps/device/string/apps/12.5' \
  -H "X-API-Key: $BRAMBLE_KEY"