Getting started
To use the HealthData APIs, each API request must contain the following fields:
- 
CCAuth Token: Secure HTTP requests sent to Citrix Cloud (CC) use a custom Authorizationheader that contains a CC bearer token. Bearer tokens are required for actions that take place on behalf of a user.
- 
Citrix Customer ID: The Customer ID is passed using the custom Citrix-CustomerIdHeader in the request.
- 
Citrix Connector ID: The Connector ID is passed using the edgeServerIdquery parameter in the request URL.
CC Auth Token
You can obtain a CC Auth token from the API Client ID and Secret. For more information, see the Getting Started section.
Customer ID
Customer ID is a mandatory parameter that must be passed in the Citrix-CustomerId header of the request. To get the Customer ID:
- Log in to the Citrix Cloud console.
- Select the Identity and Access Management option from the menu.
- Click API Access tab. You can see the customer ID in the description above the Create Client button.
Connector ID
Connector ID is a mandatory parameter that must be passed in the edgeServerId query parameter of the request URL. To get the connector ID:
- Log in to the Citrix Cloud console.
- Select the Resource Locations option from the menu.
- Select the resource location containing the connector you are interested in.
- Select View Connector Data on the connector in which you are interested
- The URL of Connector Data page will contain the ID of the connector.
Get metric data for a connector
This demonstrates how to issue a REST request to retrieve all the metric data for a connector.
Request
GET https://api.cloud.com/healthdata/metricdata?edgeServerId=connectorid  HTTP/1.1
Authorization: CwsAuth Bearer=<token-from-call-to-trust>
Accept: application/json
Citrix-CustomerId: <CustomerId>
<!--NeedCopy-->
Note:
Replace CustomerId in the request above with the ID of the customer you wish to query.
Response
HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Length: 8571
Content-Type: application/json; charset=utf-8
Date: Fri, 13 Jan 2023 15:24:16 GMT
x-cws-transactionid: c0a9bc16-6a55-4563-aee3-f1eef9c86b49
{
    "cpuData": [
        {
            "identifier": null,
            "alert": false,
            "subtype": "\\Processor(0)\\% Processor Time",
            "data": {
                "1673538206": 3.83044338,
                "1673541807": 3.82269049,
                "1673545407": 3.83231139,
                "1673549007": 3.81026769,
                "1673552608": 3.44340563,
                "1673556208": 3.41506648,
                "1673559808": 3.5283215,
                "1673563408": 3.49377179,
                "1673567009": 3.513845,
                "1673570609": 3.479175,
                "1673574209": 3.55315447,
                "1673577810": 3.57821846,
                "1673581410": 3.58536386,
                "1673585010": 3.6157372,
                "1673588610": 3.62093019,
                "1673592241": 3.60159469,
                "1673595810": 3.78742,
                "1673599410": 3.67533946,
                "1673603011": 4.48120546,
                "1673606611": 4.212815,
                "1673610211": 4.076293,
                "1673613812": 4.024987,
                "1673617417": 4.04589558,
                "1673621017": 3.96808529
            },
            "maxValue": 100.0,
            "unit": null,
            "chartType": "Line"
        },
        {
            "identifier": null,
            "alert": false,
            "subtype": "\\Processor(1)\\% Processor Time",
            "data": {
                "1673538206": 3.773996,
                "1673541807": 3.79821777,
                "1673545407": 3.78251,
                "1673549007": 3.74487281,
                "1673552608": 3.276492,
                "1673556208": 3.28611135,
                "1673559808": 3.5003624,
                "1673563408": 3.48354268,
                "1673567009": 3.5470643,
                "1673570609": 3.51648116,
                "1673574209": 3.57196021,
                "1673577810": 3.60704637,
                "1673581410": 3.60925078,
                "1673585010": 3.6356225,
                "1673588610": 3.63668418,
                "1673592241": 3.60916162,
                "1673595810": 3.81564331,
                "1673599410": 3.60980129,
                "1673603011": 4.358875,
                "1673606611": 4.13552427,
                "1673610211": 4.16337252,
                "1673613812": 4.08536673,
                "1673617417": 4.086117,
                "1673621017": 3.96865344
            },
            "maxValue": 100.0,
            "unit": null,
            "chartType": "Line"
        },
        {
            "identifier": null,
            "alert": false,
            "subtype": "\\Processor(_Total)\\% Processor Time",
            "data": {
                "1673538206": 3.79912853,
                "1673541807": 3.807314,
                "1673545407": 3.804279,
                "1673549007": 3.77441478,
                "1673552608": 3.357189,
                "1673556208": 3.34763646,
                "1673559808": 3.51160812,
                "1673563408": 3.48594618,
                "1673567009": 3.52775264,
                "1673570609": 3.49503541,
                "1673574209": 3.55976534,
                "1673577810": 3.58985233,
                "1673581410": 3.59451,
                "1673585010": 3.62284946,
                "1673588610": 3.62595558,
                "1673592241": 3.60253263,
                "1673595810": 3.79793835,
                "1673599410": 3.63901,
                "1673603011": 4.416372,
                "1673606611": 4.170683,
                "1673610211": 4.116429,
                "1673613812": 4.051854,
                "1673617417": 4.06271648,
                "1673621017": 3.96513128
            },
            "maxValue": 100.0,
            "unit": null,
            "chartType": "Line"
        }
    ],
    "memoryData": [
        {
            "identifier": null,
            "alert": false,
            "subtype": "\\Memory\\Available MBytes",
            "data": {
                "1673538206": 926.0062,
                "1673541806": 925.5116,
                "1673545406": 926.801758,
                "1673549007": 926.751648,
                "1673552607": 926.579834,
                "1673556207": 925.946655,
                "1673559807": 925.2132,
                "1673563408": 923.1965,
                "1673567008": 920.217346,
                "1673570608": 917.5735,
                "1673574209": 915.5464,
                "1673577809": 916.266357,
                "1673581409": 918.0135,
                "1673585010": 921.6882,
                "1673588610": 924.169434,
                "1673592240": 925.4478,
                "1673595810": 925.9856,
                "1673599411": 926.254456,
                "1673603011": 922.3902,
                "1673606611": 920.419067,
                "1673610212": 918.2355,
                "1673613812": 916.745544,
                "1673617417": 917.953735,
                "1673621012": 917.4862
            },
            "maxValue": 4087.039,
            "unit": null,
            "chartType": "Line"
        }
    ],
    "networkData": [
        {
            "identifier": null,
            "alert": false,
            "subtype": "\\Network Interface(XenServer PV Network Device _0)\\Bytes Total/sec",
            "data": {
                "1673538206": 7609.03955,
                "1673541807": 7445.62939,
                "1673545407": 7611.879,
                "1673549012": 7534.901,
                "1673552608": 7403.955,
                "1673556208": 7363.656,
                "1673559808": 7583.072,
                "1673563408": 7624.59375,
                "1673567009": 6834.60938,
                "1673570609": 5604.63965,
                "1673574210": 8288.448,
                "1673577810": 9436.139,
                "1673581410": 10106.6836,
                "1673585010": 10205.31,
                "1673588611": 10355.7783,
                "1673592241": 10573.4619,
                "1673595811": 10344.4531,
                "1673599412": 9944.942,
                "1673603012": 9880.492,
                "1673606612": 9565.367,
                "1673610212": 9330.491,
                "1673613813": 9339.264,
                "1673617413": 9800.397,
                "1673621013": 9955.202
            },
            "maxValue": 1E+11,
            "unit": null,
            "chartType": "Line"
        },
        {
            "identifier": null,
            "alert": false,
            "subtype": "\\Network Interface(Microsoft ISATAP Adapter)\\Bytes Total/sec",
            "data": {
                "1673538206": 0.0,
                "1673541807": 0.0,
                "1673545407": 0.0,
                "1673549012": 0.0,
                "1673552608": 0.0,
                "1673556208": 0.0,
                "1673559808": 0.0,
                "1673563408": 0.0,
                "1673567009": 0.0,
                "1673570609": 0.0,
                "1673574210": 0.0,
                "1673577810": 0.0,
                "1673581410": 0.0,
                "1673585010": 0.0,
                "1673588611": 0.0,
                "1673592241": 0.0,
                "1673595811": 0.0,
                "1673599412": 0.0,
                "1673603012": 0.0,
                "1673606612": 0.0,
                "1673610212": 0.0,
                "1673613813": 0.0,
                "1673617413": 0.0,
                "1673621013": 0.0
            },
            "maxValue": 100000.0,
            "unit": null,
            "chartType": "Line"
        }
    ],
    "diskData": [
        {
            "identifier": null,
            "alert": false,
            "subtype": "\\LogicalDisk(C:)\\Free Megabytes",
            "data": {
                "1673538206": 72178.0,
                "1673541807": 72185.0,
                "1673545407": 72187.0,
                "1673549007": 72180.0,
                "1673552608": 72174.0,
                "1673556208": 72160.0,
                "1673559808": 71888.0,
                "1673563408": 71871.0,
                "1673567009": 71874.0,
                "1673570609": 71865.0,
                "1673574209": 71848.0,
                "1673577810": 71881.0,
                "1673581410": 71873.0,
                "1673585010": 71858.0,
                "1673588610": 71855.0,
                "1673592241": 71847.0,
                "1673595811": 71845.0,
                "1673599411": 71844.0,
                "1673603012": 71824.0,
                "1673606612": 71810.0,
                "1673610212": 71806.0,
                "1673613812": 71817.0,
                "1673617413": 71894.0,
                "1673621013": 71889.0
            },
            "maxValue": 101770.0,
            "unit": null,
            "chartType": "Line"
        }
    ],
    "providersData": {}
}
<!--NeedCopy-->
C# Example
The following example illustrates how to query a connector’s metric data.
public static async Task<RecordsResult> GetMetricData(string bearerToken, string customerId, string connectorId)
{
    var client = new HttpClient();
    client.DefaultRequestHeaders.Accept.ParseAdd("application/json");
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("CwsAuth", "Bearer=" + bearerToken);
    client.DefaultRequestHeaders.Add("Citrix-CustomerId", customerId);
    client.DefaultRequestHeaders.Add("Citrix-ConnectorId", connectorId);
    var response = await client.GetAsync(
        $"https://api.cloud.com/healthdata/metrics"
    );
    response.EnsureSuccessStatusCode();
    var content = await response.Content.ReadAsStringAsync();
    return JsonConvert.DeserializeObject<MetricDataEntity>(content);
}
public class MetricDataResponsesModel
{
    /// <summary>
    /// Data for CPU.
    /// </summary>
    public IList<MetricDataResponseModel> CpuData { get; set; }
    /// <summary>
    /// Data for memory.
    /// </summary>
    public IList<MetricDataResponseModel> MemoryData { get; set; }
    /// <summary>
    /// Data for network.
    /// </summary>
    public IList<MetricDataResponseModel> NetworkData { get; set; }
    /// <summary>
    /// Data for disk.
    /// </summary>
    public IList<MetricDataResponseModel> DiskData { get; set; }
    /// <summary>
    /// Data for providers.
    /// </summary>
    public IDictionary<string, IDictionary<string, IList<MetricDataResponseModel>>> ProvidersData { get; set; }
}
public class MetricDataResponseModel
{
    /// <summary>
    /// Metric data identifier.
    /// </summary>
    public string Identifier { get; set; }
    /// <summary>
    /// Raise alert for this metric
    /// </summary>
    public bool Alert { get; set; }
    /// <summary>
    /// SubType
    /// </summary>
    public string Subtype { get; set; }
    /// <summary>
    /// Data dictionary. 
    /// </summary>
    public IDictionary<ulong, float> Data { get; set; }
    /// <summary>
    /// The max value the data set can have
    /// </summary>
    public float MaxValue { get; set; }
    /// <summary>
    /// Measurement unit (e.g. calls/minute).
    /// </summary>
    public string Unit { get; set; }
    /// <summary>
    /// Chart type.
    /// </summary>
    public ChartType ChartType { get; set; }
}
<!--NeedCopy-->
Trigger a new health check
To trigger a new health check, you can make a POST request to:
https://cws.citrixworkspacesapi.net/{customerId}/healthdatarequests
<!--NeedCopy-->
with body:
{
    "objectIdentifier": "{connectorId}",
    "objectType": "EdgeServers"
}
<!--NeedCopy-->
The result will be included in subsequent requests to the first API above.