---
title: "List installable policy packs"
method: GET
path: "/policy/packs"
---

# List installable policy packs

`GET /policy/packs`

## Request

- Base URL: `https://getsanction.com/api/v1`
- URL: `https://getsanction.com/api/v1/policy/packs`
- Auth: none required

PACK-1: the curated pack catalog — installable starting policies mapped to the governance maturity ladder (metering-first → startup-defaults → team-workspace → compliance-baseline). Each pack is a partial policy in dollars, the policy-update shape. Public; rate-limited per IP.

## Response `200`

The pack catalog

- object
  - `packs` object[]
    - `id` string
    - `name` string
    - `tagline` string
    - `audience` string
    - `maturity` 'metering' | 'authorization' | 'governance' | 'evidence'
    - `policy` PolicyPackPolicy: A pack's policy payload: any subset of the policy-update fields (dollars), minus wallet_id. Broader than SimulatePolicyCandidate — packs may carry fields the simulation can't overlay (token budgets, escalation timeouts).
      - `daily_token_budget_usd` number
      - `daily_spend_budget_usd` number
      - `monthly_spend_budget_usd` number, nullable
      - `subtree_daily_cap_usd` number, nullable
      - `per_transaction_max_usd` number
      - `auto_approve_under_usd` number
      - `escalate_over_usd` number
      - `allowed_categories` string[]
      - `blocked_categories` string[]
      - `allowed_tools` string[]
      - `blocked_tools` string[]
      - `escalate_tools` string[]
      - `capability_rules` object[]: Ordered capability governance rules (CAP-1): namespaced prefix-glob patterns with block → allow-list → escalate precedence.
        - `pattern` string, required: e.g. skill:install:*, api:github.com/*
        - `effect` 'block' | 'allow' | 'escalate', required
      - `tool_conditions` object[]: Context-conditional tool rules (COND-1): a closed vocabulary, exactly one predicate per rule. The restriction is ACTIVE when the condition holds — outside_hours_utc: [start, end) UTC hours (wrapping midnight allowed), or after_model_calls_today: N persisted model calls by this agent today. Effects are restrictive only; allow-list membership is never conditional.
        - `pattern` string, required: Prefix-glob tool pattern, e.g. deploy.*, *
        - `effect` 'block' | 'escalate', required
        - `when` object, required: Exactly one of:
          - `outside_hours_utc` integer[]
          - `after_model_calls_today` integer
      - `escalation_timeout_mins` integer
      - `escalation_timeout_action` 'deny' | 'approve'

## Other responses

- `429`: Rate limited

---

[API](https://skmtc.dev/getsanction/apis/sanction-agent-governance-api.md) · [All operations](https://skmtc.dev/getsanction/apis/sanction-agent-governance-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getsanction/apis/sanction-agent-governance-api/revisions/c645a9e4b72d?raw)
