- Release Notes
- Getting Started
- UiPath Assistant
- Installation and Upgrade
- Robot Types
- Robot Components
- Licensing
- Connecting Robots to Orchestrator
- Processes and Activities
- Logging
- Robot JavaScript SDK
- Specific Scenarios
- Troubleshooting

Robot User Guide
Robot API
linkThe Robot is able to tackle various automation needs. These capabilities are greatly increased when you make use of the Robot API, offering a tailored experience to create domain-specific interfaces.
The Robot API is only used to manage your own jobs, and not for other users. It is accessible only from the machine on which the Robot is installed. The API shares the same version as the Robot, with each update offering backwards compatibility.
Compatibility Matrix:
API 20.10.x |
API 20.4.x |
API 19.10.x | |
---|---|---|---|
Robot 20.10.x |
|
|
|
Robot 20.4.x |
|
|
|
Robot 19.10.x |
|
|
|
Robot 18.4.x |
|
|
|
UiPath.Robot.api
library is required to use the Robot API. It can be downloaded from the https://myget.org/F/workflow
feed.
You can make use of the followings .NET Robot Client calls:
Including the Client in Your Application:
linkvar client = new RobotClient();
var client = new RobotClient();
Getting the List of Available Processes:
linkvar processes = await client.GetProcesses();
var myProcess = processes.Single(process => process.Name == "MyProcess");
var job = myProcess.ToJob();
var processes = await client.GetProcesses();
var myProcess = processes.Single(process => process.Name == "MyProcess");
var job = myProcess.ToJob();
Using the Process Key to Start a Job:
linkvar job = new Job("812e908a-7609-4b81-86db-73e3c1438be4");
var job = new Job("812e908a-7609-4b81-86db-73e3c1438be4");
Starting a Process Execution:
link{
await client.RunJob(job);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
{
await client.RunJob(job);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
Adding Input Arguments:
linkjob.InputArguments = {["numbers"] = new int[] { 1, 2, 3 } }};
await client.RunJob(job);
job.InputArguments = {["numbers"] = new int[] { 1, 2, 3 } }};
await client.RunJob(job);
Exporting Output Arguments:
linkvar jobOutput = await client.RunJob(job);
Console.WriteLine(jobOutput.Arguments["sumOfNumbers"]);
var jobOutput = await client.RunJob(job);
Console.WriteLine(jobOutput.Arguments["sumOfNumbers"]);
Stopping a Process:
linkawait client.RunJob(job, cancellationToken);
await client.RunJob(job, cancellationToken);
Monitoring the Process Status:
linkjob.StatusChanged += (sender, args) => Console.WriteLine($"{((Job)sender).ProcessKey}: {args.Status}");
await client.RunJob(job);
job.StatusChanged += (sender, args) => Console.WriteLine($"{((Job)sender).ProcessKey}: {args.Status}");
await client.RunJob(job);
Using the Events Scheduler:
linknew RobotClient(new RobotClientSettings { EventScheduler = TaskScheduler.Default })
new RobotClient(new RobotClientSettings { EventScheduler = TaskScheduler.Default })