webhooks

Get a webhook endpoint

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.

get/v1/webhooks/{webhook_id}

Request

  • Base URL: https://us1.platform.bird.com
  • URL: https://us1.platform.bird.com/v1/webhooks/{webhook_id}
  • Auth: one of:
    • HTTP bearer
    • API key in cookie bird_session

Headers

X-Workspace-Idstring

Workspace context for the request. Required for dashboard authentication and master keys. Workspace keys and access tokens already identify their workspace; send that workspace or omit the header. A different one is rejected.

X-Organization-Idstring

Organization context for the request. Required for dashboard authentication. An API key or access token carries its own organization, so send either that organization or no header at all; a different one is rejected.

Response

Webhook endpoint with its current URL, subscriptions, and status.

idstring required
urlstring uri required

HTTPS URL where the API delivers events for this endpoint.

descriptionstring

Human-readable label for the endpoint.

eventsWebhookEventType[] required

Event types this endpoint is subscribed to; only matching events are delivered. Change the set with Update a webhook endpoint.

status'active' | 'degraded' | 'paused' required

Delivery 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 to active automatically once deliveries succeed again.
  • paused: All delivery is stopped, either because an update set status to paused or 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.
created_atstring date-time required
updated_atstring date-time required

Example response

{
  "id": "whk_01krdgeqcxet5s7t44vh8rt9mg",
  "url": "https://example.com/webhook",
  "description": "Production webhook endpoint",
  "filter": {
    "mailbox_id": "mbx_01kr97a6rje4wbe5z40wxdfcy9"
  },
  "events": [
    "email.delivered",
    "email.bounced"
  ],
  "destination": {
    "connector": {
      "connector_id": "claude_managed_agents",
      "action": "trigger_run",
      "connection_name": "Support triage agent",
      "config": {
        "trigger_url": "https://agents.example.com/triggers/support"
      }
    }
  },
  "created_at": "2026-05-20T09:14:52Z",
  "updated_at": "2026-05-25T16:42:01Z"
}

Changes

No recorded changes to this operation across all 3 revisions of this API.