Skip to main content

Symbol Aliases

Both the FAPI and the native API normalize symbol inputs, so bots migrating from venues with different naming (Hyperliquid, TradingView, FTX-style) work without a mapping table.

Normalization

InputNormalized
BTCUSDTBTCUSDT
btcusdtBTCUSDT
BTC-USDTBTCUSDT
BTC-USDBTCUSDT
BTC/USDT, BTC/USDBTCUSDT
BTC_USDT, BTC_USDBTCUSDT

Rules: uppercase; strip -, /, _; a …USD suffix is treated as …USDT. Responses always use the canonical BTCUSDT form, whichever alias you sent. WebSocket channel names (ticker:btc-usd) are normalized the same way, but the subscribed acknowledgement echoes what you sent.

Binance itself accepts only BTCUSDT; if you want identical behaviour across venues, send the canonical form.

Native API request bodies

Native POST /api/v1/orders and trigger-order bodies historically use the hyphenated form ("symbol": "BTC-USDT", "market_symbol": "BTC-USDT"); both forms are accepted there too and stored canonically.

Unknown symbols

A symbol that normalizes to something not present in this deployment's market configuration returns -1121 Invalid symbol on FAPI and 404 INVALID_MARKET on the native market endpoints. The tradeable list is deployment-specific — read GET /fapi/v1/exchangeInfo or GET /api/v1/markets at startup rather than hard-coding it.

Native symbol metadata

GET /api/v1/markets returns symbol, base_asset, quote_asset, 24 h stats, rank, leverage (max) and the display sort_order. Markets are added, paused, resumed and delisted dynamically by operations; status on exchangeInfo (TRADING / HALT / CLOSE) is the authoritative tradability flag.