Skip to main content
POST
/
v1
/
webhooks
/
{zombie_id}
Deliver an inbound webhook event to a Zombie
curl --request POST \
  --url https://api.usezombie.com/v1/webhooks/{zombie_id} \
  --header 'Content-Type: application/json' \
  --data '
{
  "event_id": "<string>",
  "type": "<string>",
  "data": {}
}
'
{
  "status": "<string>",
  "ignored": "<string>"
}

Path Parameters

zombie_id
string<uuid>
required

UUIDv7 of the target Zombie. Obtained from POST /v1/workspaces/{workspace_id}/zombies or zombiectl install --from <path>.

Body

application/json
event_id
string
required

Unique identifier for this event. Used for idempotency deduplication (24-hour window).

type
string
required

Event type label (e.g. email.received, push, payment.succeeded).

data
object
required

Event payload — any JSON object. Passed as-is into the Zombie event loop.

Response

Not enqueued, intentionally. Two shapes: duplicate event ({"status": "duplicate"} — already processed within the 24-hour dedup window) or event ignored ({"ignored": "zombie_paused"} — zombie is paused; the dedup slot is not consumed, so redelivery after resume processes normally).

status
string
Allowed value: "duplicate"
ignored
string

Reason the event was ignored (e.g. zombie_paused).