Citrix Virtual Apps and Desktops REST APIs

How to get sessions that are running on a machine

Use REST APIs to get sessions that are running on a machine in your Citrix Virtual Apps and Desktops site.

Follow the prerequisites and examples to get started with this API.

You can make API requests using the PowerShell code, C# code, Python, or any tool that supports invoking the REST API.

Prerequisites to get sessions that are running on a machine

Get sessions that are running on a machine using any REST API tool

Learn from the following example to get sessions that are running on a machine using any REST API tool.

Request

GET https://[DdcServerAddress]/cvad/manage/Machines/{nameOrId}/Sessions HTTP/1.1 Accept: application/json Content-Type: application/json; charset=utf-8 Authorization: CWSAuth bearer=<token-from-prerequisites> Citrix-CustomerId: loy6oujtu6a4 Citrix-InstanceId: 22ded57c-0306-47e4-b6e8-fed6252759e1

Response

HTTP/1.1 200 OK citrix-transactionid: ba78d60e-eb03-4e15-83fb-55ee32be61be content-Length: 1755 content-Type: application/json; charset=utf-8 date: "Mon, 07 Dec 2020 09:25:11 GMT" Server: Citrix Systems, Inc. { "Items": [ { "Id": "c12a6ce8-a3cf-4db5-83d4-d7b23374b575", "Uid": 34230, "ApplicationsInUse": [ { ... } ], "AppState": "Active", "AppStateLastChangeTime": "12/7/2020 7:25:34 AM", "Brokering": { "AutonomouslyBrokered": false, "DurationMilliseconds": null, "Time": null, "UserName": null, "UserSid": null }, "Client": { ... }, "Connection": { "ConnectedViaHostName": null, "ConnectedViaIP": "10.0.16.11", "ConnectionMode": "Brokered", "LaunchedViaHostName": null, "LaunchedViaIP": "52.151.217.206", "Protocol": "Hdx", "SecureIcaActive": false, "SmartAccessTags": [] }, "ContainerScopes": [ { "Scopes": [ { ... } ], "ScopeType": "MachineCatalog" }, { "Scopes": [ { ... } ], "ScopeType": "DeliveryGroup" } ], ... ] }

Get sessions that are running on a machine using PowerShell

Learn from the following example to get sessions that are running on a machine using any PowerShell code.

function GetMachineSessions { param ( [Parameter(Mandatory=$true)] [string] $customerid, [Parameter(Mandatory=$true)] [string] $siteid, [Parameter(Mandatory=$true)] [string] $nameOrId, [Parameter(Mandatory=$true)] [string] $bearerToken ) $requestUri = [string]::Format("https://[DdcServerAddress]/cvad/manage/Machines/{0}/Sessions", $nameOrId) $headers = @{ "Accept" = "application/json"; "Authorization" = "CWSAuth Bearer=$bearerToken"; "Citrix-CustomerId" = $customerid; "Citrix-InstanceId" = $siteid; } $response = Invoke-RestMethod -Uri $requestUri -Method GET -Headers $headers return $response } $customerId = "customer1" $siteId = "61603f15-cdf9-4c7f-99ff-91636601a795" $nameOrId = "56f1cbf3-1cc6-40cd-9c82-c95633ba88bb" $bearerToken = "ey1.." $response = GetMachineSessions $customerid $siteid $nameOrId $bearerToken

Get sessions that are running on a machine using C# code

Learn from the following example to get sessions that are running on a machine using any C# code.

public static async Task<string> GetMachineSessions( string customerid, string siteid, string nameOrId, string bearerToken) { var requestUri = string.Format("https://[DdcServerAddress]/cvad/manage/Machines/{0}/Sessions", nameOrId); using (var client = new HttpClient()) { client.DefaultRequestHeaders.Accept.ParseAdd("application/json"); client.DefaultRequestHeaders.Add("Citrix-CustomerId", customerid); client.DefaultRequestHeaders.Add("Citrix-InstanceId", siteid); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("CWSAuth Bearer=" + bearerToken); var response = await client.GetAsync(requestUri); if (response != null) { var content = await response.Content.ReadAsStringAsync(); return content; } return null; } }

Get sessions that are running on a machine using Python

Learn from the following example to get sessions that are running on a machine using Python.

import requests def get_machine_sessions(bearerToken, customerid, siteid, nameOrId): request_uri = "https://[DdcServerAddress]/cvad/manage/Machines/{0}/Sessions".format(nameOrId) headers = { 'Authorization': 'CWSAuth Bearer=%s' % bearerToken, 'Citrix-CustomerId': customerid, 'Citrix-InstanceId': siteid, 'Content-Type': 'application/json', 'Accept': 'application/json' } response = requests.get(request_uri, headers = headers) return response.json()
Resources
Citrix Virtual Apps and Desktops REST APIs OpenAPI Specification
Copy Download
How to get sessions that are running on a machine