View this page in the latest version of Appian. VDI and Robot Management Share Share via LinkedIn Reddit Email Copy Link Print On This Page Tip: Remember to include the appropriate authentication headers in your HTTP request message when using this method. Use the VDI and robot management endpoints to retrieve robot configuration data, check which robots are eligible for task assignment, update Autologin credentials, and download the RPA agent installer. These endpoints support automated provisioning and maintenance of virtual desktop infrastructure (VDI) environments running Appian RPA robots. Get robot configuration GET: /robot/{id}/configuration Returns the complete AppianRPA.properties file content for a robot. Use this endpoint when provisioning new VDI machines or replacing an existing robot's configuration file. Path parameters Parameter Type Description id String Resource (node) identifier. For example, 69be887ed2c47a234f4b2c2d. To find this value, use the existing Node List endpoint. Response The call is successful if "invocationResult" = "OK". Attribute Data type Description propertiesContent String Complete AppianRPA.properties file content, ready to write to disk. The propertiesContent string contains the following properties: Property Always present Description connection.protocol Yes request (HTTP) or ssl (HTTPS). connection.host Yes Console hostname. connection.context Yes URL context path (for example, /rpa). rpa.uniqueKey Yes Site unique key (customer hash). robot.robotKey Yes Encrypted robot key. robot.robotKeyManualManagement Yes Whether manual key rotation is enabled. robot.userName If autologin configured Windows username for the autologin service. robot.userDomain If autologin configured and domain set Windows domain for the autologin service. Example response body: 1 2 3 4 5 6 7 { "invocationResult": "OK", "result": { "propertiesContent": "connection.protocol=ssl\nconnection.host=rpa.example.com\nconnection.context=/rpa\nrpa.uniqueKey=ABCDEF1234\nrobot.robotKey=ENCODED[...]\nrobot.robotKeyManualManagement=false\n" }, "exceptionThrownText": null } Error codes HTTP code Meaning 401 Invalid or missing API key. 403 Service account lacks permission to this robot. 404 Robot not found, or configuration not found. Get eligible robots GET: /robot/eligible Returns the list of robots eligible to receive robotic task assignments from the execution queue, filtered by the service account's permissions. The list is a point-in-time snapshot and may change between retrieval and action. Response The call is successful if "invocationResult" = "OK". The following elements are provided in the result.robots array. Attribute Data type Description id Integer Robot numeric ID. name String Robot display name. status String Current robot status. Status values: Status Meaning Can receive executions? Online Agent connected and free. Yes Standby Autologin service ready, or locked and runnable. Yes Busy Running a robotic task or recording. No Disabled Disabled by an admin. No Offline No agent and no autologin service. No Returns an empty list if no eligible robots fall within the service account's permissions. Example response body: 1 2 3 4 5 6 7 8 9 10 11 { "invocationResult": "OK", "result": { "robots": [ { "id": 1, "name": "Robot-001", "status": "Online" }, { "id": 2, "name": "Robot-002", "status": "Standby" }, { "id": 5, "name": "Robot-005", "status": "Offline" } ] }, "exceptionThrownText": null } Error codes HTTP code Meaning 401 Invalid or missing API key. Update Autologin credentials PUT: /robot/{id}/autologin-credentials Updates the Windows credentials used by the Autologin service for a robot's VDI machine. The new credentials take effect on the next Autologin sign-in cycle, not immediately. Note: The Autologin service must be installed and configured on the host machine for this endpoint to take effect. See manage-robots-installation-config.md for setup instructions. Path parameters Parameter Type Description id String Resource (node) identifier. Request body Parameter Type Required? Description username String Yes Windows username. Must be non-empty. password String Yes Windows password. Must be non-empty. domain String No Windows domain. Example request body: 1 2 3 4 5 { "username": "CORP\\svc_robot", "password": "[windows-password]", "domain": "CORP" } Caution: Never include plaintext passwords in source control or logs. Use a secrets manager or environment variable to supply the password value at runtime. Response The call is successful if "invocationResult" = "OK". The result field is null on success. Example response body: 1 2 3 4 5 { "invocationResult": "OK", "result": null, "exceptionThrownText": null } Error codes HTTP code Meaning 400 Missing or empty username or password. 401 Invalid or missing API key. 403 Service account lacks permission to this robot. 404 Robot not found. 409 Robot does not have Autologin configured. Download RPA installer GET: /robot/installer Downloads the RPA agent installer binary, with or without the Autologin service. Query parameters Parameter Type Default Description includeAutologin Boolean false Set to true to include the Autologin service in the installer. Response Returns a binary file download. Content-Type: application/octet-stream Content-Disposition: attachment; filename="rpa-installer.exe" (with Autologin) or "rpa-installer-agent-only.exe" (without) Error codes HTTP code Meaning 401 Invalid or missing API key. 404 Installer binary not found on server. VDI and robot endpoint code examples The following examples show how to call the VDI and robot management endpoints. Replace <SITE_URL> with your RPA Console hostname and <API_KEY> with your API key. Get robot configuration (cURL) 1 2 3 4 5 RESOURCE_ID="69be887ed2c47a234f4b2c2d" curl -s -H "Authorization: Bearer ${API_KEY}" \ "${SITE_URL}/rpa/rest/oo/robot/${RESOURCE_ID}/configuration" \ | jq -r '.result.propertiesContent' > AppianRPA.properties Get eligible robots (cURL) 1 2 curl -s -H "Authorization: Bearer ${API_KEY}" \ "${SITE_URL}/rpa/rest/oo/robot/eligible" Update Autologin credentials (cURL) 1 2 3 4 5 6 7 RESOURCE_ID="69be887ed2c47a234f4b2c2d" curl -s -X PUT \ -H "Authorization: Bearer ${API_KEY}" \ -H "Content-Type: application/json" \ -d '{"username": "CORP\\svc_robot", "password": "[windows-password]", "domain": "CORP"}' \ "${SITE_URL}/rpa/rest/oo/robot/${RESOURCE_ID}/autologin-credentials" Download installer (cURL) 1 2 3 4 5 6 7 8 9 # With Autologin service curl -s -H "Authorization: Bearer ${API_KEY}" \ -o rpa-installer.exe \ "${SITE_URL}/rpa/rest/oo/robot/installer?includeAutologin=true" # Agent only curl -s -H "Authorization: Bearer ${API_KEY}" \ -o rpa-installer-agent-only.exe \ "${SITE_URL}/rpa/rest/oo/robot/installer?includeAutologin=false" Full VDI provisioning (PowerShell) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 param( [Parameter(Mandatory=$true)] [string]$SiteUrl, [Parameter(Mandatory=$true)] [string]$ResourceId, [Parameter(Mandatory=$true)] [string]$InstallPath, [Parameter(Mandatory=$true)] [string]$WindowsUser, [Parameter(Mandatory=$true)] [string]$WindowsDomain ) $ApiKey = $env:RPA_API_KEY $WinPass = $env:WINDOWS_PASSWORD # Retrieved from secrets manager at runtime $Headers = @{ "Authorization" = "Bearer $ApiKey" } # 1. Download installer Invoke-WebRequest ` -Uri "$SiteUrl/rpa/rest/oo/robot/installer?includeAutologin=true" ` -Headers $Headers ` -OutFile "$InstallPath\rpa-installer.exe" # 2. Get robot configuration and write properties file $config = Invoke-RestMethod ` -Uri "$SiteUrl/rpa/rest/oo/robot/$ResourceId/configuration" ` -Headers $Headers $config.result.propertiesContent | Out-File ` -FilePath "$InstallPath\AppianRPA.properties" ` -Encoding UTF8 # 3. Set Autologin credentials $body = @{ username = $WindowsUser password = $WinPass domain = $WindowsDomain } | ConvertTo-Json Invoke-RestMethod ` -Uri "$SiteUrl/rpa/rest/oo/robot/$ResourceId/autologin-credentials" ` -Method PUT ` -Headers ($Headers + @{ "Content-Type" = "application/json" }) ` -Body $body Write-Host "VDI provisioning complete for resource $ResourceId." Feedback Was this page helpful? SHARE FEEDBACK Loading...