Get a webhook endpoint
/v1/webhooks/{webhook_id}const endpoint = await bird.webhooks.get("whk_01krdgeqcxet5s7t44vh8rt9mg");
console.log(endpoint.url, endpoint.events);endpoint = client.webhooks.get("whk_01krdgeqcxet5s7t44vh8rt9mg")
print(endpoint.url, endpoint.events)endpoint, err := client.Webhooks.Get(context.Background(), "whk_123")
if err != nil {
log.Fatal(err)
}
fmt.Println(endpoint.Url)$endpoint = $bird->webhooks->get('whk_01krdgeqcxet5s7t44vh8rt9mg');
echo $endpoint->getUrl();bird webhooks get <webhook-id>curl -X GET "https://us1.platform.bird.com/v1/webhooks/{webhook_id}" \
-H "Authorization: Bearer $TOKEN"{
"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"
}
Returns one webhook endpoint's configuration and current delivery status, including its URL and subscribed event types. The signing secret is never included; if you lost it, mint a new one with Rotate webhook signing secret.
Parameters
webhook_idstringID of the webhook endpoint (whk_ prefix), as returned when it was created.
Response Payload
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.
Show child attributes
filter.mailbox_idMailbox to receive events for. Must belong to this workspace; a mailbox outside it returns 422.
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
destinationHow each delivery to the endpoint is built.
Show child attributes
Posts the signed event to the endpoint's url unchanged.
destination.typeValue: webhook
Sends the request a connector action builds, with the credentials stored for this endpoint. The endpoint's URL comes from its connector setup, so updating the endpoint with a url returns a 422.
destination.typeValue: connector
destination.connectorShow child attributes
destination.connector.connector_idStable identifier of a connector, such as claude_managed_agents.
destination.connector.actionAction of the connector that each delivery runs.
destination.connector.connection_nameLabel of the credentials the endpoint delivers with.
created_atupdated_atRelated resources
Continue with the documentation, guides and examples for this topic.