Skip to content

Available products

GET/provisioning/available-products

Partner API · Provisioning

List of available products.

Required permissionaccount_management:read OR license_management:read

Parameters

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

Request samples

curl -X GET "https://api.central.sophos.com/partner/v1/provisioning/available-products" -H "Authorization: Bearer <access-token>" -H "X-Partner-ID: <partner-id>"

import requests

response = requests.get(
    "https://api.central.sophos.com/partner/v1/provisioning/available-products",
    headers={
        "Authorization": "Bearer <access-token>",
        "X-Partner-ID": "<partner-id>",
    },
)
print(response.json())

$headers = @{
    "Authorization" = "Bearer <access-token>"
    "X-Partner-ID" = "<partner-id>"
}
Invoke-RestMethod -Method GET -Uri "https://api.central.sophos.com/partner/v1/provisioning/available-products" -Headers $headers

package main

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

func main() {
    req, err := http.NewRequest("GET", "https://api.central.sophos.com/partner/v1/provisioning/available-products", nil)
    if err != nil {
        panic(err)
    }
    req.Header.Set("Authorization", "Bearer <access-token>")
    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/partner/v1/provisioning/available-products", {
  method: "GET",
  headers: {
    "Authorization": "Bearer <access-token>",
    "X-Partner-ID": "<partner-id>",
  },
});
const data = await response.json();
console.log(data);

Responses

200 — List of available products.

Response fields

itemsarray of objectrequired
Products list.
Available product.
Show child attributesHide child attributes
codestringrequired
Sophos product code.
Must match the pattern ^[A-Z][a-zA-Z]{0,19}([0-9]{0,4})([-_][a-zA-Z0-9]{0,20}([0-9]{0,3})){0,5}$.
namestringrequired
Friendly product name.
productFamilystringrequired
The family type of the product.
Must be one of: endpoint, server, wireless, firewall, ndr, mobile, email, phishThreat, reporting, publicCloudSecurity, xdr, sase, encryption, professionalServices, cswitch, workspaceProtection, cisoAdvantage, other.
productGroupstring
The group type of the product.
Must be one of: switch, wifi.
productScoreintegerrequired
Product score number for ordering products low to high (10, 20, 30 ...).
defaultForUsageBillingTypebooleanrequired
Whether this product is offered as default when tenants are created and products are not specified.
conflictsWitharray of stringrequired
List of products that a product conflicts with.
Items must be unique. Each item must match the pattern ^[A-Z][a-zA-Z]{0,19}([0-9]{0,4})([-_][a-zA-Z0-9]{0,20}([0-9]{0,3})){0,5}$.
supportedBillingTypesarray of stringrequired
Supported billing types for a product.
Each item must be one of: usage, ordered, trial.
implicitAddonsarray of string
List of required addon products.
Items must be unique. Each item must match the pattern ^[A-Z][a-zA-Z]{0,19}([0-9]{0,4})([-_][a-zA-Z0-9]{0,20}([0-9]{0,3})){0,5}$.
explicitAddonsarray of string
List of additionaly available addon products.
Items must be unique. Each item must match the pattern ^[A-Z][a-zA-Z]{0,19}([0-9]{0,4})([-_][a-zA-Z0-9]{0,20}([0-9]{0,3})){0,5}$.

Errors

Status Meaning
500 Unexpected error.

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

Response examples

200

{
  "items": [
    {
      "code": "CMA-MSP",
      "name": "Central CMS Advanced MSP Monthly",
      "productFamily": "endpoint",
      "productScore": 10,
      "defaultForUsageBillingType": true,
      "conflictsWith": [
        "CMA-ADDON"
      ],
      "implicitAddons": [
        "XDR-RETENTION-ADDON"
      ],
      "supportedBillingTypes": [
        "usage",
        "ordered"
      ]
    }
  ]
}

See the guide for a narrative walkthrough of this API.