Skip to main content

Approvals Commands

See Approvals module docs for permissions and data model.

soat list-approvals​

List approval items

  • Method: GET
  • Path: /api/v1/approvals

Usage​

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​

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​

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​

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
--tool-context​

Key-value pairs forwarded as context headers on the approved action and on every tool call of the continuation turn, as on a generation's tool_context. Never stored on the item: supply it on the approve call itself, for a tool that authorizes with a credential minted at decision time. The server-pinned identity keys (session_id, actor_id, actor_external_id) are dropped. An invalid or colliding key is rejected with 400 INVALID_TOOL_CONTEXT_KEY and nothing is resolved.

  • Source: body
  • Required: no
  • Type: object<string, string>

soat reject-approval​

Reject an approval item

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

Usage​

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.