UiPath Documentation
uipath-cli
latest
false

UiPath CLI user guide

Last updated May 7, 2026

uip or jobs

uip or jobs manages process executions: start jobs from processes, stop and restart them, resume suspended jobs, and inspect logs, traces, healing-agent data, and state history. Every job is identified by a GUID key that is globally unique — most verbs resolve the folder from the key automatically.

Synopsis

uip or jobs <verb> [options]
uip or jobs <verb> [options]

Verbs

VerbPurpose
listList jobs, optionally scoped to a folder and filtered by state, process, source, or time range.
getFetch one job by key, including input/output arguments and (for Pending jobs) diagnostic reasons.
startStart one or more jobs for a process; optionally wait for completion and download output.
stopSoft-stop or force-kill one or more running/pending jobs.
restartCreate a new job from a faulted or stopped job.
resumeResume a suspended job, optionally with updated input arguments.
logsFetch robot execution logs for a job; filter by level or export to CSV.
tracesFetch LlmOps execution traces for an agentic (Agent-type) job.
healing-dataDownload healing-agent recovery data (screenshots, UI data, logs) as a ZIP.
historyShow state transitions for a job.

uip or jobs list

List jobs across a tenant or folder. Returns job key, state, process name, timing, and machine info.

Options

ShortLongValueDefaultDescription
-t--tenantnamesession defaultOverride the tenant selected at auth time.
--folder-pathpathScope to a folder by path (for example, Shared). Omit for cross-folder listing.
--folder-keyGUIDScope to a folder by key.
--stateenumPending, Running, Successful, Faulted, Stopped, Stopping, Suspended, Resumed, Terminating.
--process-nametextContains-match on process (release) name.
--sourceenumFilter by job source type (for example, Manual, Schedule, Queue, Agent).
--created-afterISO 8601Jobs created on or after this date/time.
--created-beforeISO 8601Jobs created strictly before this date/time.
--started-afterISO 8601Jobs started on or after this date/time.
--started-beforeISO 8601Jobs started strictly before this date/time.
--ended-afterISO 8601Jobs ended on or after this date/time.
--ended-beforeISO 8601Jobs ended strictly before this date/time.
-l--limitnumber50Page size.
--offsetnumber0Skip count.
--order-byfieldId descOData sort expression.
--all-fieldsflagoffReturn the full API payload instead of the curated summary.

Examples

# List the 50 most recent jobs in the tenant
uip or jobs list

# Running jobs in a specific folder, newest first
uip or jobs list --folder-path "Shared" --state Running

# Pull only job keys and states, script-friendly
uip or jobs list --state Faulted --limit 200 \
    --output-filter 'Data[].{key:Key, state:State}'
# List the 50 most recent jobs in the tenant
uip or jobs list

# Running jobs in a specific folder, newest first
uip or jobs list --folder-path "Shared" --state Running

# Pull only job keys and states, script-friendly
uip or jobs list --state Faulted --limit 200 \
    --output-filter 'Data[].{key:Key, state:State}'

Data shape (--output json)

{
  "Code": "JobList",
  "Data": [
    {
      "Key": "b2c3d4e5-0000-0000-0000-000000000001",
      "State": "Running",
      "ProcessName": "InvoiceProcessing",
      "ReleaseKey": "c3d4e5f6-0000-0000-0000-000000000001",
      "Source": "Manual",
      "Type": "Unattended",
      "Priority": "Normal",
      "Machine": "prod-worker-01",
      "MachineKey": "a1b2c3d4-0000-0000-0000-000000000001",
      "StartTime": "2025-04-15T10:30:00Z",
      "EndTime": "",
      "CreationTime": "2025-04-15T10:29:55Z"
    }
  ],
  "Pagination": { "Returned": 1, "Limit": 50, "Offset": 0, "HasMore": false }
}
{
  "Code": "JobList",
  "Data": [
    {
      "Key": "b2c3d4e5-0000-0000-0000-000000000001",
      "State": "Running",
      "ProcessName": "InvoiceProcessing",
      "ReleaseKey": "c3d4e5f6-0000-0000-0000-000000000001",
      "Source": "Manual",
      "Type": "Unattended",
      "Priority": "Normal",
      "Machine": "prod-worker-01",
      "MachineKey": "a1b2c3d4-0000-0000-0000-000000000001",
      "StartTime": "2025-04-15T10:30:00Z",
      "EndTime": "",
      "CreationTime": "2025-04-15T10:29:55Z"
    }
  ],
  "Pagination": { "Returned": 1, "Limit": 50, "Offset": 0, "HasMore": false }
}

