Update a webhook
client.webhooks.update(stringid, WebhookUpdateParams { description, name, requestConfig, 4 more } params, RequestOptionsoptions?): Webhook { id, createdAt, description, 11 more }
PATCH/v2/webhooks/{id}
Updates a webhook’s properties. Supports partial updates - only provided fields will be updated.
Path Parameters
id- The webhook ID (24-character ObjectId)
Request Body
All fields are optional. Only provided fields will be updated.
| Field | Type | Description |
|---|---|---|
name | string | Human-readable name (max 100 chars) |
url | string | Webhook endpoint URL (must be HTTPS) |
description | string/null | Description (null to clear) |
topics | string[] | Event topics to subscribe to |
status | string | ”active” to reactivate, “paused” to pause delivery |
requestConfig | object | Request configuration |
requestConfig.headers | object | Custom headers to send (max 10) |
Pausing and Reactivating Webhooks
You can pause a webhook to temporarily stop receiving events:
{
"status": "paused"
}
Webhooks may also be automatically paused or suspended due to delivery failures. To reactivate:
{
"status": "active"
}
Reactivating a webhook resets the health metrics and allows it to receive events again.
Example: Update Topics
{
"topics": ["post.created", "post.updated", "post.deleted"]
}
Example: Update Request Config
{
"requestConfig": {
"headers": {
"X-Custom-Header": "new-value"
}
}
}
Version Availability
This endpoint is only available in API version 2026-01-01.nova and newer.
Update a webhook
import Featurebase from 'featurebase-node';
const client = new Featurebase({
apiKey: process.env['FEATUREBASE_API_KEY'], // This is the default and can be omitted
});
const webhook = await client.webhooks.update('507f1f77bcf86cd799439011');
console.log(webhook.id);{
"id": "507f1f77bcf86cd799439011",
"createdAt": "2025-01-15T10:30:00.000Z",
"description": "Handles all production events",
"health": {
"avgResponseTime": 200,
"consecutiveFailures": 0,
"errorsSinceLastSuccess": 0,
"lastResponseTime": 150,
"lastSuccessAt": "2025-01-15T10:30:00.000Z"
},
"lastStatus": {
"code": 200,
"message": "Success",
"timestamp": "2025-01-15T10:30:00.000Z"
},
"name": "Production Webhook",
"object": "webhook",
"requestConfig": {
"timeoutMs": 5000,
"headers": {
"X-Custom-Header": "value"
}
},
"secret": "whsec_abc123def456ghi789",
"status": "active",
"topics": [
"post.created",
"post.updated"
],
"updatedAt": "2025-01-15T10:30:00.000Z",
"url": "https://example.com/webhooks",
"version": "1.0"
}Returns Examples
{
"id": "507f1f77bcf86cd799439011",
"createdAt": "2025-01-15T10:30:00.000Z",
"description": "Handles all production events",
"health": {
"avgResponseTime": 200,
"consecutiveFailures": 0,
"errorsSinceLastSuccess": 0,
"lastResponseTime": 150,
"lastSuccessAt": "2025-01-15T10:30:00.000Z"
},
"lastStatus": {
"code": 200,
"message": "Success",
"timestamp": "2025-01-15T10:30:00.000Z"
},
"name": "Production Webhook",
"object": "webhook",
"requestConfig": {
"timeoutMs": 5000,
"headers": {
"X-Custom-Header": "value"
}
},
"secret": "whsec_abc123def456ghi789",
"status": "active",
"topics": [
"post.created",
"post.updated"
],
"updatedAt": "2025-01-15T10:30:00.000Z",
"url": "https://example.com/webhooks",
"version": "1.0"
}