---
title: "Preview Effective Policy"
method: POST
path: "/v1/governance/effective-policy/preview"
tags: ["v1", "protected", "governance"]
---

# Preview Effective Policy

`POST /v1/governance/effective-policy/preview`

Compute effective policy from rules without persisting a snapshot.

Useful for UIs that need to show the merged workspace/agent/task ceiling
before the user commits a task creation.

## Request body

- EffectivePolicyPreviewRequest — Body for dry-run effective-policy resolution.
  - `agent_id` string, uuid, nullable
  - `task_policy` PolicyDocument — Source policy document stored per scope.
    - `approval` ApprovalPolicy — Human approval and escalation requirements.
      - `approvers` string[]
      - `approvers_by_tool` object
      - `escalation_rules` string[]
      - `requires_human_approval` boolean, nullable
    - `budget` BudgetPolicyInput — Budget-related ceilings.
      - `monthly_spend_cap_usd` union
        - number
        - string
      - `run_budget_usd` union
        - number
        - string
      - `service_budget_usd` union
        - number
        - string
    - `content_safety` ContentSafetyPolicy — Content-safety governance controls.
      - `output_sanitizer_enabled` boolean, nullable
      - `prompt_injection_detection_enabled` boolean, nullable
    - `execution` ExecutionLimitsPolicy — Ceilings for the agent loop and tool execution.
      - `max_model_turns` integer, nullable
      - `max_tool_calls_per_turn` integer, nullable
      - `max_tool_calls_total` integer, nullable
    - `tokens` TokenPolicy — Token-related ceilings.
      - `max_tokens` integer, nullable
      - `max_tokens_per_call` integer, nullable
    - `tools` ToolsPolicy — MCP tool capability restrictions.
      - `allowed` string[], nullable
      - `denied` string[]

## Response `200`

Successful Response

- EffectivePolicyResponse
  - `effective_policy` EffectivePolicy, required — Resolved immutable policy snapshot.
    - `approval` ApprovalPolicy — Human approval and escalation requirements.
      - `approvers` string[]
      - `approvers_by_tool` object
      - `escalation_rules` string[]
      - `requires_human_approval` boolean, nullable
    - `budget` BudgetPolicyOutput — Budget-related ceilings.
      - `monthly_spend_cap_usd` string, nullable
      - `run_budget_usd` string, nullable
      - `service_budget_usd` string, nullable
    - `content_safety` ContentSafetyPolicy — Content-safety governance controls.
      - `output_sanitizer_enabled` boolean, nullable
      - `prompt_injection_detection_enabled` boolean, nullable
    - `execution` ExecutionLimitsPolicy — Ceilings for the agent loop and tool execution.
      - `max_model_turns` integer, nullable
      - `max_tool_calls_per_turn` integer, nullable
      - `max_tool_calls_total` integer, nullable
    - `resolver_version` string
    - `source_policy_ids` string[]
    - `tokens` TokenPolicy — Token-related ceilings.
      - `max_tokens` integer, nullable
      - `max_tokens_per_call` integer, nullable
    - `tools` ToolsPolicy — MCP tool capability restrictions.
      - `allowed` string[], nullable
      - `denied` string[]

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/agentarea/apis/agentarea-api.md) · [All operations](https://skmtc.net/agentarea/apis/agentarea-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/agentarea/agentarea-api/revisions/e3650e48373b/schema)