uip or jobs get

Fetch one job by GUID key. Returns state, input/output arguments, timing, machine info, and error details if faulted. If the job's state is Pending, the output also includes PendingReasons (the API's diagnostic report on why the job has not started — robot availability, capacity, etc.). No folder context is required.

If the job has an OutputFile, it is automatically downloaded to the current directory (or --output-dir) as output-<job-key>.dat. Pass --no-download to skip.

Arguments

NameRequiredPurpose
<job-key>yesJob key (GUID). Find it with uip or jobs list.

Options

ShortLongValueDefaultDescription
-t--tenantnamesession defaultOverride the tenant.
--output-dirpathcurrent dirDirectory for the downloaded OutputFile.
--no-downloadflagoffSkip automatic OutputFile download.
--all-fieldsflagoffReturn the full API payload.

Examples

uip or jobs get b2c3d4e5-0000-0000-0000-000000000001

# Skip the output-file download (useful in read-only containers)
uip or jobs get b2c3d4e5-0000-0000-0000-000000000001 --no-download

# Extract just output arguments
uip or jobs get b2c3d4e5-0000-0000-0000-000000000001 \
    --output-filter 'Data.OutputArguments'
uip or jobs get b2c3d4e5-0000-0000-0000-000000000001

# Skip the output-file download (useful in read-only containers)
uip or jobs get b2c3d4e5-0000-0000-0000-000000000001 --no-download

# Extract just output arguments
uip or jobs get b2c3d4e5-0000-0000-0000-000000000001 \
    --output-filter 'Data.OutputArguments'

Data shape (--output json)

{
  "Code": "JobGet",
  "Data": {
    "Key": "b2c3d4e5-0000-0000-0000-000000000001",
    "State": "Successful",
    "ReleaseName": "InvoiceProcessing",
    "StartTime": "2025-04-15T10:30:00Z",
    "EndTime": "2025-04-15T10:32:11Z",
    "InputArguments": "{\"invoicePath\":\"/data/inv.pdf\"}",
    "OutputArguments": "{\"result\":\"Processed\"}",
    "HostMachineName": "prod-worker-01",
    "FolderKey": "a1b2c3d4-0000-0000-0000-000000000001"
  }
}
{
  "Code": "JobGet",
  "Data": {
    "Key": "b2c3d4e5-0000-0000-0000-000000000001",
    "State": "Successful",
    "ReleaseName": "InvoiceProcessing",
    "StartTime": "2025-04-15T10:30:00Z",
    "EndTime": "2025-04-15T10:32:11Z",
    "InputArguments": "{\"invoicePath\":\"/data/inv.pdf\"}",
    "OutputArguments": "{\"result\":\"Processed\"}",
    "HostMachineName": "prod-worker-01",
    "FolderKey": "a1b2c3d4-0000-0000-0000-000000000001"
  }
}

uip or jobs start

Start one or more jobs for a process. The <process-key> is the GUID returned by uip or processes list (not packages list). Folder is optional — if neither --folder-path nor --folder-key is provided, it is inferred from the process.

Use uip or packages entry-points to see input/output argument schemas for a package version before starting.

Arguments

NameRequiredPurpose
<process-key>yesProcess (release) key (GUID) from uip or processes list.

Options

