Sign inGet Started

bird webhooks update

Usage

Code example
bird webhooks update <webhook-id> [flags]

Description

Update a webhook endpoint

Change an endpoint's URL, description, subscribed event types, or delivery status. Only the fields sent change: events replaces the whole subscription set, and status pauses or re-enables delivery. Events fired while paused are not delivered. On a connector endpoint, --field and the secret flags replace the fields they name and keep the rest; every send, retries included, uses the new credentials, and deliveries prepared after the change use the new fields. Secret values are never printed, and no response includes them.

Build the request from flags, a JSON WebhookEndpointUpdate body via --body-file ("-" reads stdin), or both — a flag overrides the matching body field. Run --example to print a ready-to-edit body, or --dry-run to print the resolved request without sending it.

Examples

Code example
# print the body shape (no credentials needed)
bird webhooks update --example

# the body it prints:
Code example
{
  "description": "Updated webhook endpoint",
  "events": ["email.delivered", "email.bounced", "email.complained"],
  "status": "active",
  "url": "https://example.com/webhook"
}
Code example
# rotate a connector endpoint's API key without it reaching argv or shell history
bird webhooks update whk_123 --credential api_key=- < claude-key.txt

Options

Endpoint

NameDescription
--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.
--events <v1,v2,…>Replaces all event subscriptions with this list. Omit to keep the current set. Types outside the event catalog return a 422. See https://bird.com/docs/guides/webhooks#event-catalog for the current values.
--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.

Connector

NameDescription
--field <key=value>A new value for a nonsecret field of the endpoint's connector, as name=value; repeat for each. Secret fields take --credential, never a value on the command line.
--credential <key=value>A secret field of the connector, as name=FILE: the file holding its value, or - for stdin. Repeat for each; only one can read stdin. The value never goes on the command line.

Request

NameDescription
--body-fileRead the JSON request body from this file; "-" reads stdin
--examplePrint a complete example request body, then exit
--dry-runPrint the resolved request without sending it, then exit
--idempotency-keyDeduplication key; a retry with the same key won't act twice

Options

NameDescription
--response-schemaPrint the fields this command returns, then exit
NameDescription
bird webhooks attemptsList delivery attempts
bird webhooks createCreate a webhook endpoint
bird webhooks deleteDelete a webhook endpoint
bird webhooks getGet a webhook endpoint
bird webhooks listList webhook endpoints
bird webhooks replayReplay failed deliveries
bird webhooks rotate-secretRotate webhook signing secret
bird webhooks testTest a webhook with a sample event