Update a webhook endpoint
/v1/webhooks/{webhook_id}const endpoint = await bird.webhooks.update("whk_01krdgeqcxet5s7t44vh8rt9mg", {
events: ["email.delivered"],
});
console.log(endpoint.events);endpoint = client.webhooks.update(
"whk_01krdgeqcxet5s7t44vh8rt9mg",
events=["email.delivered"],
)
print(endpoint.events)endpoint, err := client.Webhooks.Update(context.Background(), "whk_123", bird.WebhooksUpdateParams{
Events: []bird.WebhookEventType{"email.delivered"},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(endpoint.Events)$endpoint = $bird->webhooks->update(
'whk_01krdgeqcxet5s7t44vh8rt9mg',
(new WebhookEndpointUpdate())->setEvents(['email.delivered']),
);
echo implode(',', $endpoint->getEvents() ?? []);bird webhooks update <webhook-id> \
--description 'Updated webhook endpoint' \
--events email.delivered \
--events email.bounced \
--events email.complained \
--status active \
--url https://example.com/webhookcurl -X PATCH "https://us1.platform.bird.com/v1/webhooks/{webhook_id}" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/webhook",
"description": "Updated webhook endpoint",
"events": [
"email.delivered",
"email.bounced",
"email.complained"
],
"status": "active"
}'{
"id": "whk_01krdgeqcxet5s7t44vh8rt9mg",
"url": "https://example.com/webhook",
"description": "Production webhook endpoint",
"filter": null,
"events": [
"email.delivered",
"email.bounced"
],
"status": "active",
"destination": {
"type": "webhook"
},
"created_at": "2026-05-20T09:14:52Z",
"updated_at": "2026-05-25T16:42:01Z"
}
Updates the webhook endpoint. Only the fields you send change: events replaces the
whole subscription set, and status pauses or re-enables delivery.
The 200 response is the updated endpoint. Invalid input (a non-HTTPS or non-public
url, an event type outside the catalog) returns a 422.
Parametri
webhook_idstringID of the webhook endpoint (whk_ prefix), as returned when it was created.
Payload della richiesta
urlReplacement delivery URL. Same rules as at creation: HTTPS, at most 2048 characters, and the host must be publicly reachable (private, loopback, and link-local addresses return a 422). Omit to keep the current URL. A connector endpoint's URL comes from its connector and cannot be replaced: any value returns a 422.
descriptionHuman-readable label for this endpoint, up to 256 characters.
filterReplace the mailbox scope. Omit to keep it, or send null to include all resources. Scoped endpoints accept only email_mailbox events.
eventsReplaces all event subscriptions with this list. Omit to keep the current set. Types outside the event catalog return a 422.
destinationChanges to how deliveries are built, shaped as at creation. Only a connector destination takes connector; on any other endpoint it returns a 422. Omit to keep the destination.
statuspaused stops all deliveries; active re-enables a paused endpoint. Omit to leave the status unchanged. Events that fire while paused are not delivered and a replay cannot recover them, because they were never attempted; after re-enabling, Replay failed deliveries reaches only the deliveries that failed before the pause. A degraded endpoint cannot be reset through this field: it returns to active automatically once deliveries succeed again.
Possible values: active, paused
Payload di risposta
idUnique identifier for the endpoint (whk_ prefix). Accepted as webhook_id by every /v1/webhooks/{webhook_id} operation.
urlHTTPS URL where the API delivers events for this endpoint.
descriptionHuman-readable label for the endpoint.
filterMailbox scope configured through filter, or null.
eventsEvent types this endpoint is subscribed to; only matching events are delivered. Change the set with Update a webhook endpoint.
statusDelivery state of the endpoint.
active: The initial state; events are being delivered normally.degraded: Recent deliveries are failing. We keep delivering and retrying, and the endpoint returns toactiveautomatically once deliveries succeed again.paused: All delivery is stopped, either because an update setstatustopausedor automatically after sustained delivery failures. A paused endpoint never resumes on its own: re-enable it with Update a webhook endpoint, then Replay failed deliveries to recover the deliveries that failed before the pause. Events that arrived while it was paused were never attempted, so a replay does not reach them.
Possible values: active, degraded, paused
created_atupdated_atRisorse correlate
Continua con la documentazione, le guide e gli esempi per questo argomento.