Free cookie consent management tool by TermsFeed

VDI and Robot Management

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