Skip to content

Partially update a device group
Stable

Request

Partially updates one or more properties of a device group without requiring all fields to be present in the request body. Like the full update endpoint, the action query parameter specifies the operation being performed — but here only the fields relevant to that action need to be included. Use this endpoint instead of PUT when making a single targeted change, such as renaming a group or adding a small set of devices, without needing to supply the full group object.

action query parameter values

add — Add the devices specified in device_ids to the group remove — Remove the devices specified in device_ids from the group rename — Rename the group using the name field move — Move the group under a new parent using the parent field

Request body fields (all optional)

name — Group display name; used with rename parent — UUID of the new parent group; used with move device_ids — Array of device UUIDs; used with add / remove

Common Use Cases

Renaming a group without affecting its membership or hierarchy Adding or removing a subset of devices without resending the full group payload Moving a group to a new parent as part of a hierarchy reorganization

Best Practices

Prefer this endpoint over PUT for single-field changes — it reduces payload size and minimizes the risk of accidentally overwriting other fields Always supply the action query parameter and ensure the body fields match the intended action Use GET /enterprise/{enterprise_id}/devicegroup/{group_id}/ to verify the current group state before and after updates

Security
esper_cloud_api_apiKey
Path
group_idstring, (uuid)required

A UUID string identifying this enterprise device group.

enterprise_idstringrequired

A UUID string identifying enterprise.

Query
actionstring

add / remove / rename / move

Body*/*required
namestring(Name)

Group name

parentstring, (uuid)(Parent)

Parent group id

device_idsArray of strings, (uuid), unique(Device ids)

Device ids

cURL
curl -i -X PATCH \
  'https://api.esper.io/_mock/openapi/enterprise/{enterprise_id}/devicegroup/{group_id}/?action=string' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: */*' \
  -d '{
    "name": "string",
    "parent": "42e2bc1b-6741-4e2e-b138-97b4a342c999",
    "device_ids": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ]
  }'

Responses

successful operation

Bodyapplication/json
idstring, (uuid)(Id)read-only

Group id

namestring(Name)required

Group name

created_onstring, (date-time)(Created on)read-only

Date and time of when the group was created

enterprisestring, (url)(Enterprise)read-only

Enterprise url

parentstring, (url)(Parent)

Parent group url

device_countinteger(Device count)read-only

Count of devices in the group

pathstring(Path)read-only

Path of the group

children_countinteger(Children count)read-only

Count of child groups

thumbnailstring, (uuid)(thumbnail)

thumbnail associated with the group

blueprintstring, (uuid)(Blueprint)read-only

Blueprint associated with the group.

Response
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "created_on": "2019-08-24T14:15:22Z", "enterprise": "string", "parent": "string", "device_count": 0, "path": "string", "children_count": 0, "thumbnail": "dec11f24-4767-4257-ac7d-bde137bc173e", "blueprint": "f63e6a96-31ed-4c31-b384-a8046257f34c" }