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
- Type: "pending" or "delivered" or "dropped"enumstatus
Filter by delivery status.
- Type: integerlimitmin:1max:500
Maximum number of deliveries to return (default 50, max 500).
Responses
- application/json
- application/json
- application/json
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
}
]
}