Skip to main content
POST
cURL

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

ReplayFailedDeliveriesRequest bulk-recovers terminal deliveries in a time window — the outage-recovery counterpart to per-delivery ReplayDelivery.

Each recovered delivery re-sends its retained canonical bytes verbatim under a fresh delivery id: that is a NEW webhook message, not a resurrection of the old one (the standard-webhooks id changes). Consumers dedupe on Dome-Event-Id, so a recovery that overlaps deliveries a consumer already processed is safe.

workspace_id
string
destination_id
string

Optional: restrict recovery to one destination. Empty = every destination in the workspace.

since
string<date-time>

Required inclusive lower bound on the original delivery's created_at. Must be no more than 30 days ago — the body-retention horizon, beyond which the canonical bytes no longer exist to re-send.

until
string<date-time>

Optional inclusive upper bound on created_at; defaults to now.

statuses
string[]

Statuses to recover — a subset of {"failed", "expired", "dlq"}; empty selects all three. "canceled" is deliberately excluded: an operator canceled those on purpose, so a bulk recovery must never resurrect them.

max_deliveries
integer<int32>

Maximum deliveries to recover in one call. Clamped to [1, 500]; 0 defaults to 100. Endpoint pacing stays with the delivery worker's per-destination rate limiter — this only bounds how much one call enqueues.

Response

200 - application/json

OK

ReplayFailedDeliveriesResponse reports the recovery outcome counters plus the ids of the freshly minted replay deliveries.

matched
integer<int32>

matched is how many recoverable deliveries the filter selected (<= max_deliveries). A delivery is skipped from the match when it already has a live or succeeded replay child, so re-running the same recovery converges.

replayed
integer<int32>

replayed is how many were re-enqueued under a fresh delivery id.

skipped_body_expired
integer<int32>

skipped_body_expired is how many matched deliveries could not be replayed because their canonical body had aged out of the ledger since the match.

failed
integer<int32>

failed is how many matched deliveries errored during replay (transient infra); re-running the recovery retries them.

replay_delivery_ids
string[]

replay_delivery_ids are the new delivery ids minted for the replayed deliveries.