Build powerful trading applications with the NovaTrace REST and WebSocket APIs.
Get up and running with the NovaTrace API in minutes. All endpoints use the base URL https://api.novatrace.com
GET /api/v3/ticker/price?symbol=BTCUSDT
// Response
{
"symbol": "BTCUSDT",
"price": "67432.50",
"timestamp": 1709312400000
}
POST /api/v3/order
Content-Type: application/json
X-CEX-APIKEY: your_api_key_here
{
"symbol": "BTCUSDT",
"side": "BUY",
"type": "LIMIT",
"timeInForce": "GTC",
"quantity": "0.01",
"price": "65000.00"
}
// Response
{
"orderId": 28374615,
"symbol": "BTCUSDT",
"status": "NEW",
"side": "BUY",
"type": "LIMIT",
"price": "65000.00",
"origQty": "0.01",
"executedQty": "0.00",
"transactTime": 1709312400123
}
Standard HTTP endpoints for account management, order placement, market data queries, and wallet operations. Supports JSON request/response format.
Real-time streaming data via persistent WebSocket connections. Subscribe to live price tickers, order book updates, trade streams, and account events.
Access candlestick/kline data, order book depth, recent trades, 24h statistics, and aggregate trade data for all supported trading pairs.
Query account balances, trade history, open orders, order history, and account status. All account endpoints require API key authentication.
Place, modify, and cancel orders. Supports market, limit, stop-limit, OCO, and trailing stop order types across spot and margin markets.
Manage deposits and withdrawals, query transaction history, generate deposit addresses, and check network status for all supported assets.
API rate limits are enforced per API key. Exceeding these limits will result in a 429 status code response. Limits reset on a rolling window basis.
Authenticated endpoints require an API key sent via the X-CEX-APIKEY header. Signed endpoints additionally require an HMAC SHA256 signature of the query parameters using your secret key.
import hashlib, hmac, time, requests
API_KEY = "your_api_key"
SECRET_KEY = "your_secret_key"
BASE_URL = "https://api.novatrace.com"
def signed_request(method, endpoint, params={}):
params["timestamp"] = int(time.time() * 1000)
query_string = "&".join(
[f"{k}={v}" for k, v in params.items()]
)
signature = hmac.new(
SECRET_KEY.encode(), query_string.encode(),
hashlib.sha256
).hexdigest()
params["signature"] = signature
headers = {"X-CEX-APIKEY": API_KEY}
response = requests.request(
method, f"{BASE_URL}{endpoint}",
params=params, headers=headers
)
return response.json()
# Get account info
account = signed_request("GET", "/api/v3/account")
# Place a limit order
order = signed_request("POST", "/api/v3/order", {
"symbol": "ETHUSDT",
"side": "BUY",
"type": "LIMIT",
"timeInForce": "GTC",
"quantity": "0.5",
"price": "3200.00"
})
Connect to the WebSocket endpoint at wss://stream.novatrace.com/ws for real-time data feeds.
const ws = new WebSocket("wss://stream.novatrace.com/ws/btcusdt@trade");
ws.onmessage = (event) => {
const trade = JSON.parse(event.data);
console.log(
`Price: ${trade.p} | Qty: ${trade.q} | Side: ${trade.m ? "SELL" : "BUY"}`
);
};
// Available streams:
// <symbol>@trade — Real-time trades
// <symbol>@depth — Order book updates
// <symbol>@kline_1m — 1-minute candlesticks
// <symbol>@ticker — 24hr ticker stats
// <symbol>@miniTicker — Mini ticker
Our developer support team can help with integration questions, rate limit increases, and enterprise API access.
Contact Developer Support