Get firewalls¶
GET/
Licensing API · Licensing
Get firewalls claimed by tenant or managed by the partner.
Parameters¶
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Tenant-ID | header | string (uuid) | No | The unique identifier (UUID) of the Tenant. Provide either this header or X-Partner-ID, but not both. Required when the request context belongs to a Tenant. |
X-Partner-ID | header | string (uuid) | No | The unique identifier (UUID) of the Partner. Provide either this header or X-Tenant-ID, but not both. Required when the request context belongs to a Partner. |
page | query | integer | No | The page number to fetch, starting with 1. |
pageSize | query | integer | No | The size of the page requested. |
pageTotal | query | boolean | No | Whether the number of pages should be calculated and returned in the response. |
sort | query | string | No | Sort the list based on the column. Must match the pattern (^[^:]+$)|(^[^:]+:(asc|desc)$). |
Request samples¶
curl -X GET "https://api.central.sophos.com/licenses/v1/licenses/firewalls" -H "Authorization: Bearer <access-token>" -H "X-Tenant-ID: <tenant-id>" -H "X-Partner-ID: <partner-id>"
import requests
response = requests.get(
"https://api.central.sophos.com/licenses/v1/licenses/firewalls",
headers={
"Authorization": "Bearer <access-token>",
"X-Tenant-ID": "<tenant-id>",
"X-Partner-ID": "<partner-id>",
},
)
print(response.json())
$headers = @{
"Authorization" = "Bearer <access-token>"
"X-Tenant-ID" = "<tenant-id>"
"X-Partner-ID" = "<partner-id>"
}
Invoke-RestMethod -Method GET -Uri "https://api.central.sophos.com/licenses/v1/licenses/firewalls" -Headers $headers
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://api.central.sophos.com/licenses/v1/licenses/firewalls", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer <access-token>")
req.Header.Set("X-Tenant-ID", "<tenant-id>")
req.Header.Set("X-Partner-ID", "<partner-id>")
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.central.sophos.com/licenses/v1/licenses/firewalls", {
method: "GET",
headers: {
"Authorization": "Bearer <access-token>",
"X-Tenant-ID": "<tenant-id>",
"X-Partner-ID": "<partner-id>",
},
});
const data = await response.json();
console.log(data);
Responses¶
200 — Firewalls.¶
Response fields
itemsarray of objectrequiredList of firewalls.
Firewall object.
Show child attributesHide child attributes
serialNumberstringrequiredFirewall serial number.
ownerobjectrequiredLicense owner.
Show child attributesHide child attributes
idstring (uuid)requiredOwner ID.
typestringrequiredOwner type.
Must be one of:
Must be one of:
partner, organization.organizationobjectTenant's organization.
Show child attributesHide child attributes
idstring (uuid)requiredOrganization ID.
partnerobjectTenant's partner.
Show child attributesHide child attributes
idstring (uuid)requiredPartner ID.
tenantobjectLinked tenant.
Show child attributesHide child attributes
idstring (uuid)requiredTenant ID.
billingTenantobjectLinked tenant.
Show child attributesHide child attributes
idstring (uuid)requiredTenant ID.
modelstringrequiredFirewall model.
modelTypestringrequiredFirewall model type.
Must be one of:
Must be one of:
virtual, hardware.lastSeenAtstringDate and time the firewall last checked for licenses.
Must match the pattern
Must match the pattern
date-time.licensesarray of objectrequiredLicense object.
Show child attributesHide child attributes
idstringrequiredLicense ID.
licenseIdentifierstringrequiredLicense identifier.
productobjectrequiredLicensed product.
Show child attributesHide child attributes
codestringrequiredProduct code.
namestringProduct name.
genericCodestringGeneric product code.
startDatestring (date)requiredLicense start date. The license is valid from the start of the day in the UTC timezone.
endDatestring (date)License end date. The license is valid until the end of the day in the UTC timezone. Not present for perpetual licenses.
perpetualbooleanrequiredWhether the license is perpetual or not.
typestringrequiredLicense type.
Must be one of:
Must be one of:
trial, term, usage, ordered, enterprise, perpetual.quantityintegerAssigned quantity.
unlimitedbooleanrequiredTrue if
quantity is missing.usageobjectLicense usage records.
Show child attributesHide child attributes
currentobjectrequiredLicense usage count for a specific date.
Show child attributesHide child attributes
countintegerrequiredLicense usage count.
datestring (date)requiredLicense usage date.
collectedAtstring (date-time)requiredDate and time when the usage was collected.
pagesobjectrequiredShow child attributesHide child attributes
currentintegerrequiredThe 1-based page number being returned.
sizeintegerrequiredThe size of the page being returned.
totalinteger(Optional) The total number of pages that exist, if pageTotal=true in the request.
itemsinteger(Optional) The total number of items across all pages.
maxSizeintegerrequiredThe maximum page size that can be requested.
Errors¶
| Status | Meaning |
|---|---|
500 | Unexpected error. |
All error responses share the same shape — see the error response object.
Response examples¶
200¶
{
"items": [
{
"serialNumber": "string",
"owner": {
"id": "00000000-0000-0000-0000-000000000000",
"type": "partner"
},
"organization": {
"id": "00000000-0000-0000-0000-000000000000"
},
"partner": {
"id": "00000000-0000-0000-0000-000000000000"
},
"tenant": {
"id": "00000000-0000-0000-0000-000000000000"
},
"billingTenant": {
"id": "00000000-0000-0000-0000-000000000000"
},
"model": "string",
"modelType": "virtual",
"lastSeenAt": "string",
"licenses": [
{
"id": "string",
"licenseIdentifier": "string",
"product": {
"code": "string",
"name": "string",
"genericCode": "string"
},
"startDate": "2026-07-28",
"endDate": "2026-07-28",
"perpetual": true,
"type": "trial",
"quantity": 0,
"unlimited": true,
"usage": {
"current": {
"count": 0,
"date": "2026-07-28",
"collectedAt": "2026-07-28T00:00:00Z"
}
}
}
]
}
],
"pages": {
"current": 0,
"size": 0,
"total": 0,
"items": 0,
"maxSize": 0
}
}
See the guide for a narrative walkthrough of this API.