---
title: "List delivery webhooks"
method: GET
path: "/v1/webhooks"
tags: ["Delivery webhooks"]
---

# List delivery webhooks

`GET /v1/webhooks`

## Request

- Base URL: `https://api.cadencercs.com`
- URL: `https://api.cadencercs.com/v1/webhooks`
- Auth: HTTP bearer

**We POST to you.** This is the surface for an application that has no process to keep running — a Cloud Function, a Lambda, anything that wakes on a request. `GET /v1/events` needs a held connection; a `flow` answers for you but cannot consult your own model. This does neither: it hands the event to your endpoint and lets you decide.

Not to be confused with `PUT /v1/agents/{id}/webhook`, which points *Google* at a URL instead of at Cadence and switches off flow handling entirely.

## Response `200`

Your endpoints, with health.

- object
  - `webhooks` DeliveryWebhook[], required
    - `id` string, required
    - `url` string, required: Your https:// endpoint.
    - `events` string[], required
    - `brandId` string, nullable: Null means every brand on the account.
    - `description` string, nullable
    - `active` boolean, required: False once disabled, whether by you or by repeated failure.
    - `health` object
      - `lastSuccessAt` string, nullable
      - `lastFailureAt` string, nullable
      - `lastError` string, nullable
      - `consecutiveFailures` number: Consecutive *events* that failed every retry — not attempts. One slow afternoon does not count.
      - `disabledAt` string, nullable
      - `disabledReason` string, nullable
    - `createdAt` string
  - `note` string

## Other responses

- `401`: Not signed in, and no account-linked API key was sent.
- `500`: Unexpected server error. The body is always JSON.

---

[API](https://skmtc.dev/cadencercs/apis/cadence-api.md) · [All operations](https://skmtc.dev/cadencercs/apis/cadence-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cadencercs/apis/cadence-api/revisions/9438443c2081?raw)
