Available products¶
GET/
Partner API · Provisioning
List of available products.
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 objectrequiredProducts list.
Available product.
Show child attributesHide child attributes
codestringrequiredSophos product code.
Must match the pattern
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}$.namestringrequiredFriendly product name.
productFamilystringrequiredThe family type of the product.
Must be one of:
Must be one of:
endpoint, server, wireless, firewall, ndr, mobile, email, phishThreat, reporting, publicCloudSecurity, xdr, sase, encryption, professionalServices, cswitch, workspaceProtection, cisoAdvantage, other.productGroupstringThe group type of the product.
Must be one of:
Must be one of:
switch, wifi.productScoreintegerrequiredProduct score number for ordering products low to high (10, 20, 30 ...).
defaultForUsageBillingTypebooleanrequiredWhether this product is offered as default when tenants are created and products are not specified.
conflictsWitharray of stringrequiredList of products that a product conflicts with.
Items must be unique. Each item must match the pattern
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 stringrequiredSupported billing types for a product.
Each item must be one of:
Each item must be one of:
usage, ordered, trial.implicitAddonsarray of stringList of required addon products.
Items must be unique. Each item must match the pattern
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 stringList of additionaly available addon products.
Items must be unique. Each item must match the pattern
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.