Skip to content

Remove devices from a device group

DELETE
/api/v1/device-groups/{id}/members
curl --request DELETE \
--url http://localhost:3000/api/v1/device-groups/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/members \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <X-API-Key>' \
--data '{ "deviceIds": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] }'

Idempotent: devices that are not members are listed in notMemberDeviceIds. Deployments that reached a removed device only through this group are split off in the same transaction; the workload stays installed.

id
required
string format: uuid

Device group UUID

x-organization-id
string format: uuid

UUID of the organization (tenant) the request acts in. It selects the tenant and grants nothing: the server checks membership or an open tenant switch. Not needed for global operations. A malformed value returns 400. API keys are fixed to their own organization; another organization returns 403. The x-organization-source header grants nothing.

Media typeapplication/json
object
deviceIds
required

Devices to add or remove (1 to 1000, unique)

Array<string>
>= 1 items <= 1000 items
Examplegenerated
{
"deviceIds": [
"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
]
}
Media typeapplication/json
object
removedDeviceIds
required
Array<string>
notMemberDeviceIds
required

Devices that were not members (ignored)

Array<string>
splits
required

Per device, the deployments split off from their source deployment

Array<object>
object
key
additional properties
any
removedDeploymentIds
required

Source deployments left without a target

Array<string>
Examplegenerated
{
"removedDeviceIds": [
"example"
],
"notMemberDeviceIds": [
"example"
],
"splits": [
{}
],
"removedDeploymentIds": [
"example"
]
}

Invalid body

Forbidden — caller lacks required permission

Group not found