UiPath Documentation
robot
2026.10
false
Robot admin guide

RobotAPI

Extends Robot functionality with local job management and domain-specific interfaces.

UiPath Robot API is a component designed to expand the functionality of your own Robot. It comes with several features, each addressing a specific aspect of automation management. These include:

  • Individual job management: Provides the capability to run, stop, and track personal automation processes.
  • Domain-specific interfaces: Allows for the development of tailored interfaces to meet unique automation needs.
  • Local accessibility: Available only on the machine where the Robot is installed, ensuring secure and direct access.
  • Version compatibility: Keeps consistent with the version of the installed Robot, which allows for backwards compatibility.

Robot API uses the UiPath.Robot.Api library. Use the following feed to download the library:

https://pkgs.uipath.com/official/index.json
https://pkgs.uipath.com/official/index.json

Compatibility matrix​

Robot VersionAPI 2026.10.xAPI 2025.10.xAPI 2024.10.xAPI 2023.10.xAPI 2023.4.xAPI 2022.10.xAPI 2022.4.xAPI 2021.10.x
Robot 2026.10.x✅✅✅✅✅✅✅✅
Robot 2025.10.x❌✅✅✅✅✅✅✅
Robot 2024.10.x❌❌✅✅✅✅✅✅
Robot 2023.10.x❌❌❌✅✅✅✅✅
Robot 2023.4.x❌❌❌❌✅✅✅✅
Robot 2022.10.x❌❌❌❌❌✅✅✅
Robot 2022.4.x❌❌❌❌❌❌✅✅
Robot 2021.10.x❌❌❌❌❌❌❌✅

Common Robot API 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
    try
    {
      await client.RunJob(job);
    }
    catch (Exception ex)
    {
      Console.WriteLine(ex.ToString());
    }
    try
    {
      await client.RunJob(job);
    }
    catch (Exception ex)
    {
      Console.WriteLine(ex.ToString());
    }
    
  • Adding input arguments
    job.InputArguments = new Dictionary<string, object> { ["numbers"] = new int[] { 1, 2, 3 } };
    await client.RunJob(job);
    job.InputArguments = new Dictionary<string, object> { ["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 event scheduler
    new RobotClient(new RobotClientSettings { EventScheduler = TaskScheduler.Default })
    new RobotClient(new RobotClientSettings { EventScheduler = TaskScheduler.Default })
    
  • Compatibility matrix​
  • Common Robot API calls​

Was this page helpful?

Connect

Need help? Support(opens in new window)

Want to learn? UiPath Academy(opens in new window)

Have questions? UiPath Forum(opens in new window)

Stay updated