---
title: "Update a webhook"
method: PATCH
path: "/v1/webhooks/{id}"
tags: ["Webhooks"]
---

# Update a webhook

`PATCH /v1/webhooks/{id}`

Updates specific fields of a webhook endpoint

## Path parameters

- `id` string, uuid, required

## Request body

- UpdateWebhookInputBody
  - `url` string, uri — New webhook URL. Must be an HTTP or HTTPS URL. NULL bytes not allowed.
  - `signing_key` string — New signing key. NULL bytes not allowed.
  - `enabled` boolean — Enable or disable the webhook
  - `tenant_id` string — Omit to leave unchanged. Empty strings are rejected; webhooks cannot be global.
  - `event_types` WebhookEventType[] — New list of event types (use empty array to clear). Each value must be one of WebhookEventType.

## Response `200`

OK. Returns WebhookPublicData (signing_key omitted).

- WebhookPublicData — Webhook data for GET and LIST responses; signing_key is omitted for security
  - `id` string, uuid, required — Webhook ID (UUID)
  - `url` string, required — URL that receives webhook POSTs
  - `enabled` boolean, required — Whether the webhook is active
  - `tenant_id` string — Tenant/organization identifier
  - `event_types` WebhookEventType[] — Event types this webhook subscribes to (empty = all)
  - `created_at` string, date-time, required — When the webhook was created
  - `updated_at` string, date-time, required — When the webhook was last updated
  - `disabled_reason` string, nullable — Read-only. Set by the system when the webhook was disabled. Omitted when null.
  - `disabled_at` string, date-time, nullable — Read-only. When the webhook was disabled. Omitted when null.

## Other responses

- `400` — Bad Request (e.g. invalid UUID)
- `404` — Not Found
- `default` — Error

## Changes

- **2026-06-03** `6907a0a9de00` — 3 breaking, 3 warning, 18 info
  - the `instance` response's property type/format changed from `string`/`uri` to `string`/`` for status `400`
  - the `instance` response's property type/format changed from `string`/`uri` to `string`/`` for status `404`
  - the `instance` response's property type/format changed from `string`/`uri` to `string`/`` for status `default`
  - removed the optional property `errors` from the response with the `400` status
  - …20 more
- **2026-04-30** `2fe8dc460c4d` — 2 breaking, 3 info
  - the request property `tenant_id` became not nullable
  - the `tenant_id` request property's minLength was increased from `0` to `1`
  - the `type` response's property default value `about:blank` was removed for the status `400`
  - the `type` response's property default value `about:blank` was removed for the status `404`
  - …1 more
- **2026-03-09** `a1a6593d3612` — 1 breaking
  - removed the required property `signing_key` from the response with the `200` status
- **2026-03-05** `7af2577fe592` — 1 breaking, 1 warning, 2 info
  - the request property `tenant_id` became not nullable
  - changed the pattern of the request property `url` from `^[^\x00]*$` to `^https?://[^\x00]*$`
  - added the non-success response with the status `400`
  - added the non-success response with the status `404`
- **2026-02-24** `388b775b55ad` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/formbricks/apis/formbricks-hub-api/changes/v1/webhooks/:id/patch.md)

---

[API](https://skmtc.dev/formbricks/apis/formbricks-hub-api.md) · [All operations](https://skmtc.dev/formbricks/apis/formbricks-hub-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/formbricks/formbricks-hub-api/revisions/db17603a9e28/schema)
