Skip to content

Download installers

GET/downloads

Endpoint API · Downloads

Get all the endpoint installer links for a tenant.

Required permissionendpoint-state:update

Parameters

Name In Type Required Description
X-Tenant-ID header string (uuid) Yes Tenant ID.
requestedProducts query array of string No Products to include in the installers. All values are given if you don't use filters.
Each item must be one of: coreAgent, interceptX, xdr, endpointProtection, deviceEncryption, mtr, ztna.
platforms query array of string No Specify which platforms to include. All values are given if you don't use filters.
Each item must be one of: windows, linux, macOS.

Request samples

curl -X GET "https://api-<data-region>.central.sophos.com/endpoint/v1/downloads" -H "Authorization: Bearer <access-token>" -H "X-Tenant-ID: <tenant-id>"

import requests

response = requests.get(
    "https://api-<data-region>.central.sophos.com/endpoint/v1/downloads",
    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/endpoint/v1/downloads" -Headers $headers

package main

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

func main() {
    req, err := http.NewRequest("GET", "https://api-<data-region>.central.sophos.com/endpoint/v1/downloads", 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/endpoint/v1/downloads", {
  method: "GET",
  headers: {
    "Authorization": "Bearer <access-token>",
    "X-Tenant-ID": "<tenant-id>",
  },
});
const data = await response.json();
console.log(data);

Responses

200 — Endpoint installers.

Response fields

tenantobjectrequired
Tenant.
Show child attributesHide child attributes
idstring (uuid)required
Tenant ID.
licensedProductsarray of stringrequired
Products that the tenant is licensed to install.
Each item must be one of: coreAgent, interceptX, xdr, endpointProtection, deviceEncryption, mtr, ztna.
installersarray of objectrequired
List of installers.
Installer.
Show child attributesHide child attributes
productNamestring
Product name.
platformstringrequired
OS platform type.
Must be one of: windows, linux, macOS.
typestringrequired
Endpoint type. Please note that the type securityVm is no longer used.
Must be one of: computer, server, securityVm.
supportedProductsarray of stringrequired
Products to install.
Each item must be one of: coreAgent, interceptX, xdr, endpointProtection, deviceEncryption, mtr, ztna.
downloadUrlstring (uri)required
Download URL.

Errors

Status Meaning
400 Bad request.
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"
  },
  "licensedProducts": [
    "coreAgent"
  ],
  "installers": [
    {
      "productName": "Sophos Endpoint Protection",
      "platform": "windows",
      "type": "computer",
      "supportedProducts": [
        "endpointProtection",
        "interceptX"
      ],
      "downloadUrl": "https://api.sophos.com/api/download/.../SophosSetup.exe"
    }
  ]
}

See the guide for a narrative walkthrough of this API.