v48

latestOpenAPI 3.1.0raw.githubusercontent.com2026-05-275867561.6 MB
gateway-policies

Update a gateway policy

Partially updates a gateway policy. Only fields present in the request body are applied; absent fields are left unchanged. policy_type is immutable — to change a policy's type, delete it and create a new one.

config if supplied must match the policy's type:

  • spend-cap: {"window": ..., "limit_usd": ...}
  • guard: {"version": 1, "detect": {...}, "timeout_seconds": <number>} Mismatched shapes are rejected with 400.

default_spend_cap cascade: editing a default_spend_cap updates the config/action/enabled/priority on every attached child policy so the template stays the source of truth across rollouts.

patch/v1/platform/gateway-policies/{id}

Path parameters

idstring uuid required

Policy ID

Request body

actionstring
configobject
descriptionstring
enabledboolean
namestring
priorityinteger

Example request

{
  "action": "block",
  "description": "Blocks overspend on the production org",
  "enabled": true,
  "name": "monthly-cap"
}

Response

OK

actionstring
configobject
created_atstring
created_bystring
current_spend_usdnumber

CurrentSpendUSD is the spend in the policy's current window. Set for any spend_cap policy regardless of enabled state — disabled policies still surface usage so users can see what would have been counted. Nil for non-spend_cap policies or when the spend lookup failed.

descriptionstring
enabledboolean
idstring
is_system_generatedboolean
namestring
organization_idstring
parent_policy_idstring

ParentPolicyID is set on materialized children of a default_spend_cap to the default's id, and cleared (NULL) only when an admin Create with the same matchers takes over the materialized row. Update on a child preserves the link; Delete on the parent cascade-soft-deletes every child rather than detaching them.

policy_typestring
priorityinteger
updated_atstring