Skip to content

← webhooks

POST/api/v1/webhooks/clerk

Clerk Webhook

Handle Clerk webhook events (user lifecycle).

Authentication

Public endpoint: no key required. Anonymous quotas still apply (see Rate limits).

Headers

NameTypeRequiredDescription
svix-idstring | null-
svix-timestampstring | null-
svix-signaturestring | null-

Responses

StatusDescriptionSchema
200Successful ResponseWebhookEventResponse
422Validation ErrorHTTPValidationError

See the standard error codes documented in the Error codes.

Code samples

Three ready-to-paste implementations. Replace $TRINITY_API_KEY with your API key (generated from the dashboard under Profile → API keys).

cURL

curl -X POST \
  'https://api.trinityinsights.io/api/v1/webhooks/clerk' \
  -H 'svix-id: value' \
  -H 'svix-timestamp: value' \
  -H 'svix-signature: value'

Python

import os
import requests

BASE = "https://api.trinityinsights.io"
headers = {
    "svix-id": "value",
    "svix-timestamp": "value",
    "svix-signature": "value",
}

response = requests.post(f"{BASE}/api/v1/webhooks/clerk", headers=headers, timeout=10)
response.raise_for_status()
data = response.json()

JavaScript

const apiKey = process.env.TRINITY_API_KEY;

const response = await fetch(
  "https://api.trinityinsights.io/api/v1/webhooks/clerk",
  {
    method: "POST",
    headers: {
      "svix-id": "value",
      "svix-timestamp": "value",
      "svix-signature": "value",
    },
  },
);

if (!response.ok) {
  throw new Error(`HTTP ${response.status}`);
}
const data = await response.json();

Institutional disclaimer

Trinity Insights is an educational and analytical tool. Values returned by this endpoint do not constitute investment advice. Trinity Insights is not a Crypto-Asset Service Provider (CASP) registered under MiCA Regulation (EU) 2023/1114. See the full disclaimer.