Enforcement
Read-only view of enforcement actions and review state. Decisions live on the gate service, never here.
| Method | Path | Scope | Summary |
|---|---|---|---|
GET | /enforcement/{action_id} | read | Get Action |
GET | /enforcement/agent/{agent_id}/latest | read | Latest For Agent |
GET | /enforcement/pending | read | Pending Actions |
Try it
curl -sf -H "Authorization: Bearer $VIGIL_KEY" "$VIGIL_URL/enforcement/pending"
Routes
GET /enforcement/{action_id}
Get Action. Scope: read.
| Parameter | In | Required | Type | Notes |
|---|---|---|---|---|
action_id | path | yes | integer |
Response 200:
{
"id": 0,
"org_id": 0,
"agent_id": "string",
"triggering_event_id": 0,
"gate_status": "pass | hold | alert | collapse",
"bii_at_trigger": 0,
"reason": "string",
"actioned_at": "2026-09-08T00:00:00Z",
"hold_expires_at": "2026-09-08T00:00:00Z | null",
"policy_digest": "string",
"requires_human_review": true,
"reviewed_by": "string | null",
"reviewed_at": "2026-09-08T00:00:00Z | null",
"review_outcome": "string | null",
"review_note": "string | null"
}
GET /enforcement/agent/{agent_id}/latest
Latest For Agent. Scope: read.
The most recent enforcement action for an agent; its gate_status is the agent's current gate.
| Parameter | In | Required | Type | Notes |
|---|---|---|---|---|
agent_id | path | yes | string |
Response 200:
{
"id": 0,
"org_id": 0,
"agent_id": "string",
"triggering_event_id": 0,
"gate_status": "pass | hold | alert | collapse",
"bii_at_trigger": 0,
"reason": "string",
"actioned_at": "2026-09-08T00:00:00Z",
"hold_expires_at": "2026-09-08T00:00:00Z | null",
"policy_digest": "string",
"requires_human_review": true,
"reviewed_by": "string | null",
"reviewed_at": "2026-09-08T00:00:00Z | null",
"review_outcome": "string | null",
"review_note": "string | null"
}
GET /enforcement/pending
Pending Actions. Scope: read.
Actions that require human review and have no outcome yet, newest first.
| Parameter | In | Required | Type | Notes |
|---|---|---|---|---|
limit | query | no | integer |
Response 200:
[
{
"id": 0,
"org_id": 0,
"agent_id": "string",
"triggering_event_id": 0,
"gate_status": "pass | hold | alert | collapse",
"bii_at_trigger": 0,
"reason": "string",
"actioned_at": "2026-09-08T00:00:00Z",
"hold_expires_at": "2026-09-08T00:00:00Z | null",
"policy_digest": "string",
"requires_human_review": true,
"reviewed_by": "string | null",
"reviewed_at": "2026-09-08T00:00:00Z | null",
"review_outcome": "string | null",
"review_note": "string | null"
}
]
Generated from openapi.json (VIGIL 0.2.0). Scopes follow the router dependencies in VIGIL_SPEC.md section 4.2.