robot
2023.10
false
UiPath logo, featuring letters U and I in white

Robot user guide

Last updated Nov 22, 2025

Robot API

The 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

Robot VersionAPI 2023.10.xAPI 2023.4.xAPI 2022.10.xAPI 2022.4.xAPI 2021.10.x
Robot 2023.10.xavailableavailableavailableavailableavailable
Robot 2023.4.xnot availableavailableavailableavailableavailable
Robot 2022.10.xnot availablenot availableavailableavailableavailable
Robot 2022.4.xnot availablenot availablenot availableavailableavailable
Robot 2021.10.xnot availablenot availablenot availablenot availableavailable
The UiPath.Robot.api library is required to use the Robot API. It can be downloaded from the https://uipath.pkgs.visualstudio.com/Public.Feeds/_packaging/UiPath-Official/nuget/v3/index.json feed.

You can make use of the followings .NET Robot Client calls:

Including the Client in Your Application:

var client = new RobotClient();var client = new RobotClient();

Getting the List of Available Processes:

var 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:

var job = new Job("812e908a-7609-4b81-86db-73e3c1438be4");var job = new Job("812e908a-7609-4b81-86db-73e3c1438be4");

Starting a Process Execution:

{ 
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:

job.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:

var jobOutput = await client.RunJob(job); 
Console.WriteLine(jobOutput.Arguments["sumOfNumbers"]);var jobOutput = await client.RunJob(job); 
Console.WriteLine(jobOutput.Arguments["sumOfNumbers"]);

Stopping a Process:

await client.RunJob(job, cancellationToken);await client.RunJob(job, cancellationToken);

Monitoring the Process Status:

job.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:

new RobotClient(new RobotClientSettings { EventScheduler = TaskScheduler.Default })new RobotClient(new RobotClientSettings { EventScheduler = TaskScheduler.Default })

Was this page helpful?

Get The Help You Need
Learning RPA - Automation Courses
UiPath Community Forum
Uipath Logo
Trust and Security
© 2005-2025 UiPath. All rights reserved.