---
title: "List Conversation Tool Approvals"
method: GET
path: "/api/comms/{team_key}/conversations/{chat_key}/tool-approvals"
tags: ["comms"]
---

# List Conversation Tool Approvals

`GET /api/comms/{team_key}/conversations/{chat_key}/tool-approvals`

## Request

- Base URL: `https://api.superit.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.superit.ai/api/comms/{team_key}/conversations/{chat_key}/tool-approvals`
- Auth: HTTP bearer

List tool approvals for a single conversation.

## Path parameters

- `chat_key` string, required
- `team_key` string, required

## Query parameters

- `status` ApprovalStatus[]
- `page` integer
- `page_size` integer

## Response `200`

Successful Response

- ToolApprovalListResponse: Paginated tool approvals response.
  - `results` ToolApprovalResponse[], required
    - `key` string, required
    - `toolName` string, required
    - `toolCallId` string, required
    - `parentToolCallId` string, nullable: The tool cycle the chat renders this under when tool_call_id is an explore sub-agent's call, which is never in the transcript.
    - `command` string, required
    - `title` string, nullable
    - `reason` string, required
    - `risk` string, required
    - `riskLevel` 'low' | 'medium' | 'high', required
    - `status` 'PENDING' | 'APPROVED' | 'DENIED' | 'ABANDONED' | 'CANCELLED' | 'AUTO_APPROVED', required: API approval statuses.
    - `chatKey` string, required
    - `user` ApprovalUser, required: User info for approvals.
      - `id` integer, required
      - `name` string, required
      - `email` string, required
    - `teamName` string, required
    - `createdAt` string, date-time, required
    - `approver` ApprovalUser, required: User info for approvals.
      - `id` integer, required
      - `name` string, required
      - `email` string, required
    - `message` string, nullable, required
    - `operatingSystem` string, nullable, required
    - `elevated` boolean
    - `selfConsentEligible` boolean
    - `cancelable` boolean
    - `targetLabel` string, nullable
    - `targetPlatform` string, nullable: Target device os_platform: windows, linux or darwin.
    - `decidedAt` string, date-time, nullable
    - `approvalSource` 'command_judge', nullable
    - `agentName` string, nullable
    - `approvalReason` string, nullable
    - `commandSegments` CommandSegment[], nullable
      - `text` string, required
      - `verb` string, nullable
      - `stepKey` string, nullable
      - `elevated` boolean
    - `editable` ApprovalEditable: The structured card a PSA write approval renders instead of a command.
      - `lines` string[]
      - `note` EditableNote
        - `text` string, required
        - `internal` boolean, required
        - `visibility` string, required
      - `fields` EditableField[]
        - `key` string, required
        - `label` string, required
        - `before` string, nullable
        - `value` string, nullable
        - `valueName` string, nullable
        - `parent` string, nullable
        - `options` EditOption[]
          - `id` string, required
          - `name` string, required
          - `within` string[]
      - `changes` ProposedChange[]
        - `label` string, required
        - `before` string, nullable
        - `after` string, required
      - `rationale` string, nullable
      - `noteOnly` boolean
      - `ticket` TicketContext: The ticket the card writes to, as it stood when the card went up.
        - `key` string, nullable
        - `number` string, nullable
        - `subject` string, nullable
        - `company` string, nullable
        - `requester` string, nullable
        - `url` string, nullable
        - `updatedAt` string, date-time, nullable
      - `skipped` SkippedOperation[]
        - `kind` string, required
        - `text` string, required
        - `reason` string, nullable
      - `changedFieldCount` integer, nullable
      - `edited` string[]
    - `ticketChangedSinceProposal` boolean: A pending PSA write whose ticket the PSA updated after the card went up; approving it is refused until it is proposed again.
    - `outcome` 'verified' | 'written_unconfirmed' | 'failed', nullable: What an approved PSA write did. Null until the write finishes, and for anything that is not a PSA write.
    - `outcomeDetail` string, nullable: The PSA's displayed ticket number when verified, else the reason.
  - `count` integer, required
  - `page` integer, required
  - `pageSize` integer, required
  - `totalPages` integer, required

## Other responses

- `400`: Invalid input
- `401`: Not authenticated
- `403`: Forbidden
- `404`: Not found
- `405`: Method not allowed
- `409`: Conflict
- `422`: Validation Error

---

[API](https://skmtc.dev/superit/apis/super-it-api.md) - [All operations](https://skmtc.dev/superit/apis/super-it-api/llms.txt) - [OpenAPI document](https://skmtc.dev/superit/apis/super-it-api/revisions/4944d556c2bb?raw)
