Skip to main content
GET
/
v1
/
policies
/
evaluations
List policy evaluation audit rows (what enforcement happened, newest-first)
curl --request GET \
  --url https://api-sandbox.featherhq.com/v1/policies/evaluations \
  --header 'x-api-key: <api-key>'
{
  "items": [
    {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "policy_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "enforcement_point": "<string>",
      "result": "<string>",
      "created_at": "2023-11-07T05:31:56Z",
      "policy_name": "<string>",
      "conversation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "mode": "<string>",
      "transport_class": "<string>",
      "channel": "<string>",
      "action_taken": "<string>",
      "would_be_action": "<string>",
      "violation_detail": {},
      "latency_ms": 123
    }
  ],
  "has_more": true,
  "next_cursor": "<string>"
}

Authorizations

x-api-key
string
header
required

Query Parameters

conversation_id
string<uuid> | null
policy_id
string<uuid> | null
result
enum<string> | null

Outcome of one evaluation of a policy check.

Available options:
pass,
fail,
error,
skipped
enforcement_point
enum<string> | null

Where in a turn a policy's check fires (v2: one point per policy).

agent_response is the single author-facing reply point — the v1 response (per-streamed-unit) + post_response (complete reply) split is an internal runtime detail now, selected by the platform-derived enforcement strategy (buffer-and-gate vs per-unit), not an authored distinction.

Available options:
input,
pre_tool,
post_tool,
agent_response
limit
integer
default:50
Required range: 1 <= x <= 200
cursor
string | null

Response

Successful Response

items
PolicyEvaluationResponse · object[]
required
has_more
boolean
required
next_cursor
string | null