Manually replay a webhook delivery.
Clones a terminal-failure or dead-lettered delivery row
into a fresh pending row that the background dispatcher
will pick up on its next poll. The original row is
preserved for audit. The returned WebhookDeliveryResponse
is the new pending row — poll the delivery list or watch
the callback URL itself to observe outcome.
The source row MUST be in status failed or
dead_letter; replaying pending or succeeded rows
returns 409 conflict with code
conflict.invalid_state. The clone replays the EXACT
payload bytes the receiver should have seen the first
time — HMAC signatures, headers, body — so receivers can
treat redeliver attempts identically to original
attempts.
Caveat: each redeliver call enqueues a NEW pending row, so repeated clicks produce repeated deliveries. This endpoint is for manual rescue, not for caller-side retry-on-network-error.
Authorizations
Pass a user JWT or a oag_ User API Key on the
Authorization: Bearer <token> header. Both are validated by
openapi-gateway against the Auth service.
Both credential types are user-scoped: every key (and every JWT) is bound to exactly one owner, and every route grants the caller full access to that owner's own resources. Cross-tenant access is denied by owner-ACL inside the handlers — there is no per-route scope vocabulary on this API.
Removed in v1.1.0: the legacy
agents:*/tasks:*/files:*/instances:*scope set has been dropped together with the403 insufficient_scopeerror. Existingoag_keys automatically gain full owner-level access and do not need to be re-issued. SDK calls that previously passedscopestocreateAPIKeyshould drop the argument. See the changelog at the bottom of this spec for the full migration note.
Path Parameters
128128128128