Custom Webhook
Overview
Custom Webhook lets you receive alert notifications at your own HTTP endpoint.
We send a signed JSON payload for each alert; you validate the signature and handle the data.
Setup
Destination: choose “Custom webhook” when creating a channel.
Minimum plan: Premium.
Parameters:
webhookUrl: your HTTPS endpoint that accepts POSTs.
webhookSecret: your shared secret used to sign payloads.
Test: use the channel “Ping” or trigger a small alert to verify delivery.
Security
Signature header: X-Signature.
Algorithm: HMAC-SHA256 over the exact JSON request body using your webhookSecret.
Verification:
Compute hex(hmac_sha256(secret, raw_body)) on your server.
Compare with the X-Signature header.
Important: use the raw request body bytes (do not re-stringify).
Payload
Content type: application/json.
Top-level fields:
title: notification title (string).
content: human-readable message (string).
text: same as content for convenience (string).
event: raw event that triggered the alert (object).
event fields:
id: event identifier (string, optional).
marketEventType: event type (string).
currency: asset symbol or identifier (string).
date: Unix timestamp in seconds (number, UTC).
parameters: array of { parameterId: string, value: string | number | boolean }.
Example Values
Headers:
Content-Type: application/json
X-Signature:
Body (shape):
title: “Big order on BTC/USD”
content: “$100 worth of BTC market bought on Binance BTC/USD spot at $30,000”
text: “$100 worth of BTC market bought on Binance BTC/USD spot at $30,000”
event:
id: “01HXYZ…”
marketEventType: “MARKET_ORDER”
currency: “BTC”
date: 1716392011
parameters:
{ parameterId: “amountUsd”, value: 100 }
{ parameterId: “exchange”, value: “binance” }
{ parameterId: “side”, value: “buy” }
…
Last updated