<Intro>

<EndpointHeader />

<Description>

Returns the workspace's webhook endpoints as a cursor-paginated list, newest first by default. Endpoint objects never include the signing secret; to inspect a single endpoint, use [Get a webhook endpoint](/docs/api/reference/get-webhook).

</Description>

</Intro>

<Parameters in="query">

<Parameter name="sort" type="string">

<Description>

Field to sort by: `created_at` (the default; newest first with the default `order`) or `url`.

</Description>

</Parameter>

<Parameter name="order" type="string">

<Description>

Sort direction. Defaults to `desc` (newest/largest first).

</Description>

</Parameter>

<Parameter name="limit" type="integer">

<Description>

Maximum number of items to return per page.

</Description>

</Parameter>

<Parameter name="starting_after" type="string">

<Description>

Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.

</Description>

</Parameter>

<Parameter name="ending_before" type="string">

<Description>

Cursor from the `prev_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order.

</Description>

</Parameter>

<Parameter name="include_total" type="boolean">

<Description>

When true, the response includes a `total` field with the total number of items matching the request's filters across all pages.

</Description>

</Parameter>

</Parameters>

<Payload kind="response">

<Field name="data" type="array of object" required>

<FieldChildren kind="response">

<Field name="id" type="string" prefix="data." required>

<Description>

Unique identifier for the endpoint (`whk_` prefix). Accepted as `webhook_id` by every `/v1/webhooks/{webhook_id}` operation.

</Description>

</Field>

<Field name="url" type="string" prefix="data." required>

<Description>

HTTPS URL Bird delivers this endpoint's events to.

</Description>

</Field>

<Field name="description" type="string" prefix="data.">

<Description>

Human-readable label for the endpoint.

</Description>

</Field>

<Field name="events" type="array of string" prefix="data." required>

<Description>

Event types this endpoint is subscribed to; only matching events are delivered. Change the set with [Update a webhook endpoint](/docs/api/reference/update-webhook).

</Description>

</Field>

<Field name="status" type="string" prefix="data." required>

<Description>

Delivery state of the endpoint.

- `active`: the initial state; events are being delivered normally.
- `degraded`: recent deliveries are failing. Bird keeps 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](/docs/api/reference/update-webhook), then recover
  the missed events with
  [Replay missed events](/docs/api/reference/create-webhook-replay).

</Description>

<Description>

Possible values: `active`, `degraded`, `paused`

</Description>

</Field>

<Field name="created_at" type="string" prefix="data." required />

<Field name="updated_at" type="string" prefix="data." required />

</FieldChildren>

</Field>

<Field name="next_cursor" type="nullable string" required>

<Description>

Cursor for the next page. Pass back as `starting_after` to advance forward. Null when no next page exists.

</Description>

</Field>

<Field name="prev_cursor" type="nullable string" required>

<Description>

Cursor for the previous page. Pass back as `ending_before` to step backward. Null when no previous page exists.

</Description>

</Field>

<Field name="refresh_cursor" type="nullable string" required>

<Description>

Refresh anchor. Pass back as `ending_before` later to fetch items that have appeared since this response. Non-null whenever `data` is non-empty; null only on an empty page. Distinct from `prev_cursor`.

</Description>

</Field>

<Field name="total" type="nullable integer">

<Description>

Total number of items matching the request's filters across all pages. Present only when `include_total=true` was passed; otherwise null.

</Description>

</Field>

</Payload>