Webhooks
Webhooks push detections to your systems as they are raised, instead of polling.
Discord
The quickest route. Under Settings → Alerts, link a Discord server and pick channels for alerts, reports and logs. Detections below your accuracy threshold are recorded but not announced.
Report webhook
Under Settings, set a Report webhook URL to receive player reports as JSON:
{ "type": "player_report", "organizationId": "…", "serverId": "…", "reportedPlayer": { "uuid": "…", "username": "…" }, "reporter": { "uuid": "…", "username": "…" }, "reason": "…", "createdAt": "2026-09-14T12:00:00Z"}Handling deliveries
- Respond
2xxquickly and do the work asynchronously; slow endpoints are retried and may be backed off. - Expect the same delivery more than once. Deduplicate on the detection id.
- Treat every field as untrusted input — usernames are player-controlled. Escape before rendering or logging into anything that interprets markup.
Verifying deliveries
Each network is issued a signing secret, shown in network settings and
recognisable by its whsec_ prefix. It is the key for an X-Thorium-Signature
HMAC over the request body.
Rotating the secret is a matter of writing a new value in network settings; deliveries signed with the previous one stop verifying immediately.