---
title: "Update a policy's identity fields"
method: PUT
path: "/v1/policies/{policy_id}"
tags: ["policies"]
---

# Update a policy's identity fields

`PUT /v1/policies/{policy_id}`

## Path parameters

- `policy_id` string, uuid, required

## Request body

- PolicyUpdate — Patch a policy's identity fields (NOT its config — that's a new revision). ``scope`` is intentionally NOT here: it is an identity-level fact set ONCE at create (spec §2 — moved off the revision to ``Policy``, ``server_default='attachable'``, with no update path). Allowing it on PUT would advertise a mutable field the service silently drops; organization-vs-attachable is decided at authoring time, so it stays immutable post-create.
  - `name` string, nullable
  - `description` string, nullable
  - `enabled` boolean, nullable
  - `metadata` object, nullable

## Response `200`

Successful Response

- PolicyResponse
  - `id` string, uuid, required
  - `organization_id` string, uuid, required
  - `name` string, required
  - `description` string, nullable
  - `enabled` boolean, required
  - `scope` string, required
  - `active_revision_id` string, uuid, nullable
  - `active_revision` PolicyRevisionResponse
    - `id` string, uuid, required
    - `policy_id` string, uuid, required
    - `name` string, required
    - `description` string, nullable
    - `check_type` string, required
    - `check_config` object
    - `enforcement_point` string, required
    - `action` string, required
    - `action_config` object, nullable
    - `tool_target` string, nullable
    - `mode` string, required
    - `on_error` string, required
    - `timeout_ms` integer, nullable
    - `strictness` string, required
    - `priority` integer, required
    - `created_by` string, nullable
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `metadata` object
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `400` — Bad request
- `401` — Authentication required
- `404` — Resource not found
- `422` — Validation Error

---

[API](https://skmtc.net/oneloop-hq/apis/feather-api.md) · [All operations](https://skmtc.net/oneloop-hq/apis/feather-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/oneloop-hq/feather-api/versions/888bdd5c076e/schema)
