# `bird webhooks replay`

## Usage

```bash
bird webhooks replay <webhook-id> [flags]
```

## Description

Replay failed deliveries

Queue redelivery of this endpoint's failed attempts in a window (default: the last 24 hours). An event is skipped only if one of its attempts inside the window was delivered, so re-running a replay whose `until` has passed redelivers everything the first one sent; the receiver must deduplicate on `webhook-id`. Only failed attempts are replayed, the window reaches back at most three days, and a paused endpoint redelivers nothing until it is re-enabled. One replay covers at most the oldest 10,000 events in the window. Nothing is returned beyond acceptance; each redelivery is one attempt, so check the outcome with the delivery attempts list. Limited to 20 per organization per UTC day.

Build the request from flags, a JSON WebhookReplayRequest body via --body-file ("-" reads
stdin), or both — a flag overrides the matching body field. Run --example to
print a ready-to-edit body, or --dry-run to print the resolved request without
sending it.

## Examples

```bash
# print the body shape (no credentials needed)
bird webhooks replay --example

# the body it prints:
```

```json
{
  "since": "2026-05-07T00:00:00Z",
  "until": "2026-05-07T23:59:59Z"
}
```

## Options

#### Request

| Name                | Description                                                  |
| ------------------- | ------------------------------------------------------------ |
| `--body-file`       | Read the JSON request body from this file; "-" reads stdin   |
| `--example`         | Print a complete example request body, then exit             |
| `--dry-run`         | Print the resolved request without sending it, then exit     |
| `--idempotency-key` | Deduplication key; a retry with the same key won't act twice |

#### Options

| Name                | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--since`           | 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`           | 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.                                                                                                                                                                                                                                                                                                         |
| `--response-schema` | Print the fields this command returns, then exit                                                                                                                                                                                                                                                                                                                                                                                                                           |

## Related

| Name                                                                        | Description                        |
| --------------------------------------------------------------------------- | ---------------------------------- |
| [`bird webhooks attempts`](/docs/cli/reference/webhooks-attempts)           | List delivery attempts             |
| [`bird webhooks create`](/docs/cli/reference/webhooks-create)               | Create a webhook endpoint          |
| [`bird webhooks delete`](/docs/cli/reference/webhooks-delete)               | Delete a webhook endpoint          |
| [`bird webhooks get`](/docs/cli/reference/webhooks-get)                     | Get a webhook endpoint             |
| [`bird webhooks list`](/docs/cli/reference/webhooks-list)                   | List webhook endpoints             |
| [`bird webhooks rotate-secret`](/docs/cli/reference/webhooks-rotate-secret) | Rotate webhook signing secret      |
| [`bird webhooks test`](/docs/cli/reference/webhooks-test)                   | Test a webhook with a sample event |
| [`bird webhooks update`](/docs/cli/reference/webhooks-update)               | Update a webhook endpoint          |

## Related resources

- [Should I use a Bird SDK or call the API directly?](/explained/platform/should-i-use-an-sdk-or-call-the-api-directly) (answer)
- [Build your first integration](/learn/paths/integration) (course)
- [Send your first email](/docs/get-started/send-your-first-email) (docs)

[Get an implementation brief](/learn/workspace?topic=api-basics)
