- Getting Started
- Swagger Definition
- Orchestrator APIs
- Alerts Requests
- Assets Requests
- Calendars Requests
- Environments Requests
- Folders Requests
- Generic Tasks Requests
- Jobs Requests
- Libraries Requests
- License Requests
- Packages Requests
- Permissions Requests
- Personal Workspaces Requests
- Processes Requests
- Queue Items Requests
- Queue Retention Policy Requests
- Robots Requests
- Roles Requests
- Schedules Requests
- Settings Requests
- Storage Bucket Requests
- Tasks Requests
- Task Catalogs Requests
- Task Forms Requests
- Tenants Requests
- Transactions Requests
- Users Requests
- Webhooks Requests
Orchestrator API Guide
Robots Requests
LicenseKey
parameter, you have to make a GET request to the /odata/Robots(Id)
endpoint.
The following example enables you to view the current status of the Robot with the 749 Id.
GET
https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/Sessions?$top=10&$filter=Robot/Id eq 749&$select=State
Request headers
Key |
Value |
---|---|
Authorization |
Bearer |
Response code
200 OK
Response body
{
"@odata.context": "https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#Sessions(State)",
"@odata.count": 1,
"value": [
{
"State": "Available"
}
]
}
{
"@odata.context": "https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#Sessions(State)",
"@odata.count": 1,
"value": [
{
"State": "Available"
}
]
}
The following example enables you to view the current status of the Robot with the DocBot Name.
GET
https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/Sessions?$top=10&$filter=Robot/Name eq 'DocBot'&$select=State
Request headers
Key |
Value |
---|---|
Authorization |
Bearer |
Response code
200 OK
Response body
{
"@odata.context": "https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#Sessions(State)",
"@odata.count": 1,
"value": [
{
"State": "Available"
}
]
}
{
"@odata.context": "https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#Sessions(State)",
"@odata.count": 1,
"value": [
{
"State": "Available"
}
]
}
The example below requests the first 10 Robots that have the Available status and sent a heartbeat in the last 2 minutes. Only the relevant robot information is displayed. You can check the heartbeat by using the Reporting Time parameter and subtract 2 minutes from the current time. As you might know, if a Robot has not sent a heartbeat in the last 2 minutes, it is flagged as unresponsive.
GET
https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/Sessions?$top=10&$filter=State eq 'Available' and ReportingTime gt 2018-03-05T03:48:04.147Z&$select=Robot&$expand=Robot
{
"@odata.context": "https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#Sessions(Robot)",
"@odata.count": 2,
"value": [
{
"Robot": {
"LicenseKey": null,
"MachineName": "MBOBOC",
"Name": "DocBot",
"Username": "UIPATH\\MADALINA.BOBOC",
"Description": null,
"Type": "NonProduction",
"Password": null,
"RobotEnvironments": "doc_env,WR_env,Group1",
"Id": 749,
"ExecutionSettings": null
}
},
{
"Robot": {
"LicenseKey": null,
"MachineName": "midragomir",
"Name": "mr-Rob",
"Username": "uipath\\mircea.dragomir",
"Description": "Alerts",
"Type": "NonProduction",
"Password": null,
"RobotEnvironments": "",
"Id": 902,
"ExecutionSettings": null
}
}
]
}
{
"@odata.context": "https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#Sessions(Robot)",
"@odata.count": 2,
"value": [
{
"Robot": {
"LicenseKey": null,
"MachineName": "MBOBOC",
"Name": "DocBot",
"Username": "UIPATH\\MADALINA.BOBOC",
"Description": null,
"Type": "NonProduction",
"Password": null,
"RobotEnvironments": "doc_env,WR_env,Group1",
"Id": 749,
"ExecutionSettings": null
}
},
{
"Robot": {
"LicenseKey": null,
"MachineName": "midragomir",
"Name": "mr-Rob",
"Username": "uipath\\mircea.dragomir",
"Description": "Alerts",
"Type": "NonProduction",
"Password": null,
"RobotEnvironments": "",
"Id": 902,
"ExecutionSettings": null
}
}
]
}
The following example looks for the top 10 Robots that have the Disconnected status and expands Robot information.
GET
https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/Sessions?$top=10&$filter=State eq 'Disconnected'&$expand=Robot
{
"@odata.context": "https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#Sessions",
"@odata.count": 2,
"value": [
{
"State": "Disconnected",
"ReportingTime": "2018-01-15T18:47:07.93Z",
"Info": null,
"IsUnresponsive": false,
"Id": 718,
"Robot": {
"LicenseKey": null,
"MachineName": "DESKTOP-PMFQGCB",
"Name": "Stan",
"Username": "Alex",
"Description": null,
"Type": "Unattended",
"Password": null,
"RobotEnvironments": "doc_env,a_invoke_env,Group1",
"Id": 759,
"ExecutionSettings": null
}
},
{
"State": "Disconnected",
"ReportingTime": "2018-01-18T18:14:14.34Z",
"Info": null,
"IsUnresponsive": false,
"Id": 730,
"Robot": {
"LicenseKey": null,
"MachineName": "DESKTOP-PMFQGCB",
"Name": "!~#$%^&*()_+=-",
"Username": "dragomirmir",
"Description": null,
"Type": "NonProduction",
"Password": null,
"RobotEnvironments": "WR_env",
"Id": 771,
"ExecutionSettings": null
}
}
]
}
{
"@odata.context": "https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#Sessions",
"@odata.count": 2,
"value": [
{
"State": "Disconnected",
"ReportingTime": "2018-01-15T18:47:07.93Z",
"Info": null,
"IsUnresponsive": false,
"Id": 718,
"Robot": {
"LicenseKey": null,
"MachineName": "DESKTOP-PMFQGCB",
"Name": "Stan",
"Username": "Alex",
"Description": null,
"Type": "Unattended",
"Password": null,
"RobotEnvironments": "doc_env,a_invoke_env,Group1",
"Id": 759,
"ExecutionSettings": null
}
},
{
"State": "Disconnected",
"ReportingTime": "2018-01-18T18:14:14.34Z",
"Info": null,
"IsUnresponsive": false,
"Id": 730,
"Robot": {
"LicenseKey": null,
"MachineName": "DESKTOP-PMFQGCB",
"Name": "!~#$%^&*()_+=-",
"Username": "dragomirmir",
"Description": null,
"Type": "NonProduction",
"Password": null,
"RobotEnvironments": "WR_env",
"Id": 771,
"ExecutionSettings": null
}
}
]
}
The following example retrieves the details of the Robot with the 216 Id. Please note that this Robot uses smart card authentication.
GET
https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/Robots(216)
{
"@odata.context": "https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#Robots/$entity",
"LicenseKey": "fc157179-3724-4bb0-acd2-8261bef82d01",
"MachineName": "CAPETRINA",
"MachineId": 15,
"Name": "Gustavee",
"Username": "uipath\\john.smith",
"ExternalName": null,
"Description": null,
"Type": "Development",
"HostingType": "Standard",
"ProvisionType": "Manual",
"Password": null,
"CredentialStoreId": null,
"UserId": 45,
"Enabled": true,
"CredentialType": null,
"RobotEnvironments": "",
"IsExternalLicensed": false,
"LimitConcurrentExecution": false,
"Id": 216,
"ExecutionSettings": {
"ResolutionHeight": 0,
"ResolutionDepth": 0,
"FontSmoothing": false,
"AutoDownloadProcess": false
}
}
{
"@odata.context": "https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#Robots/$entity",
"LicenseKey": "fc157179-3724-4bb0-acd2-8261bef82d01",
"MachineName": "CAPETRINA",
"MachineId": 15,
"Name": "Gustavee",
"Username": "uipath\\john.smith",
"ExternalName": null,
"Description": null,
"Type": "Development",
"HostingType": "Standard",
"ProvisionType": "Manual",
"Password": null,
"CredentialStoreId": null,
"UserId": 45,
"Enabled": true,
"CredentialType": null,
"RobotEnvironments": "",
"IsExternalLicensed": false,
"LimitConcurrentExecution": false,
"Id": 216,
"ExecutionSettings": {
"ResolutionHeight": 0,
"ResolutionDepth": 0,
"FontSmoothing": false,
"AutoDownloadProcess": false
}
}
/odata/Robots/UiPath.Server.Configuration.OData.GetRobotsForProcess
. It enables you to identify, on the fly, which Robots can execute the package with the input_output_arguments_example
id.
GET
https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/Robots/UiPath.Server.Configuration.OData.GetRobotsForProcess(processId='input_output_arguments_example')
{
"@odata.context": "https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#Robots",
"@odata.count": 2,
"value": [
{
"LicenseKey": null,
"MachineName": "DESKTOP-ASBD",
"MachineId": 129,
"Name": "Stan",
"Username": "Alex",
"Description": null,
"Version": null,
"Type": "Unattended",
"HostingType": "Standard",
"Password": null,
"RobotEnvironments": "doc_env,a_invoke_env,Group1",
"Id": 759,
"ExecutionSettings": null
},
{
"LicenseKey": null,
"MachineName": "Doc",
"MachineId": 1066,
"Name": "DocBot",
"Username": "uipath\\documentation",
"Description": null,
"Version": "18.3.0.558",
"Type": "NonProduction",
"HostingType": "Standard",
"Password": null,
"RobotEnvironments": "doc_env",
"Id": 1684,
"ExecutionSettings": null
}
]
}
{
"@odata.context": "https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#Robots",
"@odata.count": 2,
"value": [
{
"LicenseKey": null,
"MachineName": "DESKTOP-ASBD",
"MachineId": 129,
"Name": "Stan",
"Username": "Alex",
"Description": null,
"Version": null,
"Type": "Unattended",
"HostingType": "Standard",
"Password": null,
"RobotEnvironments": "doc_env,a_invoke_env,Group1",
"Id": 759,
"ExecutionSettings": null
},
{
"LicenseKey": null,
"MachineName": "Doc",
"MachineId": 1066,
"Name": "DocBot",
"Username": "uipath\\documentation",
"Description": null,
"Version": "18.3.0.558",
"Type": "NonProduction",
"HostingType": "Standard",
"Password": null,
"RobotEnvironments": "doc_env",
"Id": 1684,
"ExecutionSettings": null
}
]
}
The following example enables you to view Robot logs for the Robot named DocBot.
GET
https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/RobotLogs?$top=100&$skip=200&$filter=RobotName eq 'DocBot'
{
"@odata.context": "https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#RobotLogs",
"@odata.count": 202,
"value": [
{
"Level": "Info",
"WindowsIdentity": "UIPATH\\john.smith",
"ProcessName": "TestingSequence_DOC",
"TimeStamp": "2019-10-14T13:55:18.2473626Z",
"Message": "TestingSequence_DOC execution started",
"JobKey": "e49c0012-ee01-45e4-884c-0ce1f2aa6fbb",
"RawMessage": "{\r\n \"message\": \"TestingSequence_DOC execution started\",\r\n \"level\": \"Information\",\r\n \"logType\": \"Default\",\r\n \"timeStamp\": \"2019-10-14T13:55:18.2473626+00:00\",\r\n \"fingerprint\": \"972a32c3-95d9-4264-ae5d-af589bf4f0b5\",\r\n \"windowsIdentity\": \"UIPATH\\\\petrina.calota\",\r\n \"machineName\": \"LAPTOP-IN7198N3\",\r\n \"processName\": \"TestingSequence_DOC\",\r\n \"processVersion\": \"1.1.7024.37929\",\r\n \"jobId\": \"e49c0012-ee01-45e4-884c-0ce1f2aa6fbb\",\r\n \"robotName\": \"G\",\r\n \"machineId\": 229978,\r\n \"organizationUnitId\": 67543,\r\n \"fileName\": \"Main\"\r\n}",
"RobotName": "DocBot",
"MachineId": 229978,
"Id": 0
},
{
"Level": "Info",
"WindowsIdentity": "UIPATH\\john.smith",
"ProcessName": "TestingSequence_DOC",
"TimeStamp": "2019-10-14T13:57:21.4985672Z",
"Message": "TestingSequence_DOC execution ended",
"JobKey": "e49c0012-ee01-45e4-884c-0ce1f2aa6fbb",
"RawMessage": "{\r\n \"message\": \"TestingSequence_DOC execution ended\",\r\n \"level\": \"Information\",\r\n \"logType\": \"Default\",\r\n \"timeStamp\": \"2019-10-14T13:57:21.4985672+00:00\",\r\n \"fingerprint\": \"e973b4f2-deec-4290-978b-3a8af0769b35\",\r\n \"windowsIdentity\": \"UIPATH\\\\petrina.calota\",\r\n \"machineName\": \"LAPTOP-IN7198N3\",\r\n \"processName\": \"TestingSequence_DOC\",\r\n \"processVersion\": \"1.1.7024.37929\",\r\n \"jobId\": \"e49c0012-ee01-45e4-884c-0ce1f2aa6fbb\",\r\n \"robotName\": \"G\",\r\n \"machineId\": 229978,\r\n \"organizationUnitId\": 67543,\r\n \"totalExecutionTimeInSeconds\": 123,\r\n \"totalExecutionTime\": \"00:02:03\",\r\n \"fileName\": \"Main\"\r\n}",
"RobotName": "DocBot",
"MachineId": 229978,
"Id": 0
}
]
}
{
"@odata.context": "https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/$metadata#RobotLogs",
"@odata.count": 202,
"value": [
{
"Level": "Info",
"WindowsIdentity": "UIPATH\\john.smith",
"ProcessName": "TestingSequence_DOC",
"TimeStamp": "2019-10-14T13:55:18.2473626Z",
"Message": "TestingSequence_DOC execution started",
"JobKey": "e49c0012-ee01-45e4-884c-0ce1f2aa6fbb",
"RawMessage": "{\r\n \"message\": \"TestingSequence_DOC execution started\",\r\n \"level\": \"Information\",\r\n \"logType\": \"Default\",\r\n \"timeStamp\": \"2019-10-14T13:55:18.2473626+00:00\",\r\n \"fingerprint\": \"972a32c3-95d9-4264-ae5d-af589bf4f0b5\",\r\n \"windowsIdentity\": \"UIPATH\\\\petrina.calota\",\r\n \"machineName\": \"LAPTOP-IN7198N3\",\r\n \"processName\": \"TestingSequence_DOC\",\r\n \"processVersion\": \"1.1.7024.37929\",\r\n \"jobId\": \"e49c0012-ee01-45e4-884c-0ce1f2aa6fbb\",\r\n \"robotName\": \"G\",\r\n \"machineId\": 229978,\r\n \"organizationUnitId\": 67543,\r\n \"fileName\": \"Main\"\r\n}",
"RobotName": "DocBot",
"MachineId": 229978,
"Id": 0
},
{
"Level": "Info",
"WindowsIdentity": "UIPATH\\john.smith",
"ProcessName": "TestingSequence_DOC",
"TimeStamp": "2019-10-14T13:57:21.4985672Z",
"Message": "TestingSequence_DOC execution ended",
"JobKey": "e49c0012-ee01-45e4-884c-0ce1f2aa6fbb",
"RawMessage": "{\r\n \"message\": \"TestingSequence_DOC execution ended\",\r\n \"level\": \"Information\",\r\n \"logType\": \"Default\",\r\n \"timeStamp\": \"2019-10-14T13:57:21.4985672+00:00\",\r\n \"fingerprint\": \"e973b4f2-deec-4290-978b-3a8af0769b35\",\r\n \"windowsIdentity\": \"UIPATH\\\\petrina.calota\",\r\n \"machineName\": \"LAPTOP-IN7198N3\",\r\n \"processName\": \"TestingSequence_DOC\",\r\n \"processVersion\": \"1.1.7024.37929\",\r\n \"jobId\": \"e49c0012-ee01-45e4-884c-0ce1f2aa6fbb\",\r\n \"robotName\": \"G\",\r\n \"machineId\": 229978,\r\n \"organizationUnitId\": 67543,\r\n \"totalExecutionTimeInSeconds\": 123,\r\n \"totalExecutionTime\": \"00:02:03\",\r\n \"fileName\": \"Main\"\r\n}",
"RobotName": "DocBot",
"MachineId": 229978,
"Id": 0
}
]
}
GET requests for Robot logs stored using Elasticsearch only retrieve the first 10000 entries. This is due to an Elasticsearch limitation, and it does not occur if you are using SQL.
$top
and $skip
parameters which go beyond the 10,000 limit returns the following error message: "Depth of pagination is limited in Elasticsearch
by the max_result_window index setting. Make sure skip + take is lower than 10000".
RobotName eq
, JobKey eq
, MachineId eq
, Level ge
, TimeStamp gt
.
X-UIPATH-OrganizationUnitId
in the request header, and the Robot Id and the machine name in the request body.
When making PUT requests to the Robots endpoint please take into account the following:
- the Robot username and password are not updated when you send the same username and a null or empty password.
- if a new username is sent with a null or empty password, the Robot credentials are updated and the new username is used.
PUT
https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/Robots(749)
Key |
Value |
---|---|
Authorization |
Bearer |
X-UIPATH-OrganizationUnitId |
The container folder ID. For example,
36886 .
|
{
"LicenseKey": "8ec4t984-b2d7-44f2-b5be-0a64ee9a487b",
"MachineName": "MBOBOC",
"Name": "DocBot",
"Type": "Development",
"Id": 749,
"Username": "UIPATH\\JustAnotherRobot",
"ExecutionSettings":{
"TracingLevel":"Information",
"StudioNotifyServer":true,
"LoginToConsole":false,
"ResolutionWidth":0,
"ResolutionHeight":0,
"ResolutionDepth":0,
"FontSmoothing":false,
"AutoDownloadProcess":false
}
}
{
"LicenseKey": "8ec4t984-b2d7-44f2-b5be-0a64ee9a487b",
"MachineName": "MBOBOC",
"Name": "DocBot",
"Type": "Development",
"Id": 749,
"Username": "UIPATH\\JustAnotherRobot",
"ExecutionSettings":{
"TracingLevel":"Information",
"StudioNotifyServer":true,
"LoginToConsole":false,
"ResolutionWidth":0,
"ResolutionHeight":0,
"ResolutionDepth":0,
"FontSmoothing":false,
"AutoDownloadProcess":false
}
}
odata/Robots({robot_id})
endpoint.
DELETE
https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/Robots(79)
Request headers
Key |
Value |
---|---|
Authorization |
Bearer |
Response code
204 No Content
/Robots/UiPath.Server.Configuration.OData.DeleteBulk
endpoint.
POST
https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/Robots/UiPath.Server.Configuration.OData.DeleteBulk
Request headers
Key |
Value |
---|---|
Authorization |
Bearer |
Request body
{
"robotIds": [119, 120]
}
{
"robotIds": [119, 120]
}
Response code
204 No Content
Calling the endpoint below updates your own unattended robot's password, by inputting your user ID (for example, let's say your user ID is 88). This operation does not require Edit permissions on Users.
PATCH
https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/Users(88)
{
"UnattendedRobot":
{
"Password": "newUnattendedRobotP@ss"
}
}
{
"UnattendedRobot":
{
"Password": "newUnattendedRobotP@ss"
}
}
- Retrieving Robot Statuses
- According to Its Id
- According to Its Name
- Retrieving Robot Information According to Its State: Example 1
- Request headers
- Response code
- Response body
- Retrieving Robot Information According to Its State: Example 2
- Request headers
- Response code
- Response body
- Retrieving Robot Information According to Its Id
- Request headers
- Response code
- Response body
- Retrieving All Robots That Can Execute a Specific Process
- Request headers
- Response code
- Response body
- Retrieving Robot Logs According to the Robot Name
- Request headers
- Response code
- Response body
- Editing Robot Information
- Request headers
- Request body
- Response code
- Deleting Robots
- Deleting a Single Robot
- Deleting Several Robots
- Updating the Password for Your Own Unattended Robot
- Request headers
- Request body
- Response code