curl --request POST \
--url https://api.hoox.sh/webhook \
--header 'Content-Type: application/json' \
--data '
{
"apiKey": "whk_live_a1b2c3d4e5f6",
"exchange": "bybit",
"action": "LONG",
"symbol": "BTCUSDT",
"quantity": 0.002
}
'const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
apiKey: 'whk_live_a1b2c3d4e5f6',
exchange: 'bybit',
action: 'LONG',
symbol: 'BTCUSDT',
quantity: 0.002
})
};
fetch('https://api.hoox.sh/webhook', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.hoox.sh/webhook"
payload = {
"apiKey": "whk_live_a1b2c3d4e5f6",
"exchange": "bybit",
"action": "LONG",
"symbol": "BTCUSDT",
"quantity": 0.002
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"success": true,
"requestId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"tradeResult": {
"success": true,
"orderId": "18049284739",
"status": "Filled",
"executedQty": 0.005,
"price": 68425.5,
"queued": true
},
"notificationResult": {
"success": true,
"messageId": 482904
}
}{
"success": true,
"requestId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"status": "Enqueued",
"message": "Trade queued for execution"
}{
"success": false,
"requestId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"error": "Invalid JSON payload structure."
}{
"success": false,
"requestId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"error": "Invalid JSON payload structure."
}{
"success": false,
"requestId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"error": "Invalid JSON payload structure."
}{
"success": false,
"requestId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"error": "Invalid JSON payload structure."
}{
"success": false,
"requestId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"error": "Invalid JSON payload structure."
}{
"success": false,
"requestId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"error": "Invalid JSON payload structure."
}Ingest trade signal
Primary endpoint for receiving automated trade signals from TradingView webhooks, cURL scripts, or any HTTP client.
The gateway validates the API key (provided in the JSON body as
apiKey), checks the IP allowlist, enforces rate limits, and
verifies the kill switch before routing the trade to the execution
engine — either directly via service binding or asynchronously via
Cloudflare Queue (depending on queue mode).
curl --request POST \
--url https://api.hoox.sh/webhook \
--header 'Content-Type: application/json' \
--data '
{
"apiKey": "whk_live_a1b2c3d4e5f6",
"exchange": "bybit",
"action": "LONG",
"symbol": "BTCUSDT",
"quantity": 0.002
}
'const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
apiKey: 'whk_live_a1b2c3d4e5f6',
exchange: 'bybit',
action: 'LONG',
symbol: 'BTCUSDT',
quantity: 0.002
})
};
fetch('https://api.hoox.sh/webhook', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.hoox.sh/webhook"
payload = {
"apiKey": "whk_live_a1b2c3d4e5f6",
"exchange": "bybit",
"action": "LONG",
"symbol": "BTCUSDT",
"quantity": 0.002
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"success": true,
"requestId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"tradeResult": {
"success": true,
"orderId": "18049284739",
"status": "Filled",
"executedQty": 0.005,
"price": 68425.5,
"queued": true
},
"notificationResult": {
"success": true,
"messageId": 482904
}
}{
"success": true,
"requestId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"status": "Enqueued",
"message": "Trade queued for execution"
}{
"success": false,
"requestId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"error": "Invalid JSON payload structure."
}{
"success": false,
"requestId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"error": "Invalid JSON payload structure."
}{
"success": false,
"requestId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"error": "Invalid JSON payload structure."
}{
"success": false,
"requestId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"error": "Invalid JSON payload structure."
}{
"success": false,
"requestId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"error": "Invalid JSON payload structure."
}{
"success": false,
"requestId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"error": "Invalid JSON payload structure."
}Body
Webhook authentication key. Provided inside the JSON payload body — NOT as an HTTP header.
"whk_live_a1b2c3d4e5f6"
Target exchange
binance, bybit, mexc "bybit"
Trade action to execute
LONG, SHORT, CLOSE_LONG, CLOSE_SHORT "LONG"
Trading pair symbol
20"BTCUSDT"
Order size in contracts or base currency
x > 00.002
Optional limit price (market order if omitted)
x > 068500.5
Optional leverage multiplier for margin trades
x >= 110
Optional client-supplied idempotency key. When the gateway receives a duplicate request with the same key inside the dedupe TTL window, the original response is replayed (see 409 below).
"9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"
Optional Telegram notification configuration
Hide child attributes
Hide child attributes
Target Telegram chat ID
"987654321"
Custom notification message
"BTC Long signal received"
Optional Telegram Bot API parse mode applied to
message. Use HTML or MarkdownV2 to enable
rich-text formatting. Omit (or use Plain) to
send literal text.
Plain, HTML, Markdown, MarkdownV2 "HTML"
Response
Trade processed successfully
true
Unique request trace identifier
"9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"
Hide child attributes
Hide child attributes