# Approvals Commands

> See [Approvals module docs](../../modules/approvals) for permissions and data model.

# Approvals Commands

See [Approvals module docs](../../modules/approvals) for permissions and data model.

### `soat list-approvals`

List approval items

- Method: `GET`
- Path: `/api/v1/approvals`

#### Usage

```bash
soat list-approvals
```

#### Options

##### `--project-id`

Project ID (required if not using project key auth)

- Source: `query`
- Required: no
- Type: `string`
- Example: `proj_V1StGXR8Z5jdHi6B`

##### `--status`

Filter by lifecycle status

- Source: `query`
- Required: no
- Type: `enum("pending", "approved", "rejected", "expired")`

##### `--origin`

Filter by producer origin

- Source: `query`
- Required: no
- Type: `enum("node", "tool_call", "task_transition")`

##### `--expires-before`

Return only items expiring at or before this timestamp

- Source: `query`
- Required: no
- Type: `string`

##### `--limit`

Maximum number of results to return

- Source: `query`
- Required: no
- Type: `integer`
- Default: `50`

##### `--offset`

Number of results to skip

- Source: `query`
- Required: no
- Type: `integer`
- Default: `0`

### `soat list-approval-recurrences`

List recurring approval groups

- Method: `GET`
- Path: `/api/v1/approvals/recurrences`

#### Usage

```bash
soat list-approval-recurrences
```

#### Options

##### `--project-id`

Project ID (required if not using project key auth)

- Source: `query`
- Required: no
- Type: `string`
- Example: `proj_V1StGXR8Z5jdHi6B`

##### `--status`

Lifecycle status the groups are built from (default `rejected`)

- Source: `query`
- Required: no
- Type: `enum("pending", "approved", "rejected", "expired")`
- Default: `rejected`

##### `--min-count`

Minimum items in a group for it to be returned

- Source: `query`
- Required: no
- Type: `integer`
- Default: `2`

##### `--limit`

Maximum number of groups to return

- Source: `query`
- Required: no
- Type: `integer`
- Default: `50`

##### `--offset`

Number of groups to skip

- Source: `query`
- Required: no
- Type: `integer`
- Default: `0`

### `soat get-approval`

Get an approval item

- Method: `GET`
- Path: `/api/v1/approvals/{approval_id}`

#### Usage

```bash
soat get-approval
```

#### Options

This command has no options.

### `soat approve-approval`

Approve an approval item

- Method: `POST`
- Path: `/api/v1/approvals/{approval_id}/approve`

#### Usage

```bash
soat approve-approval
```

#### Options

##### `--arguments`

Edited arguments to execute instead of the proposed ones. Editing composes a new call, so it additionally requires permission to make that call: `tools:CallTool` on the tool, and for a `builtin` proposal the action's own IAM action.

- Source: `body`
- Required: no
- Type: `object`

### `soat reject-approval`

Reject an approval item

- Method: `POST`
- Path: `/api/v1/approvals/{approval_id}/reject`

#### Usage

```bash
soat reject-approval --reason <string>
```

#### Options

##### `--reason`

Why the item is being rejected (required)

- Source: `body`
- Required: yes
- Type: `string`
- Example: `Amount exceeds the approved monthly budget.`
