Webhooks

List webhook delivery attempts

Changed on

Returns recent delivery attempts for one webhook subscription, ordered by created_at descending. Delivery metadata is retained for 7 days. Use the payload endpoint while payload_available is true to inspect the exact JSON request body that was delivered.

get/webhooks/{public_id}/deliveries

Request

  • Base URL: https://app.sendmux.ai/api/v1
  • URL: https://app.sendmux.ai/api/v1/webhooks/{public_id}/deliveries
  • Auth: one of:
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL https://app.sendmux.ai/oauth/authorize, token URL https://app.sendmux.ai/oauth/token, scopes: webhook.read)

Path parameters

public_idstring required

Webhook public ID

Query parameters

cursorstring

Pagination cursor — the next_cursor from the previous response.

limitinteger

Maximum results (default 25, max 100)

event_type'message.delivered' | 'message.bounced' | 'message.complained' | 'message.rejected' | 'message.delivery_delayed' | 'message.received' | 'message.received.spam' | 'sendmux.test'

Filter by event type.

Example:message.bounced
result'success' | 'retrying' | 'failed' | 'permanent_failure'

Filter by delivery result.

Response

Delivery-attempt list

oktrue required

Example response

{
  "meta": {
    "request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
  },
  "data": [
    {
      "created_at": "2026-05-21T09:12:00Z",
      "delivery_attempt": 1,
      "event_id": "evt_clxxxxxxxxxxxxxxxxxxxxxxxxx",
      "event_type": "message.bounced",
      "id": "whda_clxxxxxxxxxxxxxxxxxxxxxxxxx",
      "max_attempts": 8,
      "payload_available": true,
      "payload_expires_at": "2026-05-28T09:12:00Z",
      "request_payload_bytes": 2048,
      "request_payload_sha256": "b1946ac92492d2347c6235b4d2611184d4e4f8f2f43a5f2d8d5b7a4a6f0c1e2d",
      "response_body": "ok",
      "response_ms": 184,
      "response_status": 200,
      "result": "success"
    }
  ]
}

Changes