Identity and tenant
ShortLongValueDefaultDescription
-t--tenantnamesession defaultOverride the tenant.
--folder-pathpathinferredFolder path; inferred from the process if omitted.
--folder-keyGUIDinferredFolder key; inferred from the process if omitted.
Execution strategy
ShortLongValueDefaultDescription
--strategyenumModernJobsCountModernJobsCount, All, Specific, JobsCount.
--jobs-countnumber1How many jobs to create (for count-based strategies).
--runtime-typeenumfolder configUnattended, Headless, Serverless, NonProduction, Development, TestAutomation.
--job-priorityenumLow, Normal, High.
--referencetextFree-form reference string stored on the job.
--run-as-meflagoffRun under the caller's identity.
--user-keysCSVUser GUIDs to run as (resolved to non-attended robots).
--machine-keysCSVMachine GUIDs to target.
Input and attachments
ShortLongValueDefaultDescription
--input-argumentsJSONInline JSON payload. Auto-offloads to InputFile above 10K chars. Mutually exclusive with --input-file.
--input-filepathUpload a file as the job's InputFile. Mutually exclusive with --input-arguments.
--attachment[name=]pathUpload a file and attach it. Repeatable. --attachment ./doc.pdf auto-names from the filename; --attachment invoice=./report.pdf sets an explicit name.
--attachment-idGUIDAttach an existing attachment by ID. Repeatable. Find IDs with attachments list --job-key.
--environment-variablesJSONEnvironment variables as a JSON string. Validated before submission.
Waiting for completion
ShortLongValueDefaultDescription
--wait-for-completionflagoffPoll until the job reaches Successful, Faulted, or Stopped.
--timeoutseconds300Max wait time (requires --wait-for-completion).
--poll-intervalseconds5Polling interval (requires --wait-for-completion).
--output-dirpathcurrent dirWhere to save OutputFile (requires --wait-for-completion).
--no-downloadflagoffSkip OutputFile download (requires --wait-for-completion).
Note:

--user-keys resolves each user GUID to their non-attended robot in the target folder. Attended and AttendedStudioWeb robot types are filtered out — CLI-started jobs need unattended robots. If no unattended robots exist for the users in this folder, the command fails.

Examples

# Minimal — start one job for a process
uip or jobs start c3d4e5f6-0000-0000-0000-000000000001

# Start with input arguments and wait for completion
uip or jobs start c3d4e5f6-0000-0000-0000-000000000001 \
    --input-arguments '{"invoicePath":"/data/inv.pdf"}' \
    --wait-for-completion --timeout 600

# Upload a file as input and attach a supporting document
uip or jobs start c3d4e5f6-0000-0000-0000-000000000001 \
    --input-file ./payload.json \
    --attachment invoice=./report.pdf
# Minimal — start one job for a process
uip or jobs start c3d4e5f6-0000-0000-0000-000000000001

# Start with input arguments and wait for completion
uip or jobs start c3d4e5f6-0000-0000-0000-000000000001 \
    --input-arguments '{"invoicePath":"/data/inv.pdf"}' \
    --wait-for-completion --timeout 600

# Upload a file as input and attach a supporting document
uip or jobs start c3d4e5f6-0000-0000-0000-000000000001 \
    --input-file ./payload.json \
    --attachment invoice=./report.pdf

Data shape (--output json)

Without --wait-for-completion:

{
  "Code": "JobStarted",
  "Data": {
    "Jobs": [
      {
        "Key": "b2c3d4e5-0000-0000-0000-000000000099",
        "State": "Pending",
        "ProcessName": "InvoiceProcessing",
        "Source": "Manual",
        "Type": "Unattended",
        "Priority": "Normal",
        "Machine": "",
        "StartTime": "",
        "EndTime": "",
        "CreationTime": "2025-04-15T10:29:55Z"
      }
    ]
  }
}
{
  "Code": "JobStarted",
  "Data": {
    "Jobs": [
      {
        "Key": "b2c3d4e5-0000-0000-0000-000000000099",
        "State": "Pending",
        "ProcessName": "InvoiceProcessing",
        "Source": "Manual",
        "Type": "Unattended",
        "Priority": "Normal",
        "Machine": "",
        "StartTime": "",
        "EndTime": "",
        "CreationTime": "2025-04-15T10:29:55Z"
      }
    ]
  }
}

