npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@uipath/uipath-typescript

v1.2.1

Published

UiPath TypeScript SDK

Downloads

2,789

Readme

UiPath TypeScript SDK

License: MIT TypeScript Node.js npm GitHub

DocumentationGetting StartedUsageSamples

A comprehensive TypeScript SDK for interacting with UiPath Platform services.

Overview

The UiPath TypeScript SDK is a comprehensive, type-safe library for interacting with UiPath Platform services. Built with modern TypeScript, it provides seamless integration for both browser and Node.js applications, enabling developers to build sophisticated automation solutions with enterprise-grade reliability.

Getting Started

Prerequisites

  • Node.js 18.x or higher
  • npm 8.x or higher (or yarn/pnpm)
  • TypeScript 4.5+ (for TypeScript projects)

Installation

# Using npm
npm install @uipath/uipath-typescript

# Using yarn
yarn add @uipath/uipath-typescript

# Using pnpm
pnpm add @uipath/uipath-typescript

Quick Start

import { UiPath } from '@uipath/uipath-typescript/core';
import { MaestroProcesses } from '@uipath/uipath-typescript/maestro-processes';
import { Tasks } from '@uipath/uipath-typescript/tasks';

// Initialize the SDK with OAuth
const sdk = new UiPath({
  baseUrl: 'https://cloud.uipath.com',
  orgName: 'your-organization',
  tenantName: 'your-tenant',
  clientId: 'your-client-id',
  redirectUri: 'your-redirect-uri',
  scope: 'your-scopes'
});

// Initialize OAuth flow
await sdk.initialize();

// Create service instances
const maestroProcesses = new MaestroProcesses(sdk);
const tasks = new Tasks(sdk);

// Use the services
const processes = await maestroProcesses.getAll();
const allTasks = await tasks.getAll();

↑ Back to top

Authentication

Authentication Methods

The SDK supports two authentication methods:

For OAuth, first create a non confidential External App with the required scopes and provide the clientId, redirectUri, and scope here.

import { UiPath } from '@uipath/uipath-typescript/core';

const sdk = new UiPath({
  baseUrl: 'https://cloud.uipath.com',
  orgName: 'your-organization',
  tenantName: 'your-tenant',
  clientId: 'your-client-id',
  redirectUri: 'your-redirect-uri',
  scope: 'your-scopes'
});

// IMPORTANT: OAuth requires calling initialize()
await sdk.initialize();
import { UiPath } from '@uipath/uipath-typescript/core';

const sdk = new UiPath({
  baseUrl: 'https://cloud.uipath.com',
  orgName: 'your-organization',
  tenantName: 'your-tenant',
  secret: 'your-secret' //PAT Token or Bearer Token
});

SDK Initialization

The initialize() method completes the authentication process for the SDK:

  • Secret Authentication: Auto-initializes when creating the SDK instance - no need to call initialize()
  • OAuth Authentication: MUST call await sdk.initialize() before using any SDK services

Example: Secret Authentication (Auto-initialized)

import { UiPath } from '@uipath/uipath-typescript/core';
import { Tasks } from '@uipath/uipath-typescript/tasks';

const sdk = new UiPath({
  baseUrl: 'https://cloud.uipath.com',
  orgName: 'your-organization',
  tenantName: 'your-tenant',
  secret: 'your-secret' //PAT Token or Bearer Token
});

// Ready to use immediately - no initialize() needed
const tasks = new Tasks(sdk);
const allTasks = await tasks.getAll();

Example: OAuth Authentication (Requires initialize)

import { UiPath } from '@uipath/uipath-typescript/core';
import { Tasks } from '@uipath/uipath-typescript/tasks';

const sdk = new UiPath({
  baseUrl: 'https://cloud.uipath.com',
  orgName: 'your-organization',
  tenantName: 'your-tenant',
  clientId: 'your-client-id',
  redirectUri: 'http://localhost:3000',
  scope: 'your-scopes'
});

// Must initialize before using services
try {
  await sdk.initialize();
  console.log('SDK initialized successfully');

  // Now you can use the SDK
  const tasks = new Tasks(sdk);
  const allTasks = await tasks.getAll();
} catch (error) {
  console.error('Failed to initialize SDK:', error);
}

OAuth Integration Patterns

Auto-login on App Load

import { UiPath } from '@uipath/uipath-typescript/core';

useEffect(() => {
  const initSDK = async () => {
    const sdk = new UiPath({...oauthConfig});
    await sdk.initialize();
  };
  initSDK();
}, []);

User-Triggered Login

const onLogin = async () => {
  await sdk.initialize();
};

// Handle OAuth callback
const oauthCompleted = useRef(false);
useEffect(() => {
  if (sdk.isInitialized() && !oauthCompleted.current) {
    oauthCompleted.current = true;
    sdk.completeOAuth();
  }
}, []);

Available OAuth Methods

  • sdk.initialize() - Start OAuth flow (auto completes also based on callback state)
  • sdk.isInitialized() - Check if SDK initialization completed
  • sdk.isAuthenticated() - Check if user has valid token
  • sdk.isInOAuthCallback() - Check if processing OAuth redirect
  • sdk.completeOAuth() - Manually complete OAuth (advanced use)

↑ Back to top

Usage

The SDK provides access to the following services through modular imports:

  • MaestroProcesses from @uipath/uipath-typescript/maestro-processes - Manage agentic maestro processes
  • ProcessInstances from @uipath/uipath-typescript/maestro-processes - Manage maestro process executions
  • Cases from @uipath/uipath-typescript/cases - Manage maestro case management processes
  • CaseInstances from @uipath/uipath-typescript/cases - Manage maestro case executions
  • Tasks from @uipath/uipath-typescript/tasks - Create and manage tasks
  • Entities from @uipath/uipath-typescript/entities - Data Fabric entity operations
  • Processes from @uipath/uipath-typescript/processes - Manage Orchestrator processes
  • Buckets from @uipath/uipath-typescript/buckets - Manage storage buckets in Orchestrator
  • Queues from @uipath/uipath-typescript/queues - Manage Orchestrator queues
  • Assets from @uipath/uipath-typescript/assets - Manage Orchestrator assets
  • ConversationalAgent from @uipath/uipath-typescript/conversational-agent - Interact with Conversational Agents (real-time streaming, conversations, sessions)
import { UiPath } from '@uipath/uipath-typescript/core';
import { MaestroProcesses, ProcessInstances } from '@uipath/uipath-typescript/maestro-processes';
import { Cases, CaseInstances } from '@uipath/uipath-typescript/cases';
import { Tasks, TaskType } from '@uipath/uipath-typescript/tasks';
import { Processes } from '@uipath/uipath-typescript/processes';
import { Buckets } from '@uipath/uipath-typescript/buckets';
import { Entities } from '@uipath/uipath-typescript/entities';

// Initialize SDK
const sdk = new UiPath({ /* config */ });

// Create service instances
const maestroProcesses = new MaestroProcesses(sdk);
const processInstances = new ProcessInstances(sdk);
const cases = new Cases(sdk);
const caseInstances = new CaseInstances(sdk);
const tasks = new Tasks(sdk);
const processes = new Processes(sdk);
const buckets = new Buckets(sdk);
const entities = new Entities(sdk);

// Maestro - Get processes and their instances
const allProcesses = await maestroProcesses.getAll();
const instances = await processInstances.getAll({
  processKey: 'my-process',
  pageSize: 10
});

// Control Process Instances
await processInstances.pause(instanceId, 'folder-key');
await processInstances.resume(instanceId, 'folder-key');
await processInstances.cancel(instanceId, 'folder-key', {
  comment: 'Cancelled due to error'
});

// Maestro Case Instances
const caseInstance = await caseInstances.getById(instanceId, 'folder-key');
const stages = await caseInstances.getStages(instanceId, 'folder-key');

// Control Case Instances
await caseInstances.close(instanceId, 'folder-key', {
  comment: 'Case resolved successfully'
});

// Orchestrator Processes - Start a process
const result = await processes.start({
  processKey: 'MyProcess_Key',
}, folderId);

// Tasks - Create, assign, and complete
const task = await tasks.create({
  title: 'Review Invoice',
  priority: 'High'
}, folderId);

await tasks.assign({
  taskId: task.id,
  userNameOrEmail: '[email protected]'
}, folderId);

await tasks.complete(TaskType.App, {
  taskId: task.id,
  data: {},
  action: 'submit'
}, folderId);

// Buckets - File operations
const bucket = await buckets.getById(bucketId, folderId);
const fileMetadata = await buckets.getFileMetaData(bucketId, folderId, {
  prefix: '/invoices/'
});

// Upload file
await buckets.uploadFile({
  bucketId: bucketId,
  folderId: folderId,
  prefix: '/folder1'
});

// Get download URL
const downloadUrl = await buckets.getReadUri({
  bucketId: bucketId,
  folderId: folderId,
  path: '/folder/file.pdf'
});

// Data Fabric Entities - CRUD operations
const entity = await entities.getById('entity-uuid');
const records = await entities.getAllRecords('entity-uuid', {
  pageSize: 100,
  expansionLevel: 1
});

// Insert records
await entities.insertRecordsById('entity-uuid', [
  { name: 'John Doe', email: '[email protected]', status: 'Active' },
  { name: 'Jane Smith', email: '[email protected]', status: 'Active' }
]);

// Update records
await entities.updateRecordsById('entity-uuid', [
  { Id: 'record-id-1', status: 'Inactive' }
]);

// Delete records
await entities.deleteRecordsById('entity-uuid', ['record-id-1', 'record-id-2']);

↑ Back to top

Samples

Check out the /samples folder to see sample applications built using the SDK:

  • process-app: A Maestro process management application demonstrating OAuth authentication and SDK usage
  • conversational-agent-app: A Conversational Agent chat application with real-time streaming, conversation management, file attachments, tool call visualization, and feedback

↑ Back to top

Development

Before submitting a pull request, please review our Contribution Guidelines.

Running Documentation Locally

To build and serve the documentation locally using MkDocs:

Prerequisites:

  • Python
  • Node.js 18.x or higher
  • npm 8.x or higher

Steps:

pip3 install -r docs/requirements.txt
npm run docs:api
mkdocs build
mkdocs serve

↑ Back to top