Skip to main content
POST
/
v1
/
webhooks
/
clerk
Clerk signup webhook
curl --request POST \
  --url https://api.usezombie.com/v1/webhooks/clerk \
  --header 'Content-Type: application/json' \
  --header 'svix-id: <svix-id>' \
  --header 'svix-signature: <svix-signature>' \
  --header 'svix-timestamp: <svix-timestamp>' \
  --data '
{
  "type": "<string>",
  "data": {}
}
'
{
  "workspace_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "workspace_name": "<string>",
  "created": true
}

Documentation Index

Fetch the complete documentation index at: https://docs.usezombie.com/llms.txt

Use this file to discover all available pages before exploring further.

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 v1 signatures.

Body

application/json
type
string
required

Clerk event type. Only user.created triggers a bootstrap; other types return 200 ignored.

data
object
required

Clerk user payload. The handler reads id, email_addresses, primary_email_address_id, first_name, and last_name; unknown fields are tolerated.

Response

Account bootstrapped (fresh or replayed). created is true on first delivery and false on every subsequent replay of the same oidc_subject.

workspace_id
string<uuid>

UUIDv7 of the newly provisioned default workspace (or the existing one on replay).

workspace_name
string

Heroku-style workspace name, e.g. jolly-harbor-482.

created
boolean

true on fresh bootstrap; false on idempotent replay.