With --wait-for-completion, the Code is JobCompleted (or JobFaulted on failure) and Data is the same shape as jobs get plus a Duration field. If the job faulted, the process exits with code 1.

Verb-specific exit-code overrides

  • --wait-for-completion + job ends in Faulted: exits 1 even though the command succeeded in observing the outcome.
  • --wait-for-completion + timeout reached: exits 1 with the current job key in Instructions so you can poll with jobs get.

uip or jobs stop

Stop one or more running or pending jobs. With a single key, respects --strategy (SoftStop or Kill). With multiple keys, always force-stops (kill) via the bulk API — --strategy is ignored in that case. No folder context needed; resolved from the first job key.

Arguments

NameRequiredPurpose
<job-keys...>yesOne or more job keys (GUIDs).

Options

ShortLongValueDefaultDescription
-t--tenantnamesession defaultOverride the tenant.
--strategyenumSoftStopSoftStop (graceful) or Kill (immediate). Only applies to single-key stops.

Examples

uip or jobs stop b2c3d4e5-0000-0000-0000-000000000001
uip or jobs stop b2c3d4e5-0000-0000-0000-000000000001 --strategy Kill
uip or jobs stop key-1 key-2 key-3   # bulk force-stop
uip or jobs stop b2c3d4e5-0000-0000-0000-000000000001
uip or jobs stop b2c3d4e5-0000-0000-0000-000000000001 --strategy Kill
uip or jobs stop key-1 key-2 key-3   # bulk force-stop

Data shape (--output json)

Single key:

{
  "Code": "JobStopped",
  "Data": {
    "JobKey": "b2c3d4e5-0000-0000-0000-000000000001",
    "Strategy": "SoftStop",
    "Status": "Stop requested"
  }
}
{
  "Code": "JobStopped",
  "Data": {
    "JobKey": "b2c3d4e5-0000-0000-0000-000000000001",
    "Strategy": "SoftStop",
    "Status": "Stop requested"
  }
}

Multiple keys return Code: "JobsStopped" with JobKeys, Strategy: "Kill (force stop)", and a Status string.

uip or jobs restart

Create a new job from a faulted or stopped job. Folder is resolved from the job key.

Arguments

NameRequiredPurpose
<job-key>yesJob key (GUID) to restart.

Options

ShortLongValueDefaultDescription
-t--tenantnamesession defaultOverride the tenant.

Examples

uip or jobs restart b2c3d4e5-0000-0000-0000-000000000001
uip or jobs restart b2c3d4e5-0000-0000-0000-000000000001 --output-filter 'Data.Key'
uip or jobs restart b2c3d4e5-0000-0000-0000-000000000001
uip or jobs restart b2c3d4e5-0000-0000-0000-000000000001 --output-filter 'Data.Key'

Data shape (--output json)

{
  "Code": "JobRestarted",
  "Data": {
    "Key": "b2c3d4e5-0000-0000-0000-000000000050",
    "State": "Pending",
    "ProcessName": "InvoiceProcessing",
    "Status": "Restart requested"
  }
}
{
  "Code": "JobRestarted",
  "Data": {
    "Key": "b2c3d4e5-0000-0000-0000-000000000050",
    "State": "Pending",
    "ProcessName": "InvoiceProcessing",
    "Status": "Restart requested"
  }
}

uip or jobs resume

Resume a suspended job. Jobs become suspended when they use the Suspend activity in a long-running workflow. Optionally pass new --input-arguments to continue with updated data.

Arguments

NameRequiredPurpose
<job-key>yesJob key (GUID) to resume.

Options

ShortLongValueDefaultDescription
-t--tenantnamesession defaultOverride the tenant.
--input-argumentsJSONReplacement input arguments.

Examples

uip or jobs resume b2c3d4e5-0000-0000-0000-000000000001
uip or jobs resume b2c3d4e5-0000-0000-0000-000000000001 \
    --input-arguments '{"approved":true}'
