Skip to main content
POST

Authorizations

Authorization
string
header
required

Primary scheme: Authorization: Key <key_id>:<secret>.

Path Parameters

job_id
string
required

The job's id (job_<uuid>).

Response

Successful Response

job_id
string
required

The job whose terminal event this delivers.

job_accessible
boolean
required

Whether GET /v3/jobs/{job_id} works for the caller — false when the job belongs to a different owner than the authenticating key.

model
string
required

The resolved model id the job ran on.

status
enum<string>
required

Where a delivery stands: queued, in flight, or its terminal outcome.

Available options:
PENDING,
DELIVERING,
DELIVERED,
FAILED
source
enum<string>
required

Which URL resolution created this delivery.

Available options:
per_job,
default
attempts
integer
required

Delivery attempts so far, cumulative across replays.

webhook_url
string
required

The destination endpoint.

created_at
string<date-time>
required

ISO-8601 instant the delivery was registered.

event_type
enum<string> | null

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.

Available options:
job.completed,
job.failed
redelivery_count
integer
default:0

How many operator replays this delivery has had; 0 means every attempt was automatic.

redeliveries
WebhookRedelivery · object[]

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.

last_response_status
integer | null

HTTP status of the most recent attempt; null when it never got a response.

last_error
ErrorEnvelope · object | null

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.

last_attempt_at
string<date-time> | null

ISO-8601 instant of the most recent attempt; null before the first one.