Redeliver
Replay a finished delivery: reset it to PENDING and re-fire the signed POST.
404 if the delivery isn’t visible to the caller; 409 if a delivery for the
request is still in flight (a replay must not stack on it). The delivery is
re-validated (SSRF) and re-signed at send time, and the receiver dedupes on
X-Hedra-Webhook-Id, so a replay is safe.
The webhook id is stable across the original and every replay, because it
identifies the event. Every attempt of a replayed cycle therefore also carries
X-Hedra-Webhook-Redelivery: true — without it a receiver doing exactly what
our guidance says (dedupe on the id) would silently discard the replay, which is
the one case where the duplicate is the point.
Authorizations
Primary scheme: Authorization: Key <key_id>:<secret>.
Path Parameters
The job's id (job_<uuid>).
Response
Successful Response
The job whose terminal event this delivers.
Whether GET /v3/jobs/{job_id} works for the caller — false when the job belongs to a different owner than the authenticating key.
The resolved model id the job ran on.
Where a delivery stands: queued, in flight, or its terminal outcome.
PENDING, DELIVERING, DELIVERED, FAILED Which URL resolution created this delivery.
per_job, default Delivery attempts so far, cumulative across replays.
The destination endpoint.
ISO-8601 instant the delivery was registered.
The terminal event this delivery announces; null until the delivery fires — a row registered at submit has no outcome to announce while its job is still running.
job.completed, job.failed How many operator replays this delivery has had; 0 means every attempt was automatic.
One entry per operator replay, oldest first — each holds the delivery's fields as they stood when the replay was requested. Replays recorded before this history existed appear only in redelivery_count, so the list can be shorter.
HTTP status of the most recent attempt; null when it never got a response.
Why the most recent delivery attempt failed, in the same error envelope GET /jobs/{job_id} returns for a failed job: a stable code from the shared error vocabulary, a fixed operator-facing message, and retryable. Null while no attempt has failed. Destination URLs, addresses, headers, credentials, response bodies, and internal exception text are never included — those stay in Hedra's own logs. retryable describes the condition, not what Hedra did: every non-2xx response is retried on the published ladder, so it answers whether replaying this delivery is likely to help. Deliveries that failed before this field became structured report UNKNOWN.
ISO-8601 instant of the most recent attempt; null before the first one.