uip or jobs resume b2c3d4e5-0000-0000-0000-000000000001
uip or jobs resume b2c3d4e5-0000-0000-0000-000000000001 \
    --input-arguments '{"approved":true}'

Data shape (--output json)

{
  "Code": "JobResumed",
  "Data": {
    "Key": "b2c3d4e5-0000-0000-0000-000000000001",
    "State": "Resumed",
    "ProcessName": "ApprovalFlow",
    "Status": "Resume requested"
  }
}
{
  "Code": "JobResumed",
  "Data": {
    "Key": "b2c3d4e5-0000-0000-0000-000000000001",
    "State": "Resumed",
    "ProcessName": "ApprovalFlow",
    "Status": "Resume requested"
  }
}

uip or jobs logs

Fetch robot execution logs for a job. Logs are returned newest-first. Use --level to filter by severity. With --export, the logs are exported server-side to CSV and downloaded when ready.

Arguments

NameRequiredPurpose
<job-key>yesJob key (GUID). Validated as a UUID before any API call.

Options

ShortLongValueDefaultDescription
-t--tenantnamesession defaultOverride the tenant.
--levelenumFatal, Error, Warning, Info, Trace.
-l--limitnumber50Page size.
--offsetnumber0Skip count.
--exportflagoffExport to CSV via the server-side export API.
-o--outputpathrobot-logs-<job-key>.csvOutput CSV path. Only with --export.

Examples

uip or jobs logs b2c3d4e5-0000-0000-0000-000000000001 --level Error --limit 100
uip or jobs logs b2c3d4e5-0000-0000-0000-000000000001 --export -o ./run.csv
uip or jobs logs b2c3d4e5-0000-0000-0000-000000000001 \
    --level Error --output-filter 'Data[].Message'
uip or jobs logs b2c3d4e5-0000-0000-0000-000000000001 --level Error --limit 100
uip or jobs logs b2c3d4e5-0000-0000-0000-000000000001 --export -o ./run.csv
uip or jobs logs b2c3d4e5-0000-0000-0000-000000000001 \
    --level Error --output-filter 'Data[].Message'

Data shape (--output json)

Inline mode:

{
  "Code": "JobLogs",
  "Data": [
    {
      "Level": "Error",
      "TimeStamp": "2025-04-15T10:31:02Z",
      "Message": "Selector not found: ctrl[name='submit']"
    }
  ]
}
{
  "Code": "JobLogs",
  "Data": [
    {
      "Level": "Error",
      "TimeStamp": "2025-04-15T10:31:02Z",
      "Message": "Selector not found: ctrl[name='submit']"
    }
  ]
}

--export emits Code: "JobLogsExported" with JobKey, FileName, Size, and ExportId.

uip or jobs traces

Fetch LlmOps execution traces for an agentic job — LLM interactions, tool calls, and agent decisions. Only available for Agent-type processes. Folder is resolved from the job key.

Arguments

NameRequiredPurpose
<job-key>yesJob key (GUID).

Options

ShortLongValueDefaultDescription
-t--tenantnamesession defaultOverride the tenant.

Examples

uip or jobs traces b2c3d4e5-0000-0000-0000-000000000001
uip or jobs traces b2c3d4e5-0000-0000-0000-000000000001 \
    --output-filter 'Data.messages'
uip or jobs traces b2c3d4e5-0000-0000-0000-000000000001
uip or jobs traces b2c3d4e5-0000-0000-0000-000000000001 \
    --output-filter 'Data.messages'

Data shape (--output json)

The raw API payload is passed through unchanged under Data:

{
  "Code": "JobTraces",
  "Data": { "...": "raw LlmOps trace payload" }
}
{
  "Code": "JobTraces",
  "Data": { "...": "raw LlmOps trace payload" }
}

uip or jobs healing-data

Download healing-agent (Autopilot for Robots) recovery data as a ZIP: screenshots, UI element data, and recovery logs. Only available for jobs where the healing agent was active. The command triggers an async export, polls the export API until it finishes, then downloads the resulting ZIP.

Arguments

