---
title: "Replaces a webhook subscription's configuration."
method: PUT
path: "/api/v1/orgs/{org}/webhooks/{id}"
tags: ["Webhooks"]
---

# Replaces a webhook subscription's configuration.

`PUT /api/v1/orgs/{org}/webhooks/{id}`

## Request

- Base URL: `https://api.featureflip.io`
- URL: `https://api.featureflip.io/api/v1/orgs/{org}/webhooks/{id}`
- Auth: API key in header `Authorization`

Requires Admin. Omitted lists become empty,
which means "all". Re-enabling a subscription that is over the plan's webhook allowance (after
a downgrade) is a 403 `plan_limit_reached`.

## Path parameters

- `org` string, required
- `id` string, required

## Headers

- `If-Match` string

## Request body

- PublicUpdateWebhookSubscriptionRequest: Replaces a subscription's configuration (full replace — omitted lists become empty, meaning "all"). `isEnabled` is required. The provider cannot be changed.
  - `name` string, nullable, required
  - `url` string, nullable, required
  - `eventTypes` string[], nullable
  - `projectIds` string[], nullable
  - `environmentIds` string[], nullable
  - `isEnabled` boolean, nullable

## Response `204`

No Content

## Other responses

- `400`: Bad Request
- `401`: Authentication is required, or the supplied API token is invalid or expired.
- `403`: Forbidden
- `404`: Not Found
- `412`: The resource changed since the If-Match ETag.
- `429`: Rate limit exceeded. Retry after the interval indicated by the Retry-After header.

---

[API](https://skmtc.dev/featureflip/apis/management-api.md) · [All operations](https://skmtc.dev/featureflip/apis/management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/featureflip/apis/management-api/revisions/8a77e8581a45?raw)
