---
title: "List Shared Data Approval Events"
method: GET
path: "/api/admin/shared-data/users/{user_id}/approval-events"
tags: ["admin"]
---

# List Shared Data Approval Events

`GET /api/admin/shared-data/users/{user_id}/approval-events`

Return per-event tool-approval lifecycle for one consenting user.

Backed by the OSS ``approval_events`` table (migration 028). The
agent's approval gate writes one row per transition: ``requested``
when a tool with ASK policy fires, ``decided`` (with the
ApprovalDecision) when the user replies, ``timed_out`` if the user
never answers, and ``recovered`` if a worker crash left an orphan
that the next boot cleaned up. Surfacing this stream lets admins
see when the agent was blocked on a permission prompt and how the
request resolved, which the conversation transcript alone cannot
show (prompts ride through the messages table indistinguishably
from ordinary replies).

``description`` is the human-readable text shown to the user in
the prompt body. It can echo user-pasted content (filenames, URLs,
quoted message text), so it is PII-redacted before serialization.
``channel`` and ``chat_id`` are infrastructure metadata that route
the prompt; they are not redacted.

Ordered ``created_at asc`` so a request/decided pair stays adjacent
in the response, matching how the activity feed will render them.

## Path parameters

- `user_id` string, required

## Query parameters

- `limit` integer
- `start_date` string, nullable — ISO-8601 timestamp; lower bound on created_at.
- `end_date` string, nullable — ISO-8601 timestamp; upper bound on created_at.

## Response `200`

Successful Response

- SharedDataApprovalEventListResponse
  - `user_id` string, required
  - `consent_at` string, nullable, required
  - `items` SharedDataApprovalEventItem[], required
    - `id` integer, required
    - `event_type` string, required
    - `tool_name` string, required
    - `description` string, required
    - `channel` string, required
    - `chat_id` string, required
    - `decision` string, nullable, required
    - `created_at` string, nullable, required
  - `total` integer, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/mozilla-ai/apis/clawbolt.md) · [All operations](https://skmtc.net/mozilla-ai/apis/clawbolt/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mozilla-ai/clawbolt/revisions/0e52fe5f8d33/schema)
