---
title: "Update a webhook subscription — url, event filter, active flag, or rotate the secret."
method: PUT
path: "/webhook-subscriptions/{id}"
tags: ["webhooks"]
---

# Update a webhook subscription — url, event filter, active flag, or rotate the secret.

`PUT /webhook-subscriptions/{id}`

## Request

- Base URL: `https://api.coldrig.dev`
- URL: `https://api.coldrig.dev/webhook-subscriptions/{id}`
- Auth: HTTP bearer

At least one of url, eventTypes, secret, or active must be present. active:true re-enables a subscription the delivery pump auto-disabled after 5 consecutive terminal failures; active:false pauses delivery without deleting. Rotating the secret returns it once in the response.

## Request body

- WebhookUpdateInput: Every field optional; at least one of url, eventTypes, secret, or active must be present.
  - `url` string
  - `eventTypes` WebhookEventType[]
  - `secret` string: Rotates the signing secret; the new value is returned once in the response.
  - `active` boolean: Set false to pause delivery without deleting; set true to resume (also re-enables an auto-disabled subscription).

## Response `200`

Subscription updated.

- WebhookUpdateResponse
  - `id` string, required
  - `url` string, required
  - `eventTypes` WebhookEventType[], required
  - `active` boolean, required
  - `status` 'active' | 'disabled', required
  - `disabledReason` string, nullable, required
  - `consecutiveFailures` integer, required
  - `createdAt` integer, required
  - `updatedAt` integer, required
  - `secret` string: Present only when this update rotated the secret; shown once.

## Other responses

- `400`: Request body failed schema validation.
- `401`: Missing, invalid, or inactive bearer token.
- `404`: Resource not found, or not owned by the authenticated account.

---

[API](https://skmtc.dev/coldrig/apis/agent-cold-email-api.md) · [All operations](https://skmtc.dev/coldrig/apis/agent-cold-email-api/llms.txt) · [OpenAPI document](https://skmtc.dev/coldrig/apis/agent-cold-email-api/revisions/242a462d82c4?raw)
