Account Health¶
GET/
Account Health Check API · Account Health Check
Get health.
Parameters¶
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Tenant-ID | header | string (uuid) | Yes | Tenant ID. |
checks | query | array of string | No | Health checks to run. Each item must be one of: protection, policy, exclusions, tamperProtection. |
products | query | array of string | No | Filter account health check by product. Each item must be one of: endpoint. |
Request samples¶
curl -X GET "https://api-<data-region>.central.sophos.com/account-health-check/v1/health-check" -H "Authorization: Bearer <access-token>" -H "X-Tenant-ID: <tenant-id>"
import requests
response = requests.get(
"https://api-<data-region>.central.sophos.com/account-health-check/v1/health-check",
headers={
"Authorization": "Bearer <access-token>",
"X-Tenant-ID": "<tenant-id>",
},
)
print(response.json())
$headers = @{
"Authorization" = "Bearer <access-token>"
"X-Tenant-ID" = "<tenant-id>"
}
Invoke-RestMethod -Method GET -Uri "https://api-<data-region>.central.sophos.com/account-health-check/v1/health-check" -Headers $headers
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://api-<data-region>.central.sophos.com/account-health-check/v1/health-check", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer <access-token>")
req.Header.Set("X-Tenant-ID", "<tenant-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-<data-region>.central.sophos.com/account-health-check/v1/health-check", {
method: "GET",
headers: {
"Authorization": "Bearer <access-token>",
"X-Tenant-ID": "<tenant-id>",
},
});
const data = await response.json();
console.log(data);
Responses¶
200 — Found Account Health check.¶
Response fields
tenantobjectrequiredTenant.
Show child attributesHide child attributes
idstring (uuid)requiredThe tenant's ID.
namestringThe tenant's name.
endpointobjectEndpoint Health.
Show child attributesHide child attributes
protectionobjectEndpoint Health. Null indicates an unexpected error.
Show child attributesHide child attributes
computerobjectSoftware check.
Show child attributesHide child attributes
scoreintegerThe score.
Must be ≥ 0 and ≤ 100.
Must be ≥ 0 and ≤ 100.
totalintegerrequiredTotal number of endpoints.
notFullyProtectedintegerrequiredEndpoints with missing software.
snoozedbooleanrequiredHealth check has been snoozed.
snoozeDetailobjectSnooze information.
Show child attributesHide child attributes
startstring (date-time)requiredTime snoozed.
endstring (date-time)Time the snooze was ended.
expirystring (date-time)Time the snooze expired or will expire.
expiredbooleanrequiredWhether the snooze has expired.
commentstringrequiredCustomer comment.
Must be at most 750 characters long.
Must be at most 750 characters long.
serverobjectSoftware check.
Show child attributesHide child attributes
scoreintegerThe score.
Must be ≥ 0 and ≤ 100.
Must be ≥ 0 and ≤ 100.
totalintegerrequiredTotal number of endpoints.
notFullyProtectedintegerrequiredEndpoints with missing software.
snoozedbooleanrequiredHealth check has been snoozed.
snoozeDetailobjectSnooze information.
Show child attributesHide child attributes
startstring (date-time)requiredTime snoozed.
endstring (date-time)Time the snooze was ended.
expirystring (date-time)Time the snooze expired or will expire.
expiredbooleanrequiredWhether the snooze has expired.
commentstringrequiredCustomer comment.
Must be at most 750 characters long.
Must be at most 750 characters long.
policyobjectEndpoint Policy Health. Null indicates an unexpected error.
Show child attributesHide child attributes
computerobjectComputer policy health for each policy type.
Show child attributesHide child attributes
threat-protectionobjectPolicy check for each policy type.
Show child attributesHide child attributes
scoreintegerThe score.
Must be ≥ 0 and ≤ 100.
Must be ≥ 0 and ≤ 100.
totalintegerrequiredNumber of policies of this type.
notOnRecommendedintegerrequiredNumber of policies with at least one unrecommended setting.
snoozedbooleanrequiredHealth check has been snoozed.
snoozeDetailobjectSnooze information.
Show child attributesHide child attributes
startstring (date-time)requiredTime snoozed.
endstring (date-time)Time the snooze was ended.
expirystring (date-time)Time the snooze expired or will expire.
expiredbooleanrequiredWhether the snooze has expired.
commentstringrequiredCustomer comment.
Must be at most 750 characters long.
Must be at most 750 characters long.
policiesarray of objectList of policies with at least one unrecommended setting.
Policy check.
Show child attributesHide child attributes
idstring (uuid)requiredPolicy ID.
namestringrequiredPolicy name.
lockedByManagingAccountbooleanrequiredWhether the policy is managed by a partner or organization, 'true' means yes.
notOnRecommendedintegerrequiredNumber of unrecommended settings.
serverobjectServer policy health for each policy type.
Show child attributesHide child attributes
server-threat-protectionobjectPolicy check for each policy type.
Show child attributesHide child attributes
scoreintegerThe score.
Must be ≥ 0 and ≤ 100.
Must be ≥ 0 and ≤ 100.
totalintegerrequiredNumber of policies of this type.
notOnRecommendedintegerrequiredNumber of policies with at least one unrecommended setting.
snoozedbooleanrequiredHealth check has been snoozed.
snoozeDetailobjectSnooze information.
Show child attributesHide child attributes
startstring (date-time)requiredTime snoozed.
endstring (date-time)Time the snooze was ended.
expirystring (date-time)Time the snooze expired or will expire.
expiredbooleanrequiredWhether the snooze has expired.
commentstringrequiredCustomer comment.
Must be at most 750 characters long.
Must be at most 750 characters long.
policiesarray of objectList of policies with at least one unrecommended setting.
Policy check.
Show child attributesHide child attributes
idstring (uuid)requiredPolicy ID.
namestringrequiredPolicy name.
lockedByManagingAccountbooleanrequiredWhether the policy is managed by a partner or organization, 'true' means yes.
notOnRecommendedintegerrequiredNumber of unrecommended settings.
exclusionsobjectEndpoint Exclusions Health. Null indicates an unexpected error.
Show child attributesHide child attributes
policyobjectEndpoint Policy Exclusions Health.
Show child attributesHide child attributes
computerobjectrequiredPolicy exclusions check.
Show child attributesHide child attributes
scoreintegerThe score.
Must be ≥ 0 and ≤ 100.
Must be ≥ 0 and ≤ 100.
totalintegerrequiredTotal number of exclusions.
numberOfSecurityRisksintegerrequiredExclusions that may be risky.
snoozedbooleanrequiredHealth check has been snoozed.
snoozeDetailobjectSnooze information.
Show child attributesHide child attributes
startstring (date-time)requiredTime snoozed.
endstring (date-time)Time the snooze was ended.
expirystring (date-time)Time the snooze expired or will expire.
expiredbooleanrequiredWhether the snooze has expired.
commentstringrequiredCustomer comment.
Must be at most 750 characters long.
Must be at most 750 characters long.
exclusionsarray of objectList of exclusions that may be risky.
Policy exclusions check.
Show child attributesHide child attributes
policyIdstring (uuid)requiredPolicy ID.
policyNamestringrequiredPolicy name.
lockedByManagingAccountbooleanrequiredWhether the policy is managed by a partner or organization, 'true' means yes.
snoozeCommentstringSnooze comment.
Must be at most 750 characters long.
Must be at most 750 characters long.
scanningExclusionsarray of objectList of scanning exclusions.
Show child attributesHide child attributes
valuestringrequiredExclusion value.
typestringrequiredType of scan excluded.
Must be one of:
Must be one of:
path, posixPath, virtualPath, process, web, pua, detectedExploit, amsi, behavioral, journalHashingProcess, journalHashingPath.scanModestringrequiredMode of scan excluded.
Must be one of:
Must be one of:
onDemand, onAccess, onDemandAndOnAccess.reasonCodestringReason for scanning exclusion being flagged as an issue.
Must be one of:
Must be one of:
allFilesWithExecutableExtension, commonExecutable, entireDrive, usesWindowsPathVariables, usesWindowsSystemDirectoriesViaSyspath, windowsDirectories, windowsStartupDirectory, windowsSystemDirectories, windowsSystemTools.serverobjectrequiredPolicy exclusions check.
Show child attributesHide child attributes
scoreintegerThe score.
Must be ≥ 0 and ≤ 100.
Must be ≥ 0 and ≤ 100.
totalintegerrequiredTotal number of exclusions.
numberOfSecurityRisksintegerrequiredExclusions that may be risky.
snoozedbooleanrequiredHealth check has been snoozed.
snoozeDetailobjectSnooze information.
Show child attributesHide child attributes
startstring (date-time)requiredTime snoozed.
endstring (date-time)Time the snooze was ended.
expirystring (date-time)Time the snooze expired or will expire.
expiredbooleanrequiredWhether the snooze has expired.
commentstringrequiredCustomer comment.
Must be at most 750 characters long.
Must be at most 750 characters long.
exclusionsarray of objectList of exclusions that may be risky.
Policy exclusions check.
Show child attributesHide child attributes
policyIdstring (uuid)requiredPolicy ID.
policyNamestringrequiredPolicy name.
lockedByManagingAccountbooleanrequiredWhether the policy is managed by a partner or organization, 'true' means yes.
snoozeCommentstringSnooze comment.
Must be at most 750 characters long.
Must be at most 750 characters long.
scanningExclusionsarray of objectList of scanning exclusions.
Show child attributesHide child attributes
valuestringrequiredExclusion value.
typestringrequiredType of scan excluded.
Must be one of:
Must be one of:
path, posixPath, virtualPath, process, web, pua, detectedExploit, amsi, behavioral, journalHashingProcess, journalHashingPath.scanModestringrequiredMode of scan excluded.
Must be one of:
Must be one of:
onDemand, onAccess, onDemandAndOnAccess.reasonCodestringReason for scanning exclusion being flagged as an issue.
Must be one of:
Must be one of:
allFilesWithExecutableExtension, commonExecutable, entireDrive, usesWindowsPathVariables, usesWindowsSystemDirectoriesViaSyspath, windowsDirectories, windowsStartupDirectory, windowsSystemDirectories, windowsSystemTools.globalobjectGlobal exclusions check.
Show child attributesHide child attributes
scoreintegerThe score.
Must be ≥ 0 and ≤ 100.
Must be ≥ 0 and ≤ 100.
numberOfSecurityRisksintegerrequiredExclusions that may be risky.
lockedByManagingAccountbooleanrequiredWhether the settings are managed by a partner or organization, 'true' means yes.
snoozedbooleanrequiredHealth check has been snoozed.
snoozeDetailobjectSnooze information.
Show child attributesHide child attributes
startstring (date-time)requiredTime snoozed.
endstring (date-time)Time the snooze was ended.
expirystring (date-time)Time the snooze expired or will expire.
expiredbooleanrequiredWhether the snooze has expired.
commentstringrequiredCustomer comment.
Must be at most 750 characters long.
Must be at most 750 characters long.
scanningExclusionsarray of objectList of scanning exclusions.
Show child attributesHide child attributes
idstring (uuid)requiredUnique ID for the scanning exclusion.
valuestringrequiredExclusion value.
typestringrequiredType of scan excluded.
Must be one of:
Must be one of:
path, posixPath, virtualPath, process, web, pua, detectedExploit, amsi, behavioral, journalHashingProcess, journalHashingPath.scanModestringrequiredMode of scan excluded.
Must be one of:
Must be one of:
onDemand, onAccess, onDemandAndOnAccess.reasonCodestringReason for scanning exclusion being flagged as an issue.
Must be one of:
Must be one of:
allFilesWithExecutableExtension, commonExecutable, entireDrive, usesWindowsPathVariables, usesWindowsSystemDirectoriesViaSyspath, windowsDirectories, windowsStartupDirectory, windowsSystemDirectories, windowsSystemTools.tamperProtectionobjectTamper Protection Health. Null indicates an unexpected error.
Show child attributesHide child attributes
computerobjectTamper Protection check for each device.
Show child attributesHide child attributes
scoreintegerThe score.
Must be ≥ 0 and ≤ 100.
Must be ≥ 0 and ≤ 100.
totalintegerrequiredTotal number of endpoints.
disabledintegerrequiredNumber of endpoints with Tamper Protection turned off.
snoozedbooleanrequiredHealth check has been snoozed.
snoozeDetailobjectSnooze information.
Show child attributesHide child attributes
startstring (date-time)requiredTime snoozed.
endstring (date-time)Time the snooze was ended.
expirystring (date-time)Time the snooze expired or will expire.
expiredbooleanrequiredWhether the snooze has expired.
commentstringrequiredCustomer comment.
Must be at most 750 characters long.
Must be at most 750 characters long.
serverobjectTamper Protection check for each device.
Show child attributesHide child attributes
scoreintegerThe score.
Must be ≥ 0 and ≤ 100.
Must be ≥ 0 and ≤ 100.
totalintegerrequiredTotal number of endpoints.
disabledintegerrequiredNumber of endpoints with Tamper Protection turned off.
snoozedbooleanrequiredHealth check has been snoozed.
snoozeDetailobjectSnooze information.
Show child attributesHide child attributes
startstring (date-time)requiredTime snoozed.
endstring (date-time)Time the snooze was ended.
expirystring (date-time)Time the snooze expired or will expire.
expiredbooleanrequiredWhether the snooze has expired.
commentstringrequiredCustomer comment.
Must be at most 750 characters long.
Must be at most 750 characters long.
globalDetailobjectGlobal Tamper Protection check.
Show child attributesHide child attributes
scoreintegerThe score.
Must be ≥ 0 and ≤ 100.
Must be ≥ 0 and ≤ 100.
enabledbooleanrequiredTamper Protection is turned on globally.
snoozedbooleanrequiredHealth check has been snoozed.
snoozeDetailobjectSnooze information.
Show child attributesHide child attributes
startstring (date-time)requiredTime snoozed.
endstring (date-time)Time the snooze was ended.
expirystring (date-time)Time the snooze expired or will expire.
expiredbooleanrequiredWhether the snooze has expired.
commentstringrequiredCustomer comment.
Must be at most 750 characters long.
Must be at most 750 characters long.
globalbooleanTamper Protection is turned on globally. This is deprecated, use globalDetail/enabled instead.
networkDeviceobjectNetwork device health.
Show child attributesHide child attributes
firewallobjectNetwork device Firewall health.
Show child attributesHide child attributes
firewallAutomaticBackupobjectBackup check for each firewall.
Show child attributesHide child attributes
scoreintegerThe score.
Must be ≥ 0 and ≤ 100.
Must be ≥ 0 and ≤ 100.
totalintegerrequiredTotal Number of eligible firewalls of the tenant.
notOnRecommendedintegerTotal Number of firewall for which backup not done.
snoozedbooleanrequiredHealth check has been snoozed.
snoozeDetailobjectSnooze information.
Show child attributesHide child attributes
startstring (date-time)requiredTime snoozed.
endstring (date-time)Time the snooze was ended.
expirystring (date-time)Time the snooze expired or will expire.
expiredbooleanrequiredWhether the snooze has expired.
commentstringrequiredCustomer comment.
Must be at most 750 characters long.
Must be at most 750 characters long.
scheduleobjectBackup schedule details for the tenant.
Show child attributesHide child attributes
frequencystringrequiredFirewall backup frequency.
Must be one of:
Must be one of:
never, daily, weekly, monthly.dayintegerDay number for the frequency.
Errors¶
| Status | Meaning |
|---|---|
429 | Too many requests. |
500 | Unexpected error. |
All error responses share the same shape — see the error response object.
Response examples¶
200¶
{
"tenant": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string"
},
"endpoint": {
"protection": {
"computer": {
"score": 0,
"total": 0,
"notFullyProtected": 0,
"snoozed": true,
"snoozeDetail": {
"start": "2026-07-28T00:00:00Z",
"end": "2026-07-28T00:00:00Z",
"expiry": "2026-07-28T00:00:00Z",
"expired": true,
"comment": "string"
}
},
"server": {
"score": 0,
"total": 0,
"notFullyProtected": 0,
"snoozed": true,
"snoozeDetail": {
"start": "2026-07-28T00:00:00Z",
"end": "2026-07-28T00:00:00Z",
"expiry": "2026-07-28T00:00:00Z",
"expired": true,
"comment": "string"
}
}
},
"policy": {
"computer": {
"threat-protection": {
"score": 0,
"total": 0,
"notOnRecommended": 0,
"snoozed": true,
"snoozeDetail": {
"start": "2026-07-28T00:00:00Z",
"end": "2026-07-28T00:00:00Z",
"expiry": "2026-07-28T00:00:00Z",
"expired": true,
"comment": "string"
},
"policies": [
{
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"lockedByManagingAccount": true,
"notOnRecommended": 0
}
]
}
},
"server": {
"server-threat-protection": {
"score": 0,
"total": 0,
"notOnRecommended": 0,
"snoozed": true,
"snoozeDetail": {
"start": "2026-07-28T00:00:00Z",
"end": "2026-07-28T00:00:00Z",
"expiry": "2026-07-28T00:00:00Z",
"expired": true,
"comment": "string"
},
"policies": [
{
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"lockedByManagingAccount": true,
"notOnRecommended": 0
}
]
}
}
},
"exclusions": {
"policy": {
"computer": {
"score": 0,
"total": 0,
"numberOfSecurityRisks": 0,
"snoozed": true,
"snoozeDetail": {
"start": "2026-07-28T00:00:00Z",
"end": "2026-07-28T00:00:00Z",
"expiry": "2026-07-28T00:00:00Z",
"expired": true,
"comment": "string"
},
"exclusions": [
{
"policyId": "00000000-0000-0000-0000-000000000000",
"policyName": "string",
"lockedByManagingAccount": true,
"snoozeComment": "string",
"scanningExclusions": [
{
"value": "string",
"type": "path",
"scanMode": "onDemand",
"reasonCode": "allFilesWithExecutableExtension"
}
]
}
]
},
"server": {
"score": 0,
"total": 0,
"numberOfSecurityRisks": 0,
"snoozed": true,
"snoozeDetail": {
"start": "2026-07-28T00:00:00Z",
"end": "2026-07-28T00:00:00Z",
"expiry": "2026-07-28T00:00:00Z",
"expired": true,
"comment": "string"
},
"exclusions": [
{
"policyId": "00000000-0000-0000-0000-000000000000",
"policyName": "string",
"lockedByManagingAccount": true,
"snoozeComment": "string",
"scanningExclusions": [
{
"value": "string",
"type": "path",
"scanMode": "onDemand",
"reasonCode": "allFilesWithExecutableExtension"
}
]
}
]
}
},
"global": {
"score": 0,
"numberOfSecurityRisks": 0,
"lockedByManagingAccount": true,
"snoozed": true,
"snoozeDetail": {
"start": "2026-07-28T00:00:00Z",
"end": "2026-07-28T00:00:00Z",
"expiry": "2026-07-28T00:00:00Z",
"expired": true,
"comment": "string"
},
"scanningExclusions": [
{
"id": "00000000-0000-0000-0000-000000000000",
"value": "string",
"type": "path",
"scanMode": "onDemand",
"reasonCode": "allFilesWithExecutableExtension"
}
]
}
},
"tamperProtection": {
"computer": {
"score": 0,
"total": 0,
"disabled": 0,
"snoozed": true,
"snoozeDetail": {
"start": "2026-07-28T00:00:00Z",
"end": "2026-07-28T00:00:00Z",
"expiry": "2026-07-28T00:00:00Z",
"expired": true,
"comment": "string"
}
},
"server": {
"score": 0,
"total": 0,
"disabled": 0,
"snoozed": true,
"snoozeDetail": {
"start": "2026-07-28T00:00:00Z",
"end": "2026-07-28T00:00:00Z",
"expiry": "2026-07-28T00:00:00Z",
"expired": true,
"comment": "string"
}
},
"globalDetail": {
"score": 0,
"enabled": true,
"snoozed": true,
"snoozeDetail": {
"start": "2026-07-28T00:00:00Z",
"end": "2026-07-28T00:00:00Z",
"expiry": "2026-07-28T00:00:00Z",
"expired": true,
"comment": "string"
}
},
"global": true
}
},
"networkDevice": {
"firewall": {
"firewallAutomaticBackup": {
"score": 0,
"total": 0,
"notOnRecommended": 0,
"snoozed": true,
"snoozeDetail": {
"start": "2026-07-28T00:00:00Z",
"end": "2026-07-28T00:00:00Z",
"expiry": "2026-07-28T00:00:00Z",
"expired": true,
"comment": "string"
},
"schedule": {
"frequency": "never",
"day": 0
}
}
}
}
}
See the guide for a narrative walkthrough of this API.