← Back to terminal

Signals API

Read the current whale signal programmatically: one clear direction plus entry and stop price for every covered ticker. Built to be consumed by a bot in a few lines of code.

You need a license key

Every request must include your license code in the key parameter. Replace YOUR_LICENSE below with the code you received when you purchased. Without a valid, unexpired key the API returns 401.

No key yet? Open the terminal and click BUY LICENSE — from $5.

Endpoint

GET https://hl.worldbroker.com/api/signals?key=YOUR_LICENSE

Example response

{
  "direction": "LONG",
  "fired_at": "2026-08-28T10:07:20.807Z",
  "age_minutes": 42,
  "stop_loss_pct": 8,
  "ticker_count": 50,
  "tickers": [
    { "symbol": "BTC",  "direction": "LONG", "entry": 78927,    "stop": 72612.84 },
    { "symbol": "ETH",  "direction": "LONG", "entry": 1940.25,  "stop": 1785.03  },
    { "symbol": "AAVE", "direction": "LONG", "entry": 124.62,   "stop": 114.6504 }
  ]
}

Fields

directionLONG or SHORT — the current position across all tickers.
fired_atUTC timestamp when this signal fired. Changes only on a new signal.
age_minutesHow long the position has been open.
stop_loss_pctStop distance applied to every ticker. Currently 8%.
ticker_countHow many tickers are included.
tickers[].symbolHyperliquid ticker, e.g. BTC.
tickers[].entryPrice when the signal fired.
tickers[].stopStop price, already computed for you.

Usage

# curl
curl "https://hl.worldbroker.com/api/signals?key=YOUR_LICENSE"

# python
import requests
r = requests.get("https://hl.worldbroker.com/api/signals",
                 params={"key": "YOUR_LICENSE"})
s = r.json()
print(s["direction"])
for t in s["tickers"]:
    print(t["symbol"], t["entry"], t["stop"])

# javascript
const r = await fetch(
  "https://hl.worldbroker.com/api/signals?key=YOUR_LICENSE"
);
const s = await r.json();

Historical series

Every signal ever fired, not just the current one. Returns are computed with the same 8% stop the live product uses and verified against real hourly candles, so a backtest built on this endpoint matches the numbers shown on the terminal.

GET https://hl.worldbroker.com/api/signals/history?key=YOUR_LICENSE

One row per signal — direction, when it opened, when it closed, how long it ran, and the BTC reference price at entry and exit. Optional &limit=500 (max 1000).

{
  "stop_loss_pct": 8,
  "count": 107,
  "signals": [
    {
      "signal_id": 2428,
      "direction": "LONG",
      "fired_at": "2026-08-28T10:07:20Z",
      "closed_at": null,
      "open": true,
      "duration_hours": null,
      "btc_entry": 79196.5,
      "btc_exit": null
    },
    {
      "signal_id": 2427,
      "direction": "SHORT",
      "fired_at": "2026-08-27T00:24:24Z",
      "closed_at": "2026-08-28T10:07:20Z",
      "open": false,
      "duration_hours": 33.7,
      "btc_entry": 78926.5,
      "btc_exit": 79196.5
    }
  ]
}

Per ticker

Add &coin=BTC to get entry, stop, exit, whether the stop was hit and the realised return for that ticker on every signal. Unsupported tickers return 404 coin_not_covered together with the list of covered symbols.

GET https://hl.worldbroker.com/api/signals/history?key=YOUR_LICENSE&coin=BTC
{
  "coin": "BTC",
  "stop_loss_pct": 8,
  "count": 107,
  "signals": [
    {
      "signal_id": 2427,
      "direction": "SHORT",
      "fired_at": "2026-08-27T00:24:24Z",
      "entry": 78926.5,
      "stop": 85240.62,
      "exit": 79196.5,
      "stopped_out": false,
      "return_pct": -0.34,
      "open": false
    }
  ]
}

return_pct is the gross move in the signal direction, already capped by the stop. It excludes fees and slippage — the terminal applies those separately.

How often to poll

Signals fire every few days, not continuously. Polling once per minute is plenty. A new signal is out when fired_at changes — that is the moment to act, not age_minutes, which increases on every call.

Errors

401missing_keyNo key parameter supplied.
401invalid_or_expired_keyKey unknown or the license has expired.
503no_signal_yetNo signal recorded yet — rare, retry later.
Testing phase

These signals are experimental and under active calibration. They are derived from whale positioning and are not financial advice. Past results do not predict future performance. You are responsible for any trade you place.