AI Lab API
REST + JSON. Base URL https://voxtradepro.com/api/lab/v1. Paper money only: there is no deposit, withdraw, transfer or payment endpoint.
1 · Get a key
Open AI Lab, create your Lab account (save the recovery code), then + New key. Send it on every request:
Authorization: Bearer vtp_ak_XXXXXXXX_…
Keep it secret like a password. Switch it off or revoke it any time in AI Lab. A key cannot manage keys, reset the account or move money.
2 · Endpoints
| Call | What |
|---|---|
GET /status | Feed live?, server time |
GET /markets | Coins, max leverage, size decimals, funding |
GET /prices · /price?coin=BTC | Live mid, bid, ask |
GET /book?coin=BTC&depth=20 | Live order book |
GET /candles?coin=BTC&tf=15m&limit=500 | 1m … 1d, max 5000 |
GET /funding?coin=BTC | Hourly funding rate |
GET /account | Equity, available, P/L, fees |
GET /positions · /orders | Open positions / orders |
GET /fills?since_id=0 · /orders/history · /funding-payments | History |
POST /order | Place an order (below) |
POST /orders/batch | {"orders":[…]} up to 10 |
DELETE /orders/{id or cloid} | Cancel one |
DELETE /orders · ?coin=BTC | Cancel all |
POST /positions/{coin}/close | {"pct":100} market close |
POST /positions/{coin}/tpsl | {"sl":…,"tp":…,"trail":{"pct":1}}, null removes |
POST /leverage | {"coin":"ETH","leverage":10} |
POST /margin | {"coin":"ETH","amount":50} add (negative removes) |
POST /dead-man | {"seconds":60} cancel all orders if your bot goes quiet; 0 = off |
3 · Order fields
coin | BTC, ETH, SOL … (Hyperliquid perps) |
side | buy | sell |
type | market | limit | stop_market | take_market |
size or size_usd | coin amount, or position value in USDC (min 10) |
price / trigger_price | for limit / stop and take orders |
leverage | 1 … market max (isolated margin) |
tif | GTC (rest) · IOC · ALO (post-only) |
reduce_only | true = only reduce an open position |
sl / tp | {"pct":2} or {"price":70000} |
trail | {"pct":1.5} trailing stop |
max_slippage_pct | market orders, default 8 |
cloid · note | your id · reason shown in AI Lab (140 chars) |
How fills work (same as the Trade page)
- Live Hyperliquid prices and order book.
- Market orders walk the real book: you pay the real spread and slippage (VWAP), capped by
max_slippage_pct. - Fees: taker 0.045%, maker 0.015% (a resting limit fills at its price once the mark reaches it).
- Funding every hour on the hour at the live Hyperliquid rate.
- Isolated margin. Liquidation when the mark reaches the liquidation price (margin is lost). SL, TP and trailing stops are checked first.
- Runs on our server 24/7, also when your browser is closed.
- If live prices stop, nothing fills on old prices; market orders return 503, retry.
Python example
import os, requests
B = "https://voxtradepro.com/api/lab/v1"
H = {"Authorization": "Bearer " + os.environ["VTP_KEY"]}
print(requests.get(B + "/price?coin=ETH", headers=H).json())
r = requests.post(B + "/order", headers=H, json={
"coin": "ETH", "side": "buy", "type": "limit",
"price": 3000, "size_usd": 200, "leverage": 3,
"sl": {"pct": 2}, "tp": {"pct": 4}, "note": "dip buy"})
print(r.status_code, r.json())
print(requests.get(B + "/positions", headers=H).json())Node example
const B = 'https://voxtradepro.com/api/lab/v1';
const H = { authorization: 'Bearer ' + process.env.VTP_KEY,
'content-type': 'application/json' };
const api = (p, o = {}) => fetch(B + p, { headers: H, ...o })
.then(r => r.json());
const acct = await api('/account');
await api('/order', { method: 'POST', body: JSON.stringify(
{ coin: 'BTC', side: 'sell', type: 'market', size_usd: 100,
leverage: 2, trail: { pct: 1 } }) });Prompt for ChatGPT / Grok
You are my trading bot for a PAPER account on VoxTradePro AI Lab. API base: https://voxtradepro.com/api/lab/v1, header Authorization: Bearer <my key>. Read /account, /positions, /candles?coin=BTC&tf=15m. Decide using MY rules: <your strategy>. Place orders with POST /order (fields: coin, side, type, size_usd, leverage, sl, tp, trail, note). Always set a stop loss. Never risk more than 2% of equity per trade. Explain each trade in the "note" field.
Errors and limits
Errors: {"error":{"code","msg"}}. 401 bad key · 403 key off / agents stopped / read-only · 422 no liquidity · 429 rate limited (see Retry-After) · 503 prices unavailable, retry. Limits: 20 req/s per key (burst 40), 10 orders/s per account, 200 open orders, candles weigh 5, 60 req/s per IP.
Not financial advice. AI Lab is a paper-trading sandbox: virtual USDC, live Hyperliquid prices, real-style fees, slippage and funding. No deposits, no withdrawals, no real orders, no payments. Your strategy and your bot are yours; past or simulated results do not predict future results.