---
title: "What would have been approved automatically"
method: GET
path: "/v1/org/approval-learning/shadow-report"
tags: ["Organization"]
---

# What would have been approved automatically

`GET /v1/org/approval-learning/shadow-report`

## Request

- Base URL: `https://api.1claw.co`
- URL: `https://api.1claw.co/v1/org/approval-learning/shadow-report`
- Auth: HTTP bearer

Every approval decision is observed, per **fingerprint bucket** — the
action, the amount band, whether the recipient was new, and who they
were. This reports the buckets a person has approved without exception,
and what promoting one would write into an agent's policy.

Observing is not acting. In the default `shadow` mode nothing changes who
gets asked; `can_promote` is false and the promote endpoint refuses.

Each suggestion carries `would_write_rule` — the actual rule, built by the
same function promotion uses, so the report cannot promise something
promotion would refuse.

## Response `200`

Report

- object
  - `mode` 'shadow' | 'enforce'
  - `threshold` integer: Consecutive approvals in one bucket before it appears here.
  - `can_promote` boolean
  - `observed_buckets` integer
  - `total_decisions` integer
  - `suggestions` object[]
    - `profile_id` string, uuid
    - `action_type` string
    - `fingerprint_bucket` string
    - `consecutive_approvals` integer
    - `total_requests` integer
    - `would_write_rule` object, nullable
    - `blocked` string: Present when a bound prevents promotion, saying which.
    - `last_decision_at` string, date-time

## Other responses

- `403`: Insufficient permissions

---

[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/5fa0918f3b41?raw)
