Skip to main content
POST
/
v1
/
webhooks
/
svix
/
{zombie_id}
Receive a Svix-signed webhook (Clerk events)
curl --request POST \
  --url https://api.usezombie.com/v1/webhooks/svix/{zombie_id} \
  --header 'Content-Type: application/json' \
  --header 'svix-id: <svix-id>' \
  --header 'svix-signature: <svix-signature>' \
  --header 'svix-timestamp: <svix-timestamp>' \
  --data '{}'
{
  "status": "<string>",
  "ignored": "<string>"
}

Headers

svix-id
string
required

Svix message identifier (used for deduplication and signature binding).

svix-timestamp
string
required

Unix timestamp of the Svix delivery (used for replay protection).

svix-signature
string
required

Space-separated list of Svix signatures (v1 scheme).

Path Parameters

zombie_id
string<uuid>
required

UUIDv7 of the zombie receiving the webhook.

Body

application/json

Opaque event envelope; upstream issuer (Svix) defines the payload shape per event type.

Response

Not enqueued, intentionally. Two shapes: duplicate delivery ({"status": "duplicate"} — same body event_id 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).