Developers · Execution Engine
Build on the Boss Traders Flow API.
REST for accounts and orders, WebSocket for real-time streams, and FIX 4.4 for institutional order flow — all backed by the same matching engine and unified margin account.
REST rate limit
1,200 req / min per IP
WebSocket
300 subscriptions per connection
FIX order rate
100 msgs / s per session
Key permissions
Read · Trade · Withdraw + IP whitelist
Market data
Public, unauthenticated market data for all 10 USDT pairs.
- GETPublic
/api/market/tickers
24h ticker, market cap, sparkline and best bid/ask for every pair.
- GETPublic
/api/market/klines
OHLCV candles.
symbol=BTC&interval=1m|5m|15m|1h|4h|1d|1w&limit=300
- GETPublic
/api/market/depth
Order book snapshot (bids/asks).
symbol=BTC&limit=20
- GETPublic
/api/market/trades
Most recent public trades.
symbol=BTC&limit=50
- GETPublic
/api/market/funding
Current perpetual funding rates and next funding time.
- GETPublic
/api/market/funding-history
Historical funding for one market.
symbol=BTC
- GETPublic
/api/market/sentiment
Fear & Greed index with 30-day history.
Trading
Place, list and cancel orders. All 9 order types are supported.
- POSTAuth
/api/orders
Place an order (MARKET, LIMIT, STOP_LIMIT, ICEBERG, TWAP, VWAP, POST_ONLY, TRAILING_STOP, OCO).
JSON body — see example
- GETAuth
/api/orders
List orders.
scope=open|history&symbol=BTC
- DELETEAuth
/api/orders
Cancel all open orders, optionally for one market.
symbol=BTC
- DELETEAuth
/api/orders/{id}
Cancel a single order.
- GETAuth
/api/trades
Your fills with fees and liquidity flag.
symbol=BTC
Boss Traders AI signals
Simulated demo trade signals (entry, stop-loss, TP1–TP3, confidence) with a replayed win/loss track record. Not financial advice.
- GETPublic
/api/signals
Active signals, closed-signal history and the aggregated track record.
symbol=BTC&status=all|active|history&limit=40
- GETPublic
/api/signals/{id}
One signal with the per-market track record.
- POSTAuth
/api/signals/{id}/follow
Follow a signal: balance, price-range and post-trade margin checks, then a MARKET entry plus optional TP1/stop-loss OCO bracket. dryRun returns the checks only.
{ usdAmount | quantity, bracket?: true, dryRun?: false }
AI trading agents
Goal-driven demo agents that decide BUY, SELL or HOLD and trade through the Execution Engine inside platform-enforced guardrails. Every run is journaled. Not financial advice.
- GETAuth
/api/agents
Your agents with stats, pending proposals, recent decisions and a summary.
- POSTAuth
/api/agents
Create an agent (max 5 per account).
{ name, goal, model, mode: APPROVE|AUTO, riskProfile, symbols[], budgetUsd, maxOrderUsd, maxTradesPerDay, dailyLossLimitUsd, maxMarginUtilPct, stopLossPct, takeProfitPct, intervalMin, useSignals }
- GETAuth
/api/agents/{id}
One agent with its stats and decision history.
- PATCHAuth
/api/agents/{id}
Update settings, or pause / resume the agent.
{ ...any create fields, status?: ACTIVE|PAUSED }
- DELETEAuth
/api/agents/{id}
Delete an agent. Its executed orders stay in your order history.
- POSTAuth
/api/agents/{id}/run
Run the agent now: market context → AI decision → guardrail checks → proposal or execution.
- POSTAuth
/api/agents/tick
Run every active agent that is due and return the next scheduled run time.
- POSTAuth
/api/agents/pause-all
Kill switch: pause every agent and expire all pending proposals.
- POSTAuth
/api/agents/decisions/{id}
Approve or reject a pending proposal. Guardrails are re-checked on approval; a blocked trade returns 422.
{ action: approve|reject }
Unified margin
Cross-asset collateral, risk offsetting and cross-margin positions.
- GETAuth
/api/margin
Collateral basket, netted margin requirements, liquidation prices and health.
- GETAuth
/api/positions
Open and recently closed positions.
- POSTAuth
/api/positions
Open a cross-margin position.
{ symbol, side: LONG|SHORT, size, leverage }
- DELETEAuth
/api/positions/{id}
Close a position at mark and realize PnL.
Wallet & account
Balances, transfers, conversion and account settings.
- GETAuth
/api/portfolio
Balances with valuations, cost basis, PnL and allocation.
history=1
- POSTAuth
/api/convert
Instant conversion between any two assets.
{ from, to, amount, quoteOnly? }
- POSTAuth
/api/deposit
Credit a deposit (demo accounts are simulated).
{ asset, amount, network, method }
- POSTAuth
/api/withdraw
Request a withdrawal (2FA code required when enabled).
{ asset, amount, network, address, twoFactorCode }
- GETAuth
/api/transactions
Deposits, withdrawals and conversions.
type=DEPOSIT|WITHDRAWAL|CONVERT
- GETAuth
/api/alerts
Your price alerts.
- POSTAuth
/api/alerts
Create a price alert.
{ symbol, condition: ABOVE|BELOW, targetPrice }
- GETAuth
/api/notifications
Account notifications.
- GETAuth
/api/profile
Profile, VIP tier, 30-day volume and security score.
- POSTAuth
/api/api-keys
Create an API key with permissions and IP whitelist.
{ label, permissions[], ipWhitelist }
Authentication
Browser sessions use a secure session cookie. Programmatic clients sign requests with an API key created in Profile → API keys, sending X-BTF-APIKEY, X-BTF-TIMESTAMP and an HMAC-SHA256 X-BTF-SIGNATURE of the request.
curl -X POST https://<your-domain>/api/orders \
-H "Content-Type: application/json" \
-H "Cookie: <session cookie>" \
-d '{
"symbol": "BTC",
"side": "BUY",
"type": "ICEBERG",
"quantity": 2.5,
"price": 64250.00,
"visibleQty": 0.25,
"timeInForce": "GTC"
}'{
"order": {
"id": "clx9f2k0q0001",
"symbol": "BTC",
"side": "BUY",
"type": "ICEBERG",
"status": "OPEN",
"price": 64250,
"quantity": 2.5,
"visibleQty": 0.25,
"filledQty": 0,
"routing": [
{ "venue": "BTF Core Book", "pct": 100, "latencyMs": 0.52, "improvementBps": 0 }
],
"createdAt": "2026-09-25T14:03:11.402Z"
}
}curl "https://<your-domain>/api/market/depth?symbol=ETH&limit=5"
{
"bids": [{ "price": 3421.18, "qty": 12.4 }, ...],
"asks": [{ "price": 3421.19, "qty": 8.91 }, ...],
"source": "binance",
"ts": 1790345000000
}curl -X POST https://<your-domain>/api/signals/BTC-1790000000000/follow \
-H "Content-Type: application/json" \
-H "Cookie: <session cookie>" \
-d '{ "usdAmount": 500, "bracket": true, "dryRun": true }'
# dryRun: true -> { "preview": { "checks": [...], "canExecute": true, ... } }
# dryRun: false -> { "entry": {...}, "bracket": [...], "message": "Signal followed ..." }