# uip admin robot-accounts

> Syntax and options for `uip admin robot-accounts`, `uip admin pat`, and `uip admin scopes` — non-human identities, personal access tokens, and the OAuth2 scope reference.

Three related, independent command groups: `robot-accounts` (non-human directory identities used for unattended automation), `pat` (personal access tokens for API authentication), and `scopes` (a read-only reference of every OAuth2 scope available to external apps and PATs).

## Synopsis

```text
uip admin robot-accounts list [--search <term>] [--sort-by <field>] [--sort-order asc|desc] [--limit <n>] [--offset <n>]
uip admin robot-accounts get <robot-account-id>
uip admin robot-accounts create <name> [--display-name <name>]
uip admin robot-accounts update <robot-account-id> --display-name <name>
uip admin robot-accounts delete <robot-account-id>

uip admin pat list [--scope all] [--search <term>] [--limit <n>] [--offset <n>]
uip admin pat create --description <text> --expiration <date> --scope <scopes>
uip admin pat revoke <id>
uip admin pat regenerate <id> --expiration <date>

uip admin scopes list
```

## Verbs

| Group | Verb | Purpose |
|---|---|---|
| `robot-accounts` | `list` | List robot accounts in the partition. |
| `robot-accounts` | `get` | Get a robot account's details by ID. |
| `robot-accounts` | `create` | Create a new robot account. |
| `robot-accounts` | `update` | Update a robot account's display name. |
| `robot-accounts` | `delete` | Delete a robot account by ID. |
| `pat` | `list` | List personal access tokens (yours, or the org's with `--scope all`). |
| `pat` | `create` | Create a new personal access token. |
| `pat` | `revoke` | Revoke a token. |
| `pat` | `regenerate` | Regenerate a token with a new expiration. |
| `scopes` | `list` | List every OAuth2 scope available, grouped by resource. |

## uip admin robot-accounts list

List robot accounts in the partition. Returns account ID, name, display name, and creation time.

### Options

| Long | Short | Value | Default | Description |
|---|---|---|---|---|
| `--search <term>` | `-s` | string | — | Search by name. |
| `--sort-by <field>` | | string | — | Sort field, e.g. `Name`. |
| `--sort-order <direction>` | | `asc`\|`desc` | `asc` | Sort direction. |
| `--limit <number>` | `-l` | integer | 50 | Number of items to return. |
| `--offset <number>` | | integer | `0` | Number of items to skip. |

### Example

```bash
uip admin robot-accounts list --limit 5
```

### Data shape (--output json)

```json
{
  "Code": "RobotAccountList",
  "Data": [
    { "id": "a1b2c3d4-0000-0000-0000-000000000001", "name": "automation-bot", "displayName": "Automation Bot", "creationTime": "2026-01-15T10:00:00.000Z" }
  ]
}
```

## uip admin robot-accounts get

Get robot account details by ID.

### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<robot-account-id>` | yes | Robot account ID (UUID). |

### Example

```bash
uip admin robot-accounts get a1b2c3d4-0000-0000-0000-000000000001
```

### Data shape (--output json)

```json
{ "Code": "RobotAccountDetails", "Data": { "id": "a1b2c3d4-0000-0000-0000-000000000001", "name": "automation-bot", "displayName": "Automation Bot", "creationTime": "2026-01-15T10:00:00.000Z", "groupIds": [] } }
```

## uip admin robot-accounts create

Create a new robot account in the partition.

### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<name>` | yes | Robot account name. |

### Options

| Long | Value | Description |
|---|---|---|
| `--display-name <name>` | string | Display name. Defaults to `<name>` when omitted. |

### Example

```bash
uip admin robot-accounts create "automation-bot" --display-name "Automation Bot"
```

### Data shape (--output json)

```json
{ "Code": "RobotAccountCreated", "Data": { "id": "a1b2c3d4-0000-0000-0000-000000000002", "name": "automation-bot", "displayName": "Automation Bot" } }
```

## uip admin robot-accounts update

Update a robot account's display name. `--display-name` is the only field and is effectively required — omitting it fails client-side (`"No fields to update"`).

### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<robot-account-id>` | yes | Robot account ID (UUID). |

### Options

| Long | Value | Required | Description |
|---|---|---|---|
| `--display-name <name>` | string | **yes** | New display name. |

### Example

```bash
uip admin robot-accounts update a1b2c3d4-0000-0000-0000-000000000001 --display-name "Updated Bot"
```

### Data shape (--output json)

```json
{ "Code": "RobotAccountUpdated" }
```

## uip admin robot-accounts delete

Delete a robot account by ID.

### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<robot-account-id>` | yes | Robot account ID (UUID). |

### Example

```bash
uip admin robot-accounts delete a1b2c3d4-0000-0000-0000-000000000001
```

### Data shape (--output json)

```json
{ "Code": "RobotAccountDeleted", "Data": { "Id": "a1b2c3d4-0000-0000-0000-000000000001", "Status": "Deleted successfully" } }
```

## uip admin pat list

List personal access tokens. By default lists only your own; `--scope all` (admin-only) lists every token in the organization.

### Options

| Long | Value | Description |
|---|---|---|
| `--scope <scope>` | `all` | Only `"all"` is accepted — any other value fails client-side with an explicit error. Omit to list only your own tokens. |
| `--search <term>` | string | Filter by user search term. **Implies `--scope all`** even if `--scope` isn't passed. |
| `--limit <number>` (`-l`) | integer | Default 50. Number of items to return. |
| `--offset <number>` | integer | Default `0`. Number of items to skip. |

### Example

```bash
uip admin pat list
```

### Data shape (--output json)

```json
{
  "Code": "PatList",
  "Data": [
    { "id": "a1b2c3d4-0000-0000-0000-000000000001", "description": "CI/CD token", "expiration": "2027-01-15T00:00:00.000Z", "scopes": ["OR.Folders.Read"] }
  ]
}
```

## uip admin pat create

Create a new personal access token. The token value is returned only once — it is not retrievable later.

### Options

| Long | Value | Required | Description |
|---|---|---|---|
| `--description <text>` | string | **yes** | Description for the token. |
| `--expiration <date>` | `YYYY-MM-DD` | **yes** | Expiration date. Strictly validated — rejects malformed dates and calendar rollovers (e.g. `2027-02-30`). |
| `--scope <scopes>` | comma-separated | **yes** | One or more scopes, e.g. `OR.Folders.Read,OR.Jobs.Read`. See [`scopes list`](#uip-admin-scopes-list) for the full catalog. |

### Example

```bash
uip admin pat create --description "CI/CD token" --expiration 2027-01-15 --scope "OR.Folders.Read,OR.Jobs.Read"
```

### Data shape (--output json)

```json
{ "Code": "PatCreated", "Data": { "Token": "...", "Warning": "Save this token now. It will not be shown again." } }
```

## uip admin pat revoke

Revoke a personal access token.

### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<id>` | yes | Token ID (UUID). Find it with `pat list`. |

### Example

```bash
uip admin pat revoke a1b2c3d4-0000-0000-0000-000000000001
```

### Data shape (--output json)

```json
{ "Code": "PatRevoked", "Data": { "Id": "a1b2c3d4-0000-0000-0000-000000000001", "Status": "Revoked successfully" } }
```

## uip admin pat regenerate

Regenerate a personal access token with a new expiration. Like `create`, the new token value is shown only once.

### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<id>` | yes | Token ID (UUID). |

### Options

| Long | Value | Required | Description |
|---|---|---|---|
| `--expiration <date>` | `YYYY-MM-DD` | **yes** | New expiration date. Same strict validation as `create`. |

### Example

```bash
uip admin pat regenerate a1b2c3d4-0000-0000-0000-000000000001 --expiration 2028-01-15
```

### Data shape (--output json)

```json
{ "Code": "PatRegenerated", "Data": { "Id": "a1b2c3d4-0000-0000-0000-000000000001", "Token": "...", "Warning": "Save this token now. It will not be shown again." } }
```

## uip admin scopes list

List every OAuth2 scope available for external apps and personal access tokens, grouped by resource. Read-only, no options beyond global ones.

### Example

```bash
uip admin scopes list
```

### Data shape (--output json)

```json
{
  "Code": "ScopesList",
  "Data": [
    {
      "name": "UiPath.Orchestrator",
      "displayName": "Orchestrator API Access",
      "scopes": [
        { "name": "OR.Folders", "displayName": "OR.Folders", "type": "user" }
      ]
    }
  ]
}
```

`type` on each scope entry is `"user"` (delegated, requires a signed-in user) or `"application"` (app-only) — the same distinction `external-apps create`'s `--user-scope`/`--app-scope` flags and `pat create`'s `--scope` flag draw from.

## Related

- [`uip admin users`](./uip-admin-users.md) — directory users and groups.
- [`uip admin external-apps`](./uip-admin-external-apps.md) — OAuth2 client registrations, which use the same scope catalog.
- [`uip admin smtp`](./uip-admin-smtp.md) — organization email configuration.

## See also

- [Global options](./global-options.md)
- [Exit codes](./exit-codes.md)
