Skip to content

List webhook deliveries

The webhook_deliveries.list operation: GET /api/v1/webhook_deliveries in the REST API and the webhook_deliveries_list tool in the MCP server.

GET/api/v1/webhook_deliveries

Lists the brand's webhook deliveries in the request's mode, newest first: one per event and endpoint, plus test deliveries and redeliveries, each with its attempts (status code and the start of the response body). Filter by endpointId, eventId or status (pending, succeeded, failed, canceled).

Paginate with limit (1–100, default 10) and starting_after (the next_cursor of the previous page).

At a glance

  • REST: GET /api/v1/webhook_deliveries
  • MCP tool: webhook_deliveries_list
  • Operation ID: webhook_deliveries.list
  • Scope: Brand
  • Permission: webhooks:read
  • Risk tier: read
  • Dry run: Not supported
  • Idempotency: Not needed (read only)
  • Modes: Test and live
  • Pagination: limit (at most 100) and starting_after
  • Authentication: API key with the webhooks:read scope
  • Since: M4

Request

Query parameters

FieldTypeRequiredDescription
endpointIdwe_… IDNoOnly deliveries to this endpoint.
eventIdevt_… IDNoOnly deliveries of this event.
statusone of pending, succeeded, failed, canceledNo
limitinteger (1 to 100)No
starting_afterwhd_… IDNo

Response

200 OK with a JSON object, a page of the list (newest first):

FieldTypeDescription
object"list"
dataarray of object
data[].idwhd_… ID
data[].object"webhook_delivery"
data[].endpointIdwe_… ID
data[].brandIdbrd_… ID
data[].livemodeboolean
data[].eventIdevt_… ID
data[].eventTypestring
data[].triggerone of event, test, redeliver
data[].redeliveryOfwhd_… ID or null
data[].statusone of pending, succeeded, failed, canceled
data[].attemptinteger (at least 0)
data[].maxAttemptsinteger (at least 1)
data[].nextAttemptAtdate-time or null
data[].responseCodeinteger or null
data[].canceledReasonone of endpoint_disabled, endpoint_deleted or null
data[].attemptsarray of object
data[].attempts[].attemptinteger (at least 1)
data[].attempts[].atdate-time
data[].attempts[].outcomeone of succeeded, http_error, timeout, network_error, blocked
data[].attempts[].responseCodeinteger or null
data[].attempts[].responseExcerptstring or null
data[].attempts[].durationMsinteger (at least 0) or null
data[].attempts[].errorstring or null
data[].createdAtdate-time
data[].updatedAtdate-time
has_moreboolean
next_cursorwhd_… ID or null

Examples

An endpoint's delivery log

HTTP
GET /api/v1/webhook_deliveries?endpointId=we_01m4tx5nj8emwbyf7y9vcf47z0
Authorization: Bearer or_test_…

Response (200):

JSON
{
  "object": "list",
  "data": [
    {
      "id": "whd_01m4tx5nj8emwbyf7y9vcf47z2",
      "object": "webhook_delivery",
      "endpointId": "we_01m4tx5nj8emwbyf7y9vcf47z0",
      "brandId": "brd_01m4tx5nj8emwbyf7y9vcf47x4",
      "livemode": false,
      "eventId": "evt_01m4tx5nj8emwbyf7y9vcf47z4",
      "eventType": "customer.created",
      "trigger": "event",
      "redeliveryOf": null,
      "status": "succeeded",
      "attempt": 2,
      "maxAttempts": 15,
      "nextAttemptAt": null,
      "responseCode": 200,
      "canceledReason": null,
      "attempts": [
        {
          "attempt": 1,
          "at": "2026-10-13T12:00:00.000Z",
          "outcome": "http_error",
          "responseCode": 503,
          "responseExcerpt": "Service Unavailable",
          "durationMs": 812,
          "error": null
        },
        {
          "attempt": 2,
          "at": "2026-10-13T12:01:00.000Z",
          "outcome": "succeeded",
          "responseCode": 200,
          "responseExcerpt": "ok",
          "durationMs": 95,
          "error": null
        }
      ],
      "createdAt": "2026-10-13T12:00:00.000Z",
      "updatedAt": "2026-10-13T12:01:00.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Errors

CodeHTTP statusWhenWhat to do
validation_failed400A filter or pagination value is malformed.Fix the fields listed in details.issues and send the request again.
permission_denied403You can't see this brand's webhooks.Ask an organization owner or admin for a role or scope that allows this action.

It can also return these common errors: api_version_unsupported, authentication_required, api_key_invalid, scope_required, resource_not_found, dry_run_not_supported, rate_limited, internal_error.