Sign inGet Started

Replay failed deliveries

POST
/v1/webhooks/{webhook_id}/replay
curl -X POST "https://us1.platform.bird.com/v1/webhooks/{webhook_id}/replay" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "since": "2026-05-07T00:00:00Z",
    "until": "2026-05-07T23:59:59Z"
  }'
Queues redelivery of deliveries that failed. The window runs from since (default: the last 24 hours) to until, and events the endpoint already received successfully are skipped, so a replay never double-delivers.
Only failed attempts are replayed, and the window selects on attempt time rather than on when the event occurred. An event the endpoint was never sent, such as one that arrived while it was paused, has no failed attempt to replay, so a replay does not recover it. Replay reads the delivery-attempt log, which retains three days, so that is the oldest history it reaches: an earlier since widens the window without recovering anything older. A paused endpoint redelivers nothing at all: re-enable it with Update a webhook endpoint first.
The 202 response means the replay is queued. Each redelivery then takes a single attempt rather than the retry schedule a live delivery follows, so a replay into an endpoint that is still broken costs one request per event; fix the endpoint and replay again. No count or task ID is returned, so track results with List delivery attempts.
One replay redelivers at most the oldest 10,000 events in the window, and replays are limited to 20 per organization per UTC day; beyond that the request returns a 429 WebhookReplayQuotaExceeded.
पैरामीटर
webhook_id
string
ID of the webhook endpoint (whk_ prefix), as returned when it was created.
Request Payload
since
string
Replay events whose delivery attempt failed at or after this timestamp. The bound is inclusive and applies to attempt time, not to when the event occurred, so a retry that trailed its event by a day falls in the window by the hour it was attempted. Defaults to 24 hours before the request when omitted. Attempts are retained for three days, so that is the oldest history a replay reaches: an earlier since widens the window without recovering anything older.
until
string
Replay events whose delivery attempt failed at or before this timestamp, on the same attempt-time bound as since. Omitted, it resolves to the time of the request.