UiPath Documentation
functions
latest
false
  • Overview
    • About Functions
  • Python functions
    • Getting started
    • Building Python functions
    • Accessing platform services
    • Tracing and observability
    • Testing and debugging
  • Deploy and run

Functions user guide

Getting started

This page walks you through installing the SDK, scaffolding a project, and running your first Python function locally.

Prerequisites

  • Python 3.10 or later.
  • The uipath CLI and SDK, installed with pip.
  • A UiPath account with access to Orchestrator (for publishing and invoking).

Install the SDK

pip install uipath
pip install uipath

Verify the installation:

uipath --version
uipath --version

Scaffold a project

Create a new function project:

uipath new my-function
uipath new my-function

This scaffolds the files you edit:

FilePurpose
main.pyYour function logic and the Input/Output models. Starts as a runnable example.
pyproject.tomlProject metadata and dependencies.
uipath.jsonDeclares the callable entry points. The scaffold registers main for you.

Write your first function

Replace the scaffolded logic in main.py:

from pydantic.dataclasses import dataclass


@dataclass
class Input:
    message: str = ""


@dataclass
class Output:
    reply: str = ""


def main(input: Input) -> Output:
    return Output(reply=f"Hello, {input.message}!")
from pydantic.dataclasses import dataclass


@dataclass
class Input:
    message: str = ""


@dataclass
class Output:
    reply: str = ""


def main(input: Input) -> Output:
    return Output(reply=f"Hello, {input.message}!")

The scaffolded uipath.json already declares this entry point:

{
  "functions": {
    "main": "main.py:main"
  }
}
{
  "functions": {
    "main": "main.py:main"
  }
}

The key (main) is the entry-point name used in CLI commands; the value references the file and function. Update it only if you rename the function or add more entry points.

Generate the project schema

Once your Input and Output are defined, generate the schema and bindings:

uipath init
uipath init

This reads your code and uipath.json and generates:

FilePurpose
entry-points.jsonInput/output JSON Schema derived from your models, used for variable binding.
bindings.jsonResource bindings for local runs.

Re-run uipath init whenever you change your Input or Output models.

Run it locally

uipath run main '{"message": "world"}'
uipath run main '{"message": "world"}'

Local runs use the bindings in bindings.json to resolve platform resources, so you can test against real Orchestrator assets and buckets before publishing.

Next steps

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated