List webhook delivery attempts

​

Returns the webhook delivery ledger for the environment resolved from the secret key. Each row represents one event (message.published or message.retracted) relayed to the configured webhook endpoint, with its current status (pending, delivered, or dropped), attempt count, and last error (if any). Newest first.

The ledger IS the dead-letter store: a delivery that exhausts its retry schedule (30s / 5m / 30m / 2h / 6h) is marked dropped with lastError. Delivered and dropped rows are retained for approximately 7 days.

Webhook delivery is configured via the project.webhooks block in portal.config.ts. A per-environment signing secret is minted on first activation of a webhook-bearing config; verify deliveries with GET /v1/webhooks/secret and the portal-signature header.

Query Parameters

  • Filter by delivery status.

  • Maximum number of deliveries to return (default 50, max 500).

Responses

  • application/json
  • application/json
  • application/json
Request Example for get/v1/webhooks/deliveries
curl 'https://api.useportal.co/v1/webhooks/deliveries?status=pending&limit=50' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "deliveries": [
    {
      "id": "string",
      "channelId": "string",
      "type": "message.published",
      "status": "pending",
      "attempts": 1,
      "lastError": "string",
      "createdAt": 1,
      "deliveredAt": 1,
      "nextAttemptAt": 1
    }
  ]
}