---
title: "Update a firewall policy"
method: PUT
path: "/v1/firewalls/policies/{policyID}"
tags: ["public", "firewalls"]
---

# Update a firewall policy

`PUT /v1/firewalls/policies/{policyID}`

## Request

- Base URL: `https://api.vozora.io`
- URL: `https://api.vozora.io/v1/firewalls/policies/{policyID}`
- Auth: API key in header `Authorization`

Optimistically locked: send the version you last read. A concurrent change makes the update fail rather than silently overwrite.

## Path parameters

- `policyID` string, required

## Request body

- FirewallUpdatePolicyRequest
  - `description` string
  - `name` string
  - `version` integer

## Response `200`

OK

- FirewallPublicPolicy
  - `created_at` string
  - `description` string
  - `id` string
  - `name` string
  - `rules` FirewallPublicRule[]
    - `action` string
    - `conn_state` string
    - `created_at` string
    - `description` string
    - `direction` string
    - `dst_cidr` string
    - `enabled` boolean
    - `id` string
    - `ip_version` string
    - `name` string
    - `policy_id` string
    - `port_max` integer
    - `port_min` integer
    - `position` integer
    - `protocol` string
    - `src_cidr` string
    - `updated_at` string
  - `updated_at` string
  - `version` integer

## Other responses

- `400`: invalid request body
- `401`: invalid or missing API key
- `403`: the key lacks firewall:write
- `404`: no such resource, or it belongs to another account
- `409`: version_conflict — the policy changed since the version you sent
- `422`: validation_error — the request is well-formed but not acceptable

---

[API](https://skmtc.dev/vozora/apis/vozora-api.md) · [All operations](https://skmtc.dev/vozora/apis/vozora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vozora/apis/vozora-api/revisions/56f15734fc5a?raw)
