Skip to content

Update web filtering profile

PUT/profiles/{profileId}

Web Filtering API · Web Filtering Profile Management

Update an existing web filtering profile using its ID.

Required permissionweb-profiles:write

Parameters

Name In Type Required Description
X-Tenant-ID header string (uuid) Yes Tenant ID.
profileId path string (uuid) Yes Web filtering profile ID.

Request body

Content type: application/json

Request body fields

idstring (uuid)
Web filtering profile ID.
namestringrequired
Web filtering profile name.
Must be 1–50 characters long.
descriptionstring
Web filtering profile description.
Must be at most 250 characters long.
updatedAtstring (date-time)
Time the web filtering profile was last updated.
updatedByobject
Show child attributesHide child attributes
idstringrequired
Principal ID.
typestring (enum)required
Type of the Principal.
Must be one of: user, service, system.
namestring
Principal name.
accountTypestring
Account type.
Must be one of: partner, tenant, organization.
accountIdstring (uuid)
Account ID.
consumersarray of object
Resources that use the web filtering profile.
A resource that uses the web filtering profile.
Show child attributesHide child attributes
typestringrequired
Type of resource that uses web filtering profiles.
Must be one of: computerWebControlPolicy, serverWebControlPolicy, mobileWebControlPolicy.
idstringrequired
ID of the resource that uses the profile.
filterByCategoryboolean
Whether filtering by website category is turned on in this web filtering profile.
presetstring
Use a preset selection of website category filters. Overrides values defined by 'groups' and 'categories' fields.
categoryGroupActionsarray of object
Define actions for groups of website categories. Will be ignored if 'preset' is defined.
A group action defines the action for a group of website categories.
Show child attributesHide child attributes
namestringrequired
Name of the group of website categories.
actionstringrequired
Action to take.
Must be one of: allow, block, warn.
categoryActionsarray of object
Define actions for individual website categories. A website category will be ignored if 'preset' is defined or if it is covered by a group in 'groups'.
Defines the action taken for a website category.
Show child attributesHide child attributes
namestringrequired
Name of the website category.
actionstringrequired
Action to take.
Must be one of: allow, block, warn.
filterBySiteListboolean
Whether filtering by site list is turned on in this web filtering profile.
siteListActionsarray of object
Site list filters.
Defines the action taken for a site list, with each site list having a priority.
Show child attributesHide child attributes
idstring (uuid)required
ID of a site list.
actionstringrequired
Action to take.
Must be one of: allow, block, warn.
priorityintegerrequired
Priority of the site list. Higher value takes priority over lower. Each site list must have a unique priority value.
Must be ≥ 0.

Request samples

curl -X PUT "https://api-<data-region>.central.sophos.com/web-filters/v1/profiles/<profileId>" -H "Authorization: Bearer <access-token>" -H "X-Tenant-ID: <tenant-id>" -H "Content-Type: application/json" -d "{
  \"id\": \"00000000-0000-0000-0000-000000000000\",
  \"name\": \"string\",
  \"description\": \"string\",
  \"updatedAt\": \"2026-07-28T00:00:00Z\",
  \"updatedBy\": {
    \"id\": \"string\",
    \"type\": \"user\",
    \"name\": \"string\",
    \"accountType\": \"partner\",
    \"accountId\": \"00000000-0000-0000-0000-000000000000\"
  },
  \"consumers\": [
    {
      \"type\": \"computerWebControlPolicy\",
      \"id\": \"string\"
    }
  ],
  \"filterByCategory\": false,
  \"preset\": \"string\",
  \"categoryGroupActions\": [
    {
      \"name\": \"string\",
      \"action\": \"allow\"
    }
  ],
  \"categoryActions\": [
    {
      \"name\": \"string\",
      \"action\": \"allow\"
    }
  ],
  \"filterBySiteList\": false,
  \"siteListActions\": [
    {
      \"id\": \"00000000-0000-0000-0000-000000000000\",
      \"action\": \"allow\",
      \"priority\": 0
    }
  ]
}"

import requests

response = requests.put(
    "https://api-<data-region>.central.sophos.com/web-filters/v1/profiles/<profileId>",
    headers={
        "Authorization": "Bearer <access-token>",
        "X-Tenant-ID": "<tenant-id>",
        "Content-Type": "application/json",
    },
    json={   'id': '00000000-0000-0000-0000-000000000000',
    'name': 'string',
    'description': 'string',
    'updatedAt': '2026-07-28T00:00:00Z',
    'updatedBy': {   'id': 'string',
                     'type': 'user',
                     'name': 'string',
                     'accountType': 'partner',
                     'accountId': '00000000-0000-0000-0000-000000000000'},
    'consumers': [{'type': 'computerWebControlPolicy', 'id': 'string'}],
    'filterByCategory': False,
    'preset': 'string',
    'categoryGroupActions': [{'name': 'string', 'action': 'allow'}],
    'categoryActions': [{'name': 'string', 'action': 'allow'}],
    'filterBySiteList': False,
    'siteListActions': [   {   'id': '00000000-0000-0000-0000-000000000000',
                               'action': 'allow',
                               'priority': 0}]},
)
print(response.json())

$headers = @{
    "Authorization" = "Bearer <access-token>"
    "X-Tenant-ID" = "<tenant-id>"
    "Content-Type" = "application/json"
}
$body = '{
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "string",
  "description": "string",
  "updatedAt": "2026-07-28T00:00:00Z",
  "updatedBy": {
    "id": "string",
    "type": "user",
    "name": "string",
    "accountType": "partner",
    "accountId": "00000000-0000-0000-0000-000000000000"
  },
  "consumers": [
    {
      "type": "computerWebControlPolicy",
      "id": "string"
    }
  ],
  "filterByCategory": false,
  "preset": "string",
  "categoryGroupActions": [
    {
      "name": "string",
      "action": "allow"
    }
  ],
  "categoryActions": [
    {
      "name": "string",
      "action": "allow"
    }
  ],
  "filterBySiteList": false,
  "siteListActions": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "action": "allow",
      "priority": 0
    }
  ]
}'
Invoke-RestMethod -Method PUT -Uri "https://api-<data-region>.central.sophos.com/web-filters/v1/profiles/<profileId>" -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/web-filters/v1/profiles/<profileId>", strings.NewReader(`{
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "string",
  "description": "string",
  "updatedAt": "2026-07-28T00:00:00Z",
  "updatedBy": {
    "id": "string",
    "type": "user",
    "name": "string",
    "accountType": "partner",
    "accountId": "00000000-0000-0000-0000-000000000000"
  },
  "consumers": [
    {
      "type": "computerWebControlPolicy",
      "id": "string"
    }
  ],
  "filterByCategory": false,
  "preset": "string",
  "categoryGroupActions": [
    {
      "name": "string",
      "action": "allow"
    }
  ],
  "categoryActions": [
    {
      "name": "string",
      "action": "allow"
    }
  ],
  "filterBySiteList": false,
  "siteListActions": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "action": "allow",
      "priority": 0
    }
  ]
}`))
    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/web-filters/v1/profiles/<profileId>", {
  method: "PUT",
  headers: {
    "Authorization": "Bearer <access-token>",
    "X-Tenant-ID": "<tenant-id>",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "string",
  "description": "string",
  "updatedAt": "2026-07-28T00:00:00Z",
  "updatedBy": {
    "id": "string",
    "type": "user",
    "name": "string",
    "accountType": "partner",
    "accountId": "00000000-0000-0000-0000-000000000000"
  },
  "consumers": [
    {
      "type": "computerWebControlPolicy",
      "id": "string"
    }
  ],
  "filterByCategory": false,
  "preset": "string",
  "categoryGroupActions": [
    {
      "name": "string",
      "action": "allow"
    }
  ],
  "categoryActions": [
    {
      "name": "string",
      "action": "allow"
    }
  ],
  "filterBySiteList": false,
  "siteListActions": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "action": "allow",
      "priority": 0
    }
  ]
}),
});
const data = await response.json();
console.log(data);

Responses

200 — Success.

Response fields

idstring (uuid)
Web filtering profile ID.
namestringrequired
Web filtering profile name.
Must be 1–50 characters long.
descriptionstring
Web filtering profile description.
Must be at most 250 characters long.
updatedAtstring (date-time)
Time the web filtering profile was last updated.
updatedByobject
Show child attributesHide child attributes
idstringrequired
Principal ID.
typestring (enum)required
Type of the Principal.
Must be one of: user, service, system.
namestring
Principal name.
accountTypestring
Account type.
Must be one of: partner, tenant, organization.
accountIdstring (uuid)
Account ID.
consumersarray of object
Resources that use the web filtering profile.
A resource that uses the web filtering profile.
Show child attributesHide child attributes
typestringrequired
Type of resource that uses web filtering profiles.
Must be one of: computerWebControlPolicy, serverWebControlPolicy, mobileWebControlPolicy.
idstringrequired
ID of the resource that uses the profile.
filterByCategoryboolean
Whether filtering by website category is turned on in this web filtering profile.
presetstring
Use a preset selection of website category filters. Overrides values defined by 'groups' and 'categories' fields.
categoryGroupActionsarray of object
Define actions for groups of website categories. Will be ignored if 'preset' is defined.
A group action defines the action for a group of website categories.
Show child attributesHide child attributes
namestringrequired
Name of the group of website categories.
actionstringrequired
Action to take.
Must be one of: allow, block, warn.
categoryActionsarray of object
Define actions for individual website categories. A website category will be ignored if 'preset' is defined or if it is covered by a group in 'groups'.
Defines the action taken for a website category.
Show child attributesHide child attributes
namestringrequired
Name of the website category.
actionstringrequired
Action to take.
Must be one of: allow, block, warn.
filterBySiteListboolean
Whether filtering by site list is turned on in this web filtering profile.
siteListActionsarray of object
Site list filters.
Defines the action taken for a site list, with each site list having a priority.
Show child attributesHide child attributes
idstring (uuid)required
ID of a site list.
actionstringrequired
Action to take.
Must be one of: allow, block, warn.
priorityintegerrequired
Priority of the site list. Higher value takes priority over lower. Each site list must have a unique priority value.
Must be ≥ 0.

Errors

Status Meaning
400 Bad request.
404 Resource not found.
500 Unexpected error.

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

Response examples

200

{
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "string",
  "description": "string",
  "updatedAt": "2026-07-28T00:00:00Z",
  "updatedBy": {
    "id": "string",
    "type": "user",
    "name": "string",
    "accountType": "partner",
    "accountId": "00000000-0000-0000-0000-000000000000"
  },
  "consumers": [
    {
      "type": "computerWebControlPolicy",
      "id": "string"
    }
  ],
  "filterByCategory": false,
  "preset": "string",
  "categoryGroupActions": [
    {
      "name": "string",
      "action": "allow"
    }
  ],
  "categoryActions": [
    {
      "name": "string",
      "action": "allow"
    }
  ],
  "filterBySiteList": false,
  "siteListActions": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "action": "allow",
      "priority": 0
    }
  ]
}