> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shouldertap.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Audit

> Retrieve the full event trail for a single request over the ShoulderTap HTTP API.

Every step a request takes is recorded as an audit event. This endpoint returns the full trail for one request — useful for debugging routing, confirming what an expert was asked, and seeing who decided a proposal.

## Get a request's audit trail

<code>GET /api/v1/audit?request\_id=\{id}</code>

```bash theme={null}
curl "http://localhost:8776/api/v1/audit?request_id=req_01J..." \
  -H "Authorization: Bearer $SHOULDERTAP_API_TOKEN"
```

<ParamField query="request_id" type="string" required>
  The request to trace.
</ParamField>

### Response

An array of events in order, each with a timestamp, the actor, the event name, and optional detail.

```json theme={null}
[
  { "ts": "2026-07-20T17:00:00Z", "request_id": "req_01J...", "actor": "engine", "event": "request.received" },
  { "ts": "2026-07-20T17:00:01Z", "request_id": "req_01J...", "actor": "engine", "event": "routing.resolved", "detail": {"expert_id": "U0123ABC"} },
  { "ts": "2026-07-20T17:00:02Z", "request_id": "req_01J...", "actor": "engine", "event": "ask.sent" },
  { "ts": "2026-07-20T17:05:00Z", "request_id": "req_01J...", "actor": "U0123ABC", "event": "reply.received" },
  { "ts": "2026-07-20T17:06:00Z", "request_id": "req_01J...", "actor": "engine", "event": "proposal.created" },
  { "ts": "2026-07-20T17:10:00Z", "request_id": "req_01J...", "actor": "alice", "event": "proposal.accepted" }
]
```

Typical events include `request.received`, `routing.resolved`, `ask.sent`, `ask.rate_limited`, `ask.queued_quiet_hours`, `escalation.fired`, `reply.received`, `proposal.created`, `proposal.accepted`, and `expert.muted`. An unknown request id returns an empty array.
