Skip to content

Upgrade firewall

POST/firewalls/actions/firmware-upgrade

Firewall Management API · Firewalls

Upgrade firewalls.

Required permissionfwcm.firewall.group:write

Parameters

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

Request body

Content type: application/json

Request body fields

firewallsarray of objectrequired
Items must be unique.
Upgrade information for firewall.
Show child attributesHide child attributes
idstring (uuid)required
Firewall ID.
upgradeToVersionstring (string)
Version of the firewall to you want to upgrade to.
upgradeAtstring (date-time)
Schedule time in "yyyy-MM-dd'T'HH🇲🇲ss.SSS'Z'". If not present, considered to be schedule now.

Request samples

curl -X POST "https://api-<data-region>.central.sophos.com/firewall/v1/firewalls/actions/firmware-upgrade" -H "Authorization: Bearer <access-token>" -H "X-Tenant-ID: <tenant-id>" -H "Content-Type: application/json" -d "{
  \"firewalls\": [
    {
      \"id\": \"00000000-0000-0000-0000-000000000000\",
      \"upgradeToVersion\": \"string\",
      \"upgradeAt\": \"2026-07-28T00:00:00Z\"
    }
  ]
}"

import requests

response = requests.post(
    "https://api-<data-region>.central.sophos.com/firewall/v1/firewalls/actions/firmware-upgrade",
    headers={
        "Authorization": "Bearer <access-token>",
        "X-Tenant-ID": "<tenant-id>",
        "Content-Type": "application/json",
    },
    json={   'firewalls': [   {   'id': '00000000-0000-0000-0000-000000000000',
                         'upgradeToVersion': 'string',
                         'upgradeAt': '2026-07-28T00:00:00Z'}]},
)
print(response.json())

$headers = @{
    "Authorization" = "Bearer <access-token>"
    "X-Tenant-ID" = "<tenant-id>"
    "Content-Type" = "application/json"
}
$body = '{
  "firewalls": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "upgradeToVersion": "string",
      "upgradeAt": "2026-07-28T00:00:00Z"
    }
  ]
}'
Invoke-RestMethod -Method POST -Uri "https://api-<data-region>.central.sophos.com/firewall/v1/firewalls/actions/firmware-upgrade" -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/firewall/v1/firewalls/actions/firmware-upgrade", strings.NewReader(`{
  "firewalls": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "upgradeToVersion": "string",
      "upgradeAt": "2026-07-28T00:00:00Z"
    }
  ]
}`))
    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/firewall/v1/firewalls/actions/firmware-upgrade", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <access-token>",
    "X-Tenant-ID": "<tenant-id>",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
  "firewalls": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "upgradeToVersion": "string",
      "upgradeAt": "2026-07-28T00:00:00Z"
    }
  ]
}),
});
const data = await response.json();
console.log(data);

Responses

201 — Firewall upgrade scheduled successfully.

Response fields

firewallsarray of object
Items must be unique.
Firewall firmware upgrade status.
Show child attributesHide child attributes
idstring (uuid)required
Firewall ID.
statusstringrequired
Firewall upgrade status.
upgradeToVersionstring (string)
Version of the firewall you want to upgrade to.
upgradedAtstring (date-time)
Schedule time in "yyyy-MM-dd'T'HH🇲🇲ss.SSS'Z'". If not present, considered to be schedule now.

Errors

Status Meaning
400 Invalid request.
401 Authentication required.
403 Authorization required.
404 Can't find firewall.
500 Unexpected error.

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

Response examples

201

{
  "firewalls": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "status": "string",
      "upgradeToVersion": "string",
      "upgradedAt": "2026-07-28T00:00:00Z"
    }
  ]
}

See the guide for a narrative walkthrough of this API.