💻API
Place an Order
POST https://sceptre.jester.trade/api/v1/webhooks/trades
Trigger trades via a strict JSON payload. Inputs are validated, assets/prices normalized for Hyperliquid, and errors are structured.
Headers
Content-Type: application/json
x-api-key: YOUR_TOKEN
Required for non‑TradingView senders.
TradingView IPs (52.89.214.238, 34.212.75.30, 54.218.53.128, 52.32.178.7) MUST put the token in the JSON body as key. If both header and body are present, they must match.
Content-Type
application/json
x-api-key
YOUR_TOKEN
Body
Canonical fields only (lowercase).
TradingView IPs (52.89.214.238, 34.212.75.30, 54.218.53.128, 52.32.178.7) MUST put the token in the JSON body as key. If both header and body are present, they must match.
Required: strategy, a, p (and key in body for TradingView IPs)
Optional: id, tp, sl, o
key
string
Auth token in body (TradingView IPs only). Otherwise use header.
id
number|string
User identifier (e.g., Telegram ID).
strategy
string
Lowercase strategy name, e.g. "dpoCycleSwing".
a
string
Asset symbol (flexible inputs like "BTCUSDT", "BTC-USD", "btc"). Normalized to Hyperliquid format internally (e.g., "BTC-USD").
p
number|string
Entry price; if o="limit", this is the limit price.
tp
number|string (optional)
Take‑profit price (if provided, must be numeric and sensible relative to p).
sl
number|string (optional)
Stop‑loss price (if provided, must be numeric and sensible relative to p).
o
"market" | "limit" (optional; default "market")
Order type; defaults to Market is not present.
Notes:
Prices may be strings or numbers; commas/underscores are stripped during parsing (e.g., "110,804.0" → 110804.0).
Asset normalization: inputs like BTCUSDT, BTCUSD, BTC/USDT, BTC-USD, btc are accepted and normalized to HL "<BASE>-USD". k‑prefixed assets handled (e.g., kPEPE).
Header-auth example:
{
"id": 123456789,
"strategy": "dpoCycleSwing",
"a": "BTCUSDT",
"p": "68250.12",
"tp": "68990",
"sl": "67680.5",
"o": "market"
}TradingView body‑auth example (key first; allowed only from TradingView IPs):
{
"key": "YOUR_TOKEN",
"id": 123456789,
"strategy": "dpoCycleSwing",
"a": "BTCUSDT",
"p": "68250.12",
"tp": "68990",
"sl": "67680.5",
"o": "limit"
}Response
{
"success": true,
"message": "Signal accepted",
"signalId": "sig_01HF..."
}{
"success": false,
"error": "ValidationError",
"issues": [
{ "field": "strategy", "code": "RequiredMissing" },
{ "field": "p", "code": "NotNumeric", "message": "Must be a number" },
{ "field": "foo", "code": "UnknownField", "message": "Not allowed in v1" }
],
"traceId": "req_01HF..."
}{ "success": false, "error": "MissingAuth", "detail": "x-api-key required" }{ "success": false, "error": "KeyMismatch" }{
"success": false, "error": "NormalizationFailed", "detail": "Unrecognized asset"
}Validation rules:
Canonical keys only: key?, id?, strategy, a, p, tp?, sl?, o?
If tp/sl provided, must be numeric and sensible relative to p (e.g., for BUY, sl < p and tp > p).
If both header and body key are present, they must match. Body key is accepted only from TradingView IPs.
Last updated