Skip to content

Add local site

POST/settings/web-control/local-sites

Endpoint API · Web Control

Adds a new local site.

Required permissionendpoint-state:update

Parameters

Name In Type Required Description
X-Tenant-ID header string (uuid) Yes Tenant ID.

Request body

Content type: application/json

Request body fields

categoryIdinteger
Category ID associated with this local site. Either categoryId or tags must be provided.
Must be ≥ 1 and ≤ 57.
tagsarray of string
Array of tags associated with this local site setting. Either categoryId or tags must be provided.
Each item must be 1–50 characters long.
urlstringrequired
Must be 1–2048 characters long.
commentstring
Must be at most 300 characters long.

Request samples

curl -X POST "https://api-<data-region>.central.sophos.com/endpoint/v1/settings/web-control/local-sites" -H "Authorization: Bearer <access-token>" -H "X-Tenant-ID: <tenant-id>" -H "Content-Type: application/json" -d "{
  \"categoryId\": 50,
  \"url\": \"https://www.example.com\",
  \"comment\": \"Reason for LocalSite Request\"
}"

import requests

response = requests.post(
    "https://api-<data-region>.central.sophos.com/endpoint/v1/settings/web-control/local-sites",
    headers={
        "Authorization": "Bearer <access-token>",
        "X-Tenant-ID": "<tenant-id>",
        "Content-Type": "application/json",
    },
    json={   'categoryId': 50,
    'url': 'https://www.example.com',
    'comment': 'Reason for LocalSite Request'},
)
print(response.json())

$headers = @{
    "Authorization" = "Bearer <access-token>"
    "X-Tenant-ID" = "<tenant-id>"
    "Content-Type" = "application/json"
}
$body = '{
  "categoryId": 50,
  "url": "https://www.example.com",
  "comment": "Reason for LocalSite Request"
}'
Invoke-RestMethod -Method POST -Uri "https://api-<data-region>.central.sophos.com/endpoint/v1/settings/web-control/local-sites" -Headers $headers -Body $body -ContentType "application/json"

package main

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

func main() {
    req, err := http.NewRequest("POST", "https://api-<data-region>.central.sophos.com/endpoint/v1/settings/web-control/local-sites", strings.NewReader(`{
  "categoryId": 50,
  "url": "https://www.example.com",
  "comment": "Reason for LocalSite Request"
}`))
    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/endpoint/v1/settings/web-control/local-sites", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <access-token>",
    "X-Tenant-ID": "<tenant-id>",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
  "categoryId": 50,
  "url": "https://www.example.com",
  "comment": "Reason for LocalSite Request"
}),
});
const data = await response.json();
console.log(data);

Responses

201 — Local site added.

Response fields

idstring (uuid)required
Local site ID.
categoryIdinteger
Local site category ID.
Must be ≥ 1 and ≤ 57.
tagsarray of string
Tags associated with this local site.
urlstringrequired
Local site URL.
commentstring
Comment indicating why the local site was added.
Must be at most 300 characters long.

Errors

Status Meaning
400 Bad request.
500 Unexpected error.

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

Response examples

201

{
  "id": "00000000-0000-0000-0000-000000000000",
  "categoryId": 0,
  "tags": [
    "string"
  ],
  "url": "string",
  "comment": "string"
}

See the guide for a narrative walkthrough of this API.