sender_access at its normal message location, rather than conversation content in the delivery log. Manual replay returns 409; recover from the currently authorized activation snapshot. Automatic webhook retries continue to apply.
Slack diagnostics contain event coordinates instead of the original message body; Slack deliveries cannot be replayed.
The log covers both subscription deliveries (message.*, text.*, imessage.*, call.ended, a2a.*, slack.*) and the separate phone.incoming_call deliveries. Subscription deliveries carry a webhook_subscription_id (call.ended rows for calls on a number you own also carry that phone_number_id); incoming-call deliveries carry only a phone_number_id and are not replayable (their response body drives live call routing, so there’s nothing meaningful to replay).
Auth
List deliveries
deliveries array — not a bare array.
Query parameters
Filters AND-combine.
Response (200)
JSON
Code examples
Replay delivery
auth_token (not the token from the original attempt) — recording a new delivery row (with is_replay set to true) for the attempt.
Use replayable when deciding whether to offer replay. webhook_subscription_id identifies the subscription that received the original attempt and must still be active for replay.
Replay preserves the original webhook envelope’s id. Deduplicate events using that field so a replay cannot repeat an action your receiver already completed. Each replay has fresh signature headers with a new request ID and timestamp.
Path parameters
Response (200)
Returns the new replay delivery row (is_replay: true). See Delivery object.
Error responses
Code examples
Delivery object
For event webhooks, the delivery record’s
event_id equals the payload envelope’s id. Use it to correlate delivery attempts with the event your endpoint received.
Related
- Webhook subscriptions reference — subscription CRUD
- Webhooks guide — payload verification, typed receiver examples, idempotency
- Signing keys — per-identity keys used to verify webhook bodies

