For developers: we POST a structured JSON payload to any public endpoint you control, on every entry and exit.
+ Add signal, pick your strategy, select the WEBHOOK chip, and paste your endpoint URL.SEND TEST — we'll POST a sample with "test": true so you can wire up your handler safely.CREATE, and live signals flow with the same shape:{
"id": "evt_1f3a9c2e77b41d05",
"v": 1,
"strategy": "My SOL strategy",
"symbol": "SOL",
"pair": "SOLUSDT",
"side": "LONG",
"event": "entry",
"action": "BUY",
"price": 123.45,
"leverage": 3,
"timeframe": "60m",
"time": "2026-07-02T14:00:00Z",
"source": "ChartLAB Signals",
"test": false
}Read side for direction — "LONG" or "SHORT". It's the clearest field, and it's exactly what the human-readable channels (Push, Discord, Telegram) show. The action field carries "BUY" on entries and "SELL" on exits for compatibility, but heads up: a short entry is still "action": "BUY" (it's the entry, not the direction). So if your handler branches, branch on side + event (entry/exit), never on BUY/SELL alone.
The endpoint must be publicly reachable — internal and private addresses are rejected, and HTTPS is strongly recommended. Failed deliveries retry automatically with backoff — retries reuse the same id, so skip any id you've already processed and duplicates can never hurt you. Every send is logged under PAGE → Notifications.
Pointing this at a bot service like 3Commas instead of your own code? There's a dedicated recipe. Prefer a different channel? See all four options.
Signals are information, not orders — CoinLAB never touches your exchange account. Nothing here is financial advice.