Skip to content

Update device group

PUT/device-groups/{id}

Mobile API · DeviceGroups

Update device group.

Required permissionmobile.device-group:update

Parameters

Name In Type Required Description
id path string (uuid) Yes Unique object identifier.
X-Tenant-ID header string (uuid) Yes Tenant ID.
fields query array of string No The fields to return in a partial response.
view query string No Type of view to be returned in response.
Must be one of: basic, summary, full.

Request body

Content type: application/json

Request body fields

namestringrequired
The device group name.
Must be at most 100 characters long.
descriptionstring
A description of the device group.
Must be at most 500 characters long.
employeeCompliancePolicyIdstring (uuid)required
ID of the compliance policy for devices owned by the user.
corporateCompliancePolicyIdstring (uuid)required
ID of the compliance policy for devices owned by the organization.
iosAutoEnrollmentobject
Settings for iOS auto-enrollment in mobile device groups.
Show child attributesHide child attributes
enabledbooleanrequired
Whether this device group is assigned to iOS devices that auto-enroll with Sophos Mobile..
installSmcAppboolean
Whether the SMC app will be installed via MDM during enrollment.

Request samples

curl -X PUT "https://api-<data-region>.central.sophos.com/mobile/v1/device-groups/<id>" -H "Authorization: Bearer <access-token>" -H "X-Tenant-ID: <tenant-id>" -H "Content-Type: application/json" -d "{
  \"name\": \"My renamed device group\",
  \"employeeCompliancePolicyId\": \"5C821A6D-8CD0-41FA-BE00-920BCEE025BC\",
  \"corporateCompliancePolicyId\": \"32DBD7D0-23F7-4DAF-AF4E-FEA7036D0304\"
}"

import requests

response = requests.put(
    "https://api-<data-region>.central.sophos.com/mobile/v1/device-groups/<id>",
    headers={
        "Authorization": "Bearer <access-token>",
        "X-Tenant-ID": "<tenant-id>",
        "Content-Type": "application/json",
    },
    json={   'name': 'My renamed device group',
    'employeeCompliancePolicyId': '5C821A6D-8CD0-41FA-BE00-920BCEE025BC',
    'corporateCompliancePolicyId': '32DBD7D0-23F7-4DAF-AF4E-FEA7036D0304'},
)
print(response.json())

$headers = @{
    "Authorization" = "Bearer <access-token>"
    "X-Tenant-ID" = "<tenant-id>"
    "Content-Type" = "application/json"
}
$body = '{
  "name": "My renamed device group",
  "employeeCompliancePolicyId": "5C821A6D-8CD0-41FA-BE00-920BCEE025BC",
  "corporateCompliancePolicyId": "32DBD7D0-23F7-4DAF-AF4E-FEA7036D0304"
}'
Invoke-RestMethod -Method PUT -Uri "https://api-<data-region>.central.sophos.com/mobile/v1/device-groups/<id>" -Headers $headers -Body $body -ContentType "application/json"

package main

import (
    "fmt"
    "io"
    "net/http"
    "strings"
)

func main() {
    req, err := http.NewRequest("PUT", "https://api-<data-region>.central.sophos.com/mobile/v1/device-groups/<id>", strings.NewReader(`{
  "name": "My renamed device group",
  "employeeCompliancePolicyId": "5C821A6D-8CD0-41FA-BE00-920BCEE025BC",
  "corporateCompliancePolicyId": "32DBD7D0-23F7-4DAF-AF4E-FEA7036D0304"
}`))
    if err != nil {
        panic(err)
    }
    req.Header.Set("Authorization", "Bearer <access-token>")
    req.Header.Set("X-Tenant-ID", "<tenant-id>")
    req.Header.Set("Content-Type", "application/json")

    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}

const response = await fetch("https://api-<data-region>.central.sophos.com/mobile/v1/device-groups/<id>", {
  method: "PUT",
  headers: {
    "Authorization": "Bearer <access-token>",
    "X-Tenant-ID": "<tenant-id>",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
  "name": "My renamed device group",
  "employeeCompliancePolicyId": "5C821A6D-8CD0-41FA-BE00-920BCEE025BC",
  "corporateCompliancePolicyId": "32DBD7D0-23F7-4DAF-AF4E-FEA7036D0304"
}),
});
const data = await response.json();
console.log(data);

Responses

200 — The updated device group.

Response fields

idstring (uuid)required
ID of the device group.
tenantobjectrequired
Tenant this resource belongs to.
Show child attributesHide child attributes
idstring (uuid)required
namestring
namestring
The device group name.
Must be at most 100 characters long.
descriptionstring
A description of the device group.
Must be at most 500 characters long.
createdAtstring (date-time)
The time when the device group was created.
updatedAtstring (date-time)
The last time when the device group was updated.
createdByobject
Principal reference.
Show child attributesHide child attributes
idstring (uuid)
Principal ID.
typestring (enum)required
Principal type.
Must be one of: user, service, system.
accountIdstring (uuid)
Account ID.
accountTypestring (enum)
Account type.
Must be one of: partner, tenant, organization.
namestring
Principal name or email.
updatedByobject
Principal reference.
Show child attributesHide child attributes
idstring (uuid)
Principal ID.
typestring (enum)required
Principal type.
Must be one of: user, service, system.
accountIdstring (uuid)
Account ID.
accountTypestring (enum)
Account type.
Must be one of: partner, tenant, organization.
namestring
Principal name or email.
employeeCompliancePolicyobject
A compliance policy reference.
Show child attributesHide child attributes
idstring (uuid)required
Unique ID of the compliance policy.
namestring
The compliance policy name.
corporateCompliancePolicyobject
A compliance policy reference.
Show child attributesHide child attributes
idstring (uuid)required
Unique ID of the compliance policy.
namestring
The compliance policy name.
iosAutoEnrollmentobject
Settings for iOS auto-enrollment in mobile device groups.
Show child attributesHide child attributes
enabledboolean
Whether this device group is assigned to iOS devices that auto-enroll with Sophos Mobile.
installSmcAppboolean
Whether the SMC app will be installed via MDM during enrollment.
urlstring (url)
The URL one must enter in Apple Configurator when configuring devices for auto-enrollment.

Errors

Status Meaning
400 Invalid request.
401 Unauthorized.
403 Forbidden.
404 Request contains no object.
409 Conflicting modification.
429 Too many requests. See Retry-After header.
500 Internal server error.

All error responses share the same shape — see the error response object.

Response examples

200

{
  "id": "c9c9b03c-5cf7-4fe1-93bb-246afc9044d2",
  "tenant": {
    "id": "b8a75c7d-7492-4009-9f95-8c815551dc55",
    "name": "The name of the tenant"
  },
  "name": "My device group",
  "employeeCompliancePolicy": {
    "id": "5C821A6D-8CD0-41FA-BE00-920BCEE025BC",
    "name": "The name of the compliance policy"
  },
  "corporateCompliancePolicy": {
    "id": "5C821A6D-8CD0-41FA-BE00-920BCEE025BC",
    "name": "The name of the compliance policy"
  }
}

See the guide for a narrative walkthrough of this API.