---
title: "Redeliver event"
method: POST
path: "/webhooks/{webhookId}/events/{eventId}/redeliver"
tags: ["Events"]
---

# Redeliver event

`POST /webhooks/{webhookId}/events/{eventId}/redeliver`

Send the stored event once to the same webhook using its current URL and signing secret. Automatic retries continue independently, and delegated events require the original delegation to remain active.

## Path parameters

- `webhookId` string, required — Webhook ID (whk_*).
- `eventId` string, required — Event ID (evt_*).

## Headers

- `Idempotency-Key` string, required
- `X-Agent-ID` string, nullable
- `X-Instance-ID` string, nullable

## Response `202`

Successful Response

- object
  - `data` object, required
    - `type` 'redelivery', required — Resource type
    - `id` string, required — Redelivery ID (rdy_xxx)
    - `attributes` object, required — Resource attributes
      - `status` 'PENDING' | 'DELIVERING' | 'DELIVERED' | 'FAILED' | 'UNKNOWN' | 'CANCELED', required — Result of this manual redelivery
      - `attemptCount` integer, required — Number of attempts made for this redelivery
      - `maxAttempts` integer, required — Maximum attempts for this redelivery
      - `responseCode` integer, nullable, required — HTTP response code, or null when no response was received
      - `errorCategory` 'HTTP' | 'NETWORK' | 'SSRF' | 'CONFIGURATION' | 'UNKNOWN', nullable, required — Sanitized failure category, or null when no failure was recorded
      - `sanitizedError` string, nullable, required — Safe failure summary, or null when no failure was recorded
      - `firstAttemptAt` string, date-time, nullable, required — When the redelivery attempt began
      - `lastAttemptAt` string, date-time, nullable, required — When the redelivery attempt finished
      - `completedAt` string, date-time, nullable, required — When this redelivery reached a terminal state
      - `createdAt` string, date-time, required — When this redelivery was requested
      - `updatedAt` string, date-time, required — Last redelivery state change
    - `relationships` object, required — Resource relationships
      - `webhook` object, required — Parent webhook endpoint
        - `data` object, required — Related resource identifier.
          - `type` 'webhook', required
          - `id` string, required
      - `event` object, required — Event being redelivered
        - `data` object, required — Related resource identifier.
          - `type` 'event', required
          - `id` string, required

## Other responses

- `400` — Validation Error
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found. Returned when the resource does not exist, or when it exists but is not accessible to your account. The two cases are intentionally indistinguishable, so that resource IDs cannot be enumerated by probing.
- `409` — Conflict
- `422` — Validation Error
- `428` — Precondition Required
- `429` — Too Many Requests
- `500` — Internal Server Error
- `501` — Not Implemented
- `502` — Bad Gateway
- `503` — Service Unavailable

---

[API](https://skmtc.net/natural/apis/natural-api.md) · [All operations](https://skmtc.net/natural/apis/natural-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/natural/natural-api/versions/0bb9c54b1f61/schema)
