Skip to content

Historical Score

GET/scores/historical

Account Health Check API · Account Health Scores

Get historical health scores.

Required permissionendpoint-state:read OR firewall-state:read

Parameters

Name In Type Required Description
X-Tenant-ID header string (uuid) Yes Tenant ID.
startDate query string (date) No Start date (the range between startDate and endDate is inclusive).
endDate query string (date) No End date (the range between startDate and endDate is inclusive).

Request samples

curl -X GET "https://api-<data-region>.central.sophos.com/account-health-check/v1/scores/historical" -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/scores/historical",
    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/scores/historical" -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/scores/historical", 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/scores/historical", {
  method: "GET",
  headers: {
    "Authorization": "Bearer <access-token>",
    "X-Tenant-ID": "<tenant-id>",
  },
});
const data = await response.json();
console.log(data);

Responses

200 — Historical scores.

Response fields

tenantobjectrequired
Tenant.
Show child attributesHide child attributes
idstring (uuid)required
The tenant's ID.
namestring
The tenant's name.
datapointsarray of objectrequired
List of datapoints.
Score Datapoint.
Show child attributesHide child attributes
datestring (date)
The date.
computerTotalinteger
Number of computers.
serverTotalinteger
Number of servers.
endpointobject
Endpoint.
Show child attributesHide child attributes
protectionComputerScoreinteger
The score.
Must be ≥ 0 and ≤ 100.
protectionServerScoreinteger
The score.
Must be ≥ 0 and ≤ 100.
policyThreatProtectionComputerScoreinteger
The score.
Must be ≥ 0 and ≤ 100.
policyThreatProtectionServerScoreinteger
The score.
Must be ≥ 0 and ≤ 100.
exclusionsGlobalScoreinteger
The score.
Must be ≥ 0 and ≤ 100.
exclusionsComputerScoreinteger
The score.
Must be ≥ 0 and ≤ 100.
exclusionsServerScoreinteger
The score.
Must be ≥ 0 and ≤ 100.
tamperProtectionGlobalScoreinteger
The score.
Must be ≥ 0 and ≤ 100.
tamperProtectionComputerScoreinteger
The score.
Must be ≥ 0 and ≤ 100.
tamperProtectionServerScoreinteger
The score.
Must be ≥ 0 and ≤ 100.
networkDeviceobject
Network Device.
Show child attributesHide child attributes
firewallBackupScoreinteger
The score.
Must be ≥ 0 and ≤ 100.

Errors

Status Meaning
400 Invalid request.
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"
  },
  "datapoints": [
    {
      "date": "2026-07-28",
      "computerTotal": 0,
      "serverTotal": 0,
      "endpoint": {
        "protectionComputerScore": 0,
        "protectionServerScore": 0,
        "policyThreatProtectionComputerScore": 0,
        "policyThreatProtectionServerScore": 0,
        "exclusionsGlobalScore": 0,
        "exclusionsComputerScore": 0,
        "exclusionsServerScore": 0,
        "tamperProtectionGlobalScore": 0,
        "tamperProtectionComputerScore": 0,
        "tamperProtectionServerScore": 0
      },
      "networkDevice": {
        "firewallBackupScore": 0
      }
    }
  ]
}

See the guide for a narrative walkthrough of this API.