Update web filtering profile¶
PUT/
Web Filtering API · Web Filtering Profile Management
Update an existing web filtering profile using its ID.
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.
namestringrequiredWeb filtering profile name.
Must be 1–50 characters long.
Must be 1–50 characters long.
descriptionstringWeb filtering profile description.
Must be at most 250 characters long.
Must be at most 250 characters long.
updatedAtstring (date-time)Time the web filtering profile was last updated.
updatedByobjectShow child attributesHide child attributes
idstringrequiredPrincipal ID.
typestring (enum)requiredType of the Principal.
Must be one of:
Must be one of:
user, service, system.namestringPrincipal name.
accountTypestringAccount type.
Must be one of:
Must be one of:
partner, tenant, organization.accountIdstring (uuid)Account ID.
consumersarray of objectResources that use the web filtering profile.
A resource that uses the web filtering profile.
Show child attributesHide child attributes
typestringrequiredType of resource that uses web filtering profiles.
Must be one of:
Must be one of:
computerWebControlPolicy, serverWebControlPolicy, mobileWebControlPolicy.idstringrequiredID of the resource that uses the profile.
filterByCategorybooleanWhether filtering by website category is turned on in this web filtering profile.
presetstringUse a preset selection of website category filters. Overrides values defined by 'groups' and 'categories' fields.
categoryGroupActionsarray of objectDefine 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
namestringrequiredName of the group of website categories.
actionstringrequiredAction to take.
Must be one of:
Must be one of:
allow, block, warn.categoryActionsarray of objectDefine 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
namestringrequiredName of the website category.
actionstringrequiredAction to take.
Must be one of:
Must be one of:
allow, block, warn.filterBySiteListbooleanWhether filtering by site list is turned on in this web filtering profile.
siteListActionsarray of objectSite list filters.
Defines the action taken for a site list, with each site list having a priority.
Show child attributesHide child attributes
idstring (uuid)requiredID of a site list.
actionstringrequiredAction to take.
Must be one of:
Must be one of:
allow, block, warn.priorityintegerrequiredPriority of the site list. Higher value takes priority over lower. Each site list must have a unique priority value.
Must be ≥ 0.
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.
namestringrequiredWeb filtering profile name.
Must be 1–50 characters long.
Must be 1–50 characters long.
descriptionstringWeb filtering profile description.
Must be at most 250 characters long.
Must be at most 250 characters long.
updatedAtstring (date-time)Time the web filtering profile was last updated.
updatedByobjectShow child attributesHide child attributes
idstringrequiredPrincipal ID.
typestring (enum)requiredType of the Principal.
Must be one of:
Must be one of:
user, service, system.namestringPrincipal name.
accountTypestringAccount type.
Must be one of:
Must be one of:
partner, tenant, organization.accountIdstring (uuid)Account ID.
consumersarray of objectResources that use the web filtering profile.
A resource that uses the web filtering profile.
Show child attributesHide child attributes
typestringrequiredType of resource that uses web filtering profiles.
Must be one of:
Must be one of:
computerWebControlPolicy, serverWebControlPolicy, mobileWebControlPolicy.idstringrequiredID of the resource that uses the profile.
filterByCategorybooleanWhether filtering by website category is turned on in this web filtering profile.
presetstringUse a preset selection of website category filters. Overrides values defined by 'groups' and 'categories' fields.
categoryGroupActionsarray of objectDefine 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
namestringrequiredName of the group of website categories.
actionstringrequiredAction to take.
Must be one of:
Must be one of:
allow, block, warn.categoryActionsarray of objectDefine 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
namestringrequiredName of the website category.
actionstringrequiredAction to take.
Must be one of:
Must be one of:
allow, block, warn.filterBySiteListbooleanWhether filtering by site list is turned on in this web filtering profile.
siteListActionsarray of objectSite list filters.
Defines the action taken for a site list, with each site list having a priority.
Show child attributesHide child attributes
idstring (uuid)requiredID of a site list.
actionstringrequiredAction to take.
Must be one of:
Must be one of:
allow, block, warn.priorityintegerrequiredPriority of the site list. Higher value takes priority over lower. Each site list must have a unique priority value.
Must be ≥ 0.
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
}
]
}