---
title: "Put Approval Policy"
method: PUT
path: "/api/v1/teams/{team_id}/approval-policy"
tags: ["approvals"]
---

# Put Approval Policy

`PUT /api/v1/teams/{team_id}/approval-policy`

## Request

- Base URL: `https://api.badgeia.com`
- URL: `https://api.badgeia.com/api/v1/teams/{team_id}/approval-policy`
- Auth: none declared

Replace the policy. ``?dry_run=true`` only reports which standing approvals the
new policy would end (``would_revoke`` / ``affected``) and writes nothing.

## Path parameters

- `team_id` string, uuid, required

## Query parameters

- `dry_run` boolean

## Request body

- ApprovalPolicyWrite: Full replace: every omitted field returns to its default.
  - `required_suite_ids` string[]
  - `min_score` number, nullable
  - `min_pass_k` PassKRequirement
    - `k` integer, required
    - `threshold` number, required
  - `max_measured_cost_per_run` number, nullable
  - `require_sbom` boolean
  - `approver_roles` string[]
  - `min_approvers` integer
  - `expiry_days` integer, nullable

## Response `200`

Successful Response

- union
  - ApprovalPolicySaved: The saved policy plus what the change ended (revoked or expired approvals).
    - `team_id` string, uuid, required
    - `configured` boolean, required
    - `required_suite_ids` string[], required
    - `min_score` number, nullable, required
    - `min_pass_k` object, nullable, required
    - `max_measured_cost_per_run` number, nullable, required
    - `require_sbom` boolean, required
    - `approver_roles` string[], required
    - `min_approvers` integer, required
    - `expiry_days` integer, nullable, required
    - `updated_at` string, date-time, nullable, required
    - `revoked_count` integer
    - `affected` AffectedAgent[]
      - `agent_id` string, uuid, required
      - `agent_name` string, required
  - PolicyDryRun: ``PUT ...?dry_run=true``: what the new policy would end, with nothing written.
    - `would_revoke` integer, required
    - `affected` AffectedAgent[], required
      - `agent_id` string, uuid, required
      - `agent_name` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/badgeia/apis/badge.md) · [All operations](https://skmtc.dev/badgeia/apis/badge/llms.txt) · [OpenAPI document](https://skmtc.dev/badgeia/apis/badge/revisions/7e7f7fee8b77?raw)