NameRequiredPurpose
<job-key>yesJob key (GUID).

Options

ShortLongValueDefaultDescription
-t--tenantnamesession defaultOverride the tenant.
--directory-prefixprefixPath prefix filter applied to exported files.
-o--outputpathhealing-agent-data-<job-key>.zipOutput ZIP path.

Examples

uip or jobs healing-data b2c3d4e5-0000-0000-0000-000000000001
uip or jobs healing-data b2c3d4e5-0000-0000-0000-000000000001 \
    -o ./recovery.zip
uip or jobs healing-data b2c3d4e5-0000-0000-0000-000000000001 \
    --output-filter 'Data.FileName'
uip or jobs healing-data b2c3d4e5-0000-0000-0000-000000000001
uip or jobs healing-data b2c3d4e5-0000-0000-0000-000000000001 \
    -o ./recovery.zip
uip or jobs healing-data b2c3d4e5-0000-0000-0000-000000000001 \
    --output-filter 'Data.FileName'

Data shape (--output json)

{
  "Code": "JobHealingData",
  "Data": {
    "JobKey": "b2c3d4e5-0000-0000-0000-000000000001",
    "FileName": "healing-agent-data-b2c3d4e5-0000-0000-0000-000000000001.zip",
    "Size": 254318,
    "ExportId": 4711
  }
}
{
  "Code": "JobHealingData",
  "Data": {
    "JobKey": "b2c3d4e5-0000-0000-0000-000000000001",
    "FileName": "healing-agent-data-b2c3d4e5-0000-0000-0000-000000000001.zip",
    "Size": 254318,
    "ExportId": 4711
  }
}
Note:

The server-side export is polled up to 30 times at 2-second intervals (60 seconds total). If it does not complete in that window, the command exits 1 with the export ID so you can retry.

uip or jobs history

Fetch state transition history for a job (PendingRunningSuccessful/Faulted). Folder is resolved from the job key.

Arguments

NameRequiredPurpose
<job-key>yesJob key (GUID).

Options

ShortLongValueDefaultDescription
-t--tenantnamesession defaultOverride the tenant.

Examples

uip or jobs history b2c3d4e5-0000-0000-0000-000000000001
uip or jobs history b2c3d4e5-0000-0000-0000-000000000001 \
    --output-filter 'Data[].{state:State, ts:Timestamp}'
uip or jobs history b2c3d4e5-0000-0000-0000-000000000001 --output table
uip or jobs history b2c3d4e5-0000-0000-0000-000000000001
uip or jobs history b2c3d4e5-0000-0000-0000-000000000001 \
    --output-filter 'Data[].{state:State, ts:Timestamp}'
uip or jobs history b2c3d4e5-0000-0000-0000-000000000001 --output table

Data shape (--output json)

{
  "Code": "JobHistory",
  "Data": [
    { "State": "Pending", "Timestamp": "2025-04-15T10:29:55Z", "JobId": 1001 },
    { "State": "Running", "Timestamp": "2025-04-15T10:30:00Z", "JobId": 1001 },
    { "State": "Successful", "Timestamp": "2025-04-15T10:32:11Z", "JobId": 1001 }
  ]
}
{
  "Code": "JobHistory",
  "Data": [
    { "State": "Pending", "Timestamp": "2025-04-15T10:29:55Z", "JobId": 1001 },
    { "State": "Running", "Timestamp": "2025-04-15T10:30:00Z", "JobId": 1001 },
    { "State": "Successful", "Timestamp": "2025-04-15T10:32:11Z", "JobId": 1001 }
  ]
}

Exit codes

See Exit codes for the shared contract. Verb-specific overrides:

  • jobs start --wait-for-completion exits 1 if the observed job ends Faulted or the wait times out.
  • jobs healing-data exits 1 if the server-side export does not complete within ~60 seconds.

See also

  • Global options--output, --output-filter, --log-level, --log-file.
  • Sessions — how tenant and folder context are resolved.
  • Your first pipeline — an end-to-end walkthrough using jobs start --wait-for-completion.

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated