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

#List scripts (legacy)

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

Response 200

FieldTypeDescription
scriptsarray of object
scripts[].idinteger
scripts[].tenant_idinteger, or null
scripts[].namestring
scripts[].descriptionstring, or null
scripts[].languagestring
scripts[].timeout_secondsinteger
scripts[].versioninteger
scripts[].is_enabledboolean
scripts[].is_globalboolean
scripts[].is_systemboolean
scripts[].created_atstring (date-time)
scripts[].updated_atstring (date-time)
Example response
JSON
{
  "scripts": [
    {
      "id": 42,
      "tenant_id": 1,
      "name": "Example name",
      "description": "string",
      "language": "string",
      "timeout_seconds": 1,
      "version": 1,
      "is_enabled": true,
      "is_global": true,
      "is_system": true,
      "created_at": "2026-11-12T09:30:00.000Z",
      "updated_at": "2026-11-12T09:30:00.000Z"
    }
  ]
}

Errors

StatusMessage
400tenant_id is required
404User not found

Example request

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

#Get a script (legacy)

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

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
scriptany
Example response
JSON
{
  "script": null
}

Errors

StatusMessage
400tenant_id is required
404Script not found

Example request

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

#Create a script (legacy)

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

Request body JSON

NameTypeDescription
namerequiredstring
descriptionstring
languagerequiredany
script_bodyrequiredany
timeout_secondsarray of any

Response 200

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

Errors

StatusMessage
400Missing required fields

Example request

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

#Update a script (legacy)

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

Path parameters

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
namestring
descriptionstring
languageany
script_bodyany
timeout_secondsarray of any
is_enabledboolean

Response 200

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

Errors

StatusMessage
404Script not found
403System/global scripts cannot be edited
403Script does not belong to tenant

Example request

Bash
curl -X PUT 'https://<your-org>.brambleit.cloud/api/v1/app/rmm/scripts/42' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","description":"string","language":"…","script_body":"…","timeout_seconds":[],"is_enabled":true}'

#Delete a script (legacy)

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

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

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

Errors

StatusMessage
400tenant_id is required
404Script not found
403System/global scripts cannot be deleted
403Script does not belong to tenant

Example request

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

#Run a script on a device (legacy)

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

Request body JSON

NameTypeDescription
script_idrequiredinteger
device_idrequiredinteger
script_argsarray of any

Response 200

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

Errors

StatusMessage
400tenant_id, user_id, script_id and device_id are required
404User not found
404Device not found
403Device does not belong to tenant
404Script not found

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/app/rmm/scripts/run' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"script_id":7,"device_id":7,"script_args":[]}'

#List scripts

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

Response 200

FieldTypeDescription
scriptsarray of any
Example response
JSON
{
  "scripts": []
}

Errors

StatusMessage
404User not found

Example request

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

#List script folders

GET/v2/app/rmm/script-categories

Read-only: folders are only created/renamed/deleted from BRM-Admin's Scripts tab. RMM2 just needs the tree to group the run-script picker.

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

Response 200

FieldTypeDescription
categoriesarray of any
Example response
JSON
{
  "categories": []
}

Errors

StatusMessage
404User not found

Example request

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

#Get a script

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

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
scriptany
Example response
JSON
{
  "script": null
}

Errors

StatusMessage
404User not found
404Script not found

Example request

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

#Create a script

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

Request body JSON

NameTypeDescription
namerequiredstringThe script's name.
descriptionstring
languagerequiredanyThe interpreter, e.g. bash, powershell, python.
script_bodyrequiredanyThe script itself.
timeout_secondsarray of anyStop it after this many seconds.

Response 201

FieldTypeDescription
messagestring
script_idinteger
Example response
JSON
{
  "message": "Saved",
  "script_id": 7
}

Errors

StatusMessage
400name, language, and script_body are required
404User not found

Example request

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

#Update a script

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

Path parameters

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
namestring
descriptionstring
languageany
script_bodyany
timeout_secondsarray of any
is_enabledboolean

Response 200

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

Errors

StatusMessage
404User not found
404Script not found
403System/global scripts cannot be edited
403Script does not belong to your tenant

Example request

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

#Delete a script

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

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

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

Errors

StatusMessage
404User not found
404Script not found
403System/global scripts cannot be deleted
403Script does not belong to your tenant

Example request

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

#Run a script on a device

POST/v2/app/rmm/scripts/run

Needs rmm.scripts.run. Queues the script; its output appears in the device's command list.

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

Request body JSON

NameTypeDescription
script_idrequirednumberThe script.
device_idrequiredintegerThe device.
script_argsarray of anyArguments for the script.

Response 201

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

Errors

StatusMessage
400script_id and device_id are required
404User not found
404Device not found
403Device does not belong to your tenant
404Script not found

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v2/app/rmm/scripts/run' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"script_id":12.5,"device_id":7,"script_args":[]}'