Runs examples for real against your account. Test keys only; kept in this tab, never stored on our side. Get a key
ZapSMTP / Docs / Webhooks

Replay an event

POST/v1/webhooks/{id}/deliveries/{event}/replay

Re-send a past event (from the last 100 deliveries) to the endpoint now.

Requires a full-access live key; test keys get 403 test_key_restricted.

Same body and Zap-Event-Id as the original, signed with the current secret(s) and a new timestamp. The replay is sent synchronously and not retried. Events whose body was over 64 KB cannot be replayed.

Path parameters

idstringrequired
Webhook id
eventstringrequired
Event id (evt_...) from GET /webhooks/{id}/deliveries

Errors

restricted_api_keyHTTP 403
test_key_restrictedHTTP 403
test-mode keys can send test email and read, not change the account: use a live key
not_foundHTTP 404
webhook not found | event not found in the last 100 deliveries of this webhook
POST/v1/webhooks/{id}/deliveries/{event}/replay
curl -X POST 'https://zapsmtp.xyz/v1/webhooks/019a1c55-0d6e-7f21-8b3a-5e9d4c7b2a10/deliveries/evt_5f0c2a9b7d1e4c3a8b6f2e10/replay' \
  -H "Authorization: Bearer $ZAP_API_KEY"
Set ZAP_API_KEY in your environment.
Response 200 OK
{
  "ok": true,
  "delivery": {
    "event_id": "evt_4f1c9a2b7e3d5c8a1b6f0e2d",
    "event_type": "email.bounced",
    "attempt": 3,
    "status_code": 200,
    "duration_ms": 98,
    "at": "2026-10-21T16:00:00.512Z",
    "body": {
      "id": "evt_4f1c9a2b7e3d5c8a1b6f0e2d",
      "type": "email.bounced",
      "created_at": "2026-10-21T15:04:12.381Z",
      "data": {
        "email_id": "019a1f2e-7c3b-7d41-9a52-0c4b8e6f1a23",
        "to": "jane@example.org"
      }
    }
  }
}