---
title: "Partially update a device group"
method: PATCH
path: "/enterprise/{enterprise_id}/devicegroup/{group_id}/"
tags: ["esper_cloud_api_Device Group"]
---

# Partially update a device group

`PATCH /enterprise/{enterprise_id}/devicegroup/{group_id}/`

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

## Path parameters

- `group_id` string, uuid, required
- `enterprise_id` string, required

## Query parameters

- `action` string

## Response `200`

successful operation

- EsperCloudApiDeviceGroup
  - `id` string, uuid — Group id
  - `name` string, required — Group name
  - `created_on` string, date-time — Date and time of when the group was created
  - `enterprise` string, url — Enterprise url
  - `parent` string, url — Parent group url
  - `device_count` integer — Count of devices in the group
  - `path` string — Path of the group
  - `children_count` integer — Count of child groups
  - `thumbnail` string, uuid — thumbnail associated with the group
  - `blueprint` string, uuid — Blueprint associated with the group.

## Other responses

- `400` — Bad request
- `401` — Authorization information is missing or invalid.
- `403` — Forbidden, no permission to perform this action.
- `404` — Not Found.
- `500` — Internal server error

---

[API](https://skmtc.net/esper/apis/esper-api-reference.md) · [All operations](https://skmtc.net/esper/apis/esper-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/esper/esper-api-reference/versions/e1f64cbb488e/schema)
