DeviceGroups
get_devicegroups
List all device groups.
Route: /api/v0/devicegroups
Input (JSON):
-
Examples:
curl -H 'X-Auth-Token: YOURAPITOKENHERE' https://librenms.org/api/v0/devicegroups
Output:
[
{
"status": "ok",
"message": "Found 1 device groups",
"count": 1,
"groups": [
{
"id": "1",
"name": "Testing",
"desc": "Testing",
"pattern": "%devices.status = \"1\" &&"
}
]
}
]
add_devicegroup
Add a new device group. Upon success, the ID of the new device group is returned and the HTTP response code is 201
.
Route: /api/v0/devicegroups
Input (JSON):
name
: required - The name of the device grouptype
: required - should bestatic
ordynamic
. Setting this to static requires that the devices input be provideddesc
: optional - Description of the device grouprules
: required if type == dynamic - A set of rules to determine which devices should be included in this device groupdevices
: required if type == static - A list of devices that should be included in this group. This is a static list of devices
Examples:
Dynamic Example:
curl -H 'X-Auth-Token: YOURAPITOKENHERE' \
-X POST https://librenms.org/api/v0/devicegroups \
--data-raw '
{
"name": "New Device Group",
"desc": "A very fancy dynamic group",
"type": "dynamic",
"rules": "{\"condition\":\"AND\",\"rules\":[{\"id\":\"access_points.name\",\"field\":\"access_points.name\",\"type\":\"string\",\"input\":\"text\",\"operator\":\"equal\",\"value\":\"accesspoint1\"}],\"valid\":true}"
}
'
Output:
{
"status": "ok",
"id": 86,
"message": "Device group New Device Group created"
}
Static Example:
curl -H 'X-Auth-Token: YOURAPITOKENHERE' \
-X POST https://librenms.org/api/v0/devicegroups \
-d '{"name":"New Device Group","type":"static","devices":[261,271]}'
Output:
{
"status": "ok",
"id": 86,
"message": "Device group New Device Group created"
}
update_devicegroup
Updates a device group.
Route: /api/v0/devicegroups/:name
- name Is the name of the device group which can be obtained using
get_devicegroups
. Please ensure that the name is urlencoded if it needs to be (i.e Linux Servers would need to be urlencoded.
Input (JSON):
name
: optional - The name of the device grouptype
: optional - should bestatic
ordynamic
. Setting this to static requires that the devices input be provideddesc
: optional - Description of the device grouprules
: required if type == dynamic - A set of rules to determine which devices should be included in this device groupdevices
: required if type == static - A list of devices that should be included in this group. This is a static list of devices
Examples:
curl -X PATCH -d '{"name": "NewLinuxServers"}' -H 'X-Auth-Token: YOURAPITOKENHERE' https://librenms.org/api/v0/devices/LinuxServers
Output:
{
"status": "ok",
"message": "Device group LinuxServers updated"
}
delete_devicegroup
Deletes a device group.
Route: /api/v0/devicegroups/:name
- name Is the name of the device group which can be obtained using
get_devicegroups
. Please ensure that the name is urlencoded if it needs to be (i.e Linux Servers would need to be urlencoded.
Input:
-
Examples:
curl -X DELETE -H 'X-Auth-Token: YOURAPITOKENHERE' https://librenms.org/api/v0/devices/LinuxServers
Output:
{
"status": "ok",
"message": "Device group LinuxServers deleted"
}
get_devices_by_group
List all devices matching the group provided.
Route: /api/v0/devicegroups/:name
- name Is the name of the device group which can be obtained using
get_devicegroups
. Please ensure that the name is urlencoded if it needs to be (i.e Linux Servers would need to be urlencoded.
Input (JSON):
- full: set to any value to return all data for the devices in a given group
Examples:
curl -H 'X-Auth-Token: YOURAPITOKENHERE' https://librenms.org/api/v0/devicegroups/LinuxServers
Output:
[
{
"status": "ok",
"message": "Found 3 in group LinuxServers",
"count": 3,
"devices": [
{
"device_id": "15"
},
{
"device_id": "18"
},
{
"device_id": "20"
}
]
}
]
maintenance_devicegroup
Set a device group into maintenance mode.
Route: /api/v0/devicegroups/:name/maintenance
Input (JSON):
title
: optional - Some title for the Maintenance
Will be replaced with device group name if omittednotes
: optional - Some description for the Maintenancestart
: optional - start time of Maintenance in full formatY-m-d H:i:00
eg: 2022-08-01 22:45:00
Current system timenow()
will be used if omittedduration
: required - Duration of Maintenance in formatH:i
/Hrs:Mins
eg: 02:00
Example with start time:
curl -H 'X-Auth-Token: YOURAPITOKENHERE' \
-X POST https://librenms.org/api/v0/devicegroups/Cisco%20switches/maintenance/ \
--data-raw '
{
"title":"Device group Maintenance",
"notes":"A 2 hour Maintenance triggered via API with start time",
"start":"2022-08-01 08:00:00",
"duration":"2:00"
}
'
Output:
{
"status": "ok",
"message": "Device group Cisco switches (2) will begin maintenance mode at 2022-08-01 22:45:00 for 2:00h"
}
Example with no start time:
curl -H 'X-Auth-Token: YOURAPITOKENHERE' \
-X POST https://librenms.org/api/v0/devicegroups/Cisco%20switches/maintenance/ \
--data-raw '
{
"title":"Device group Maintenance",
"notes":"A 2 hour Maintenance triggered via API with no start time",
"duration":"2:00"
}
'
Output:
{
"status": "ok",
"message": "Device group Cisco switches (2) moved into maintenance mode for 2:00h"
}
Add devices to group
Add devices to a device group.
Route: /api/v0/devicegroups/:name/devices
- name Is the name of the device group which can be obtained using
get_devicegroups
. Please ensure that the name is urlencoded if it needs to be (i.e Linux Servers would need to be urlencoded.
Input (JSON):
devices
: required - A list of devices to be added to the group.
Example:
curl -H 'X-Auth-Token: YOURAPITOKENHERE' \
-X POST https://librenms.org/api/v0/devicegroups/devices \
--data-raw '{"devices":[261,271]}'
Output:
{
"status": "ok",
"message": "Devices added"
}
Remove devices from group
Removes devices from a device group.
Route: /api/v0/devicegroups/:name/devices
- name Is the name of the device group which can be obtained using
get_devicegroups
. Please ensure that the name is urlencoded if it needs to be (i.e Linux Servers would need to be urlencoded.
Input (JSON):
devices
: required - A list of devices to be removed from the group.
Example:
curl -H 'X-Auth-Token: YOURAPITOKENHERE' \
-X DELETE https://librenms.org/api/v0/devicegroups/devices \
--data-raw '{"devices":[261,271]}'
Output:
{
"status": "ok",
"message": "Devices removed"
}