Esta página ainda só está em inglês.
Webhook deliveries
A delivery is one row in the webhook_deliveries table — one event, one endpoint, one attempt log. It's the read-only mirror of what the worker is doing on your behalf.
List deliveries
GET/v1/webhook-deliveriesBearer · API key
Filter via query params:
| Param | Effect |
|---|---|
status | pending | success | failed | retrying |
event | filter by event name (e.g. message.received) |
instance_id | filter to one instance |
Returns up to 100 rows per page, newest first.
curl -s "$WHATISUP_API/v1/webhook-deliveries?status=failed" \
-H "Authorization: Bearer $WHATISUP_API_KEY"Schema · Delivery row
| Field | Type | Required | Notes |
|---|---|---|---|
| id | string · uuid | required | |
| endpoint_id | string · uuid | required | |
| customer_id | string · uuid | required | |
| instance_id | string · uuid | required · nullable | |
| event | `message.received` \| `message.sent` \| `instance.connected` \| `instance.disconnected` \| `qr.updated` | required | |
| event_id | string | required | |
| payload | unknown | required | |
| status | `pending` \| `success` \| `failed` \| `retrying` | required | |
| attempt_count | number | required | |
| last_error | string | required · nullable | |
| last_response_status | number | required · nullable | |
| next_attempt_at | string · ISO 8601 | required · nullable | |
| delivered_at | string · ISO 8601 | required · nullable | |
| created_at | string · ISO 8601 | required | |
| updated_at | string · ISO 8601 | required |
Get one delivery
GET/v1/webhook-deliveries/:idBearer · API key
Returns the single delivery, including its payload if retention hasn't kicked in yet.
{
"id": "dlv_01J...",
"endpoint_id": "wh_01J...",
"event": "message.received",
"event_id": "evt_01J...",
"status": "success",
"attempt_count": 1,
"last_response_status": 200,
"last_error": null,
"payload": {
"event": "message.received",
"event_id": "evt_01J...",
"instance_id": "inst_01J...",
"from": "5511999999999",
"body": { "type": "text", "text": "hello back" }
},
"created_at": "2026-05-01T12:34:56.000Z",
"delivered_at": "2026-05-01T12:34:57.012Z"
}The payload field is null for deliveries older than 7 days (success) or 30 days
(failed). The metadata sticks around forever — you can always see that a delivery
happened, just not always replay its body. If you need longer payload retention, log
on your side.
What there isn't
- Manual retry of a specific delivery. Customers asking for this are usually after a "drain my failed queue" button — talk to us; we can build it without making it footgun-grade.
- Streaming endpoint. Use
/v1/eventsfor live state; this resource is for inspection.