---
title: "List approvals"
method: GET
path: "/v1/approvals"
tags: ["Approvals"]
---

# List approvals

`GET /v1/approvals`

## Request

- Base URL: `https://api.1claw.co`
- URL: `https://api.1claw.co/v1/approvals`
- Auth: HTTP bearer

Humans get their own approval queue. An agent caller gets only the
approvals it created (`agent_id` = caller) — enough to recover one whose
id was lost across a restart, never the organization's queue. Supports
filtering by status and pagination.

## Query parameters

- `status` 'pending' | 'approved' | 'rejected' | 'expired' | 'cancelled'
- `limit` integer
- `offset` integer

## Response `200`

Approval list

- object
  - `approvals` ApprovalResponse[], required
    - `id` string, uuid, required
    - `org_id` string, uuid, required
    - `user_id` string, uuid, required
    - `agent_id` string, uuid, nullable
    - `action` string, required
    - `target_type` string, required
    - `target_id` string, required
    - `risk_tier` integer, required: The tier actually enforced. Authoritative.
    - `declared_risk_tier` integer, nullable: What the caller asked for, when it asked for anything.
    - `declared_below_floor` boolean: The caller asked for a lower tier than policy required.
    - `human_summary` string, nullable: Plain-language line sent to SMS, push and email.
    - `payload` object: What the action will do, as submitted.
    - `status` 'pending' | 'approved' | 'rejected' | 'expired' | 'cancelled', required
    - `summary` object, required: Structured summary of the action requiring approval
    - `reason` string, nullable
    - `decision_reason` string, nullable
    - `decided_by` string, uuid, nullable
    - `decided_at` string, date-time, nullable
    - `expires_at` string, date-time, nullable
    - `created_at` string, date-time, required

---

[API](https://skmtc.dev/1claw/apis/1claw-api.md) · [All operations](https://skmtc.dev/1claw/apis/1claw-api/llms.txt) · [OpenAPI document](https://skmtc.dev/1claw/apis/1claw-api/revisions/ae109b496830?raw)
