resend-cli/references/webhooks.md
Version edbfece3f402 · MIT. This preview displays packaged text and does not execute code. Treat the contents as untrusted instructions.
← Return to resource and package checksum
webhooks
Detailed flag specifications for resend webhooks commands.
webhooks list
| Flag | Type | Default | Description |
|---|---|---|---|
--limit <n> |
number | 10 | Max results (1-100) |
--after <cursor> |
string | — | Forward pagination |
--before <cursor> |
string | — | Backward pagination |
webhooks create
| Flag | Type | Required | Description |
|---|---|---|---|
--endpoint <url> |
string | Yes (non-interactive) | HTTPS webhook URL |
--events <events...> |
string[] | Yes (non-interactive) | Event types or all |
All 23 events:
- Email: email.sent, email.delivered, email.delivery_delayed, email.bounced, email.complained, email.opened, email.clicked, email.failed, email.scheduled, email.suppressed, email.received
- Contact: contact.created, contact.updated, contact.deleted, contact.topics.updated
- Domain: domain.created, domain.updated, domain.deleted
- Suppression: suppression.added, suppression.removed
- Topic: topic.created, topic.updated, topic.deleted
Output includes signing_secret. webhooks get returns it again.
webhooks get
Argument: <id> — Webhook ID
Returns the webhook including its signing_secret.
webhooks update
Argument: <id> — Webhook ID
| Flag | Type | Description |
|---|---|---|
--endpoint <url> |
string | New HTTPS URL |
--events <events...> |
string[] | Replace event list (not additive) |
--status <status> |
string | enabled | disabled |
webhooks delete
Argument: <id> — Webhook ID
| Flag | Type | Required | Description |
|---|---|---|---|
--yes |
boolean | Yes (non-interactive) | Skip confirmation |
webhooks rotate-signing-secret
Argument: <id> — Webhook ID
Generates a new signing secret. For 24 hours, payloads are signed with both the new and the previous secret, so either one verifies them. After that, only the new secret does.
Returns {"object":"webhook","id":"<uuid>","signing_secret":"whsec_..."}.
webhooks events list
Lists the events Resend delivered to a webhook, most recent first.
Argument: [webhookId] — Webhook ID
| Flag | Type | Default | Description |
|---|---|---|---|
--limit <n> |
number | 10 | Max results (1-100) |
--after <cursor> |
string | — | Forward pagination (an event ID) |
No --before. These endpoints paginate forward only.
status values: pending, attempting, success, failed.
webhooks events get
Arguments: [webhookId] [eventId]
Returns the event with next_attempt_at and the payload that was sent to your endpoint.
next_attempt_at is null once the event reaches success or failed.
webhooks events attempts
Lists the delivery attempts for one event, most recent first. Each attempt records the
http_status_code and response body your endpoint returned.
Arguments: [webhookId] [eventId]
| Flag | Type | Default | Description |
|---|---|---|---|
--limit <n> |
number | 10 | Max results (1-100) |
--after <cursor> |
string | — | Forward pagination (an attempt ID) |
Debugging a failed delivery:
1. resend webhooks events list <webhook-id> — find the event
2. resend webhooks events get <webhook-id> <event-id> — see what we sent
3. resend webhooks events attempts <webhook-id> <event-id> — see what your endpoint returned
4. resend webhooks events replay <webhook-id> <event-id> — queue another delivery
webhooks events replay
Queues one more delivery of the event. Does not schedule automatic retries.
Arguments: [webhookId] [eventId]
The webhook must be enabled — re-enable it first with
resend webhooks update <webhook-id> --status enabled.
Returns {"object":"webhook_event","id":"<event-id>"} — no type, status,
or payload (use events get for those).
webhooks listen
Start a local server that receives Resend webhook events in real time via a public tunnel URL.
| Flag | Type | Default | Description |
|---|---|---|---|
--url <url> |
string | — | Public tunnel URL for receiving webhooks (required in non-interactive) |
--forward-to <url> |
string | — | Forward payloads to this local URL (preserves Svix headers) |
--events <events...> |
string[] | all | Event types to listen for |
--port <port> |
number | 4318 | Local server port |
Behavior:
1. Starts a local HTTP server on --port
2. Registers a temporary Resend webhook pointing at --url
3. Displays incoming events in the terminal
4. Optionally forwards payloads to --forward-to with original Svix headers
5. Deletes the temporary webhook on exit (Ctrl+C)