Moonborn — API · webhooks
Replay a delivery by enqueueing a new attempt (original row is preserved)
Creates a NEW delivery row with the same payload + idempotency key. The original row is never mutated so the audit trail keeps the failure attempt intact.
POST/v1/webhooks/{id}/deliveries/{delivery_id}/replayscope · Bearer (API key or session JWT)
Path parameters
| Field | Type | Description |
|---|---|---|
| idreq | string | Webhook endpoint id (e.g. `whe_*`). |
| delivery_idreq | string | Delivery attempt id (e.g. `whd_*`). |
Responses
202Replay enqueued
Body
| Field | Type | Description |
|---|---|---|
| deliveryreq | object | |
| delivery.deliveryIdreq | string | |
| delivery.endpointIdreq | string | |
| delivery.eventTypereq | string · "persona.created" | "persona.updated" | "persona.deleted" | "persona.archived" | "persona.regenerated" | "persona.audit_failed" | "generation.run.started" | "generation.run.completed" | "generation.run.failed" | "subscription.upgraded" | "subscription.downgraded" | "subscription.cancelled" | "marketplace.persona.published" | "marketplace.persona.purchased" | "moderation.flagged" | "webhook.endpoint.test_ping" | |
| delivery.eventIdreq | string | |
| delivery.statusreq | string · "pending" | "in_flight" | "succeeded" | "failed" | "dead_letter" | |
| delivery.attemptCountreq | number | |
| delivery.lastStatusCodereq | number | |
| delivery.lastErrorKindreq | string | |
| delivery.scheduledAtreq | string | |
| delivery.attemptedAtreq | string | |
| delivery.completedAtreq | string |
401Unauthenticated
Body
| Field | Type | Description |
|---|---|---|
| errorreq | object | |
| error.codereq | string | |
| error.messagereq | string |
404Endpoint or delivery not found
Body
| Field | Type | Description |
|---|---|---|
| errorreq | object | |
| error.codereq | string | |
| error.messagereq | string |
409Delivery is still pending / in-flight
Body
| Field | Type | Description |
|---|---|---|
| errorreq | object | |
| error.codereq | string | |
| error.messagereq | string |
Examples
cURL
curl -X POST https://api.moonborn.co/v1/webhooks/<id>/deliveries/<delivery_id>/replay \ -H "Authorization: Bearer $MOONBORN_API_KEY"
TypeScript
import Moonborn from '@moonborn/sdk';
const client = new Moonborn({ apiKey: process.env.MOONBORN_API_KEY });
const result = await client.webhooks.replayWebhookDelivery({
id: '<id>',
delivery_id: '<delivery_id>',
});Python
import os
from moonborn import Moonborn
client = Moonborn(api_key=os.environ["MOONBORN_API_KEY"])
result = client.webhooks.replay_webhook_delivery(
id="<id>",
delivery_id="<delivery_id>",
)