---
title: "List durable action reviews for the authenticated agent"
method: GET
path: "/v1/approvals"
tags: ["Approvals"]
---

# List durable action reviews for the authenticated agent

`GET /v1/approvals`

## Request

- Base URL: `https://api.thrd.email`
- URL: `https://api.thrd.email/v1/approvals`
- Auth: HTTP bearer

Requires bearer scope actions:authorize. Results are bound to the API-key tenant, agent and server runtime environment.

## Query parameters

- `limit` integer
- `cursor` string, uuid
- `status` 'pending' | 'approved' | 'denied' | 'modified' | 'expired' | 'canceled' | 'capability_issued' | 'executed' | 'execution_failed'

## Response `200`

Tenant-agent scoped approval page

- object
  - `approvals` object[], required
    - `approval_id` string, uuid, required
    - `agent_id` string, uuid, required
    - `action_proposal_id` string, uuid, required
    - `decision_id` string, uuid, required
    - `status` 'pending' | 'approved' | 'denied' | 'modified' | 'expired' | 'canceled' | 'capability_issued' | 'executed' | 'execution_failed', required
    - `action_hash` string, required
    - `policy_hash` string, required
    - `decision_context_hash` string, required
    - `source` object, required
      - `type` 'email', required
      - `message_id` string, uuid, required
      - `envelope_id` string, uuid
    - `action` object, required
      - `type` string, required
      - `arguments` object, required
    - `runtime` object, required
      - `framework` string
      - `tool_name` string, required
      - `tool_version` string
      - `execution_target` string
    - `policy` object, required
      - `id` string, uuid, required
      - `version` integer, required
      - `hash` string, required
    - `reason_codes` string[], required
    - `matched_rule_ids` string[], required
    - `risk_summary` object, required
      - `maximum_severity` 'none' | 'low' | 'medium' | 'high' | 'critical', required
      - `signal_codes` string[], required
    - `requested_at` string, date-time, required
    - `expires_at` string, date-time, required
    - `completed_at` string, date-time, nullable, required
    - `capability` object, nullable, required
      - `capability_id` string, uuid, required
      - `status` 'issued' | 'redeemed' | 'revoked' | 'expired', required
      - `expires_at` string, date-time, required
  - `next_cursor` string, uuid, nullable, required

## Other responses

- `400`: Invalid cursor, status or limit
- `401`: Missing or invalid API key
- `403`: Missing actions:authorize scope
- `503`: Approval authority unavailable

---

[API](https://skmtc.dev/thrd/apis/thrd-agent-email-api.md) · [All operations](https://skmtc.dev/thrd/apis/thrd-agent-email-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thrd/apis/thrd-agent-email-api/revisions/d8a88129cd34?raw)
