binance-api-node-gjs
binance-api-node

A complete API wrapper for the Binance API.
Note: This wrapper uses Promises, if they are not supported in your environment, you might want to add a polyfill for them.
For PRs or issues, head over to the source repository.
Installation
yarn add binance-api-node
Getting started
Import the module and create a new client. Passing api keys is optional only if you don't plan on doing authenticated calls. You can create an api key here.
import Binance from 'binance-api-node'
const client = Binance()
// Authenticated client, can make signed calls
const client2 = Binance({
apiKey: 'xxx',
apiSecret: 'xxx',
getTime: xxx,
})
client.time().then(time => console.log(time))
If you do not have an appropriate babel config, you will need to use the basic commonjs requires.
const Binance = require('binance-api-node').default
Every REST method returns a Promise, making this library async await ready.
Following examples will use the await form, which requires some configuration you will have to lookup.
Table of Contents
- Init
- Public REST Endpoints
- Futures Public REST Endpoints
- Authenticated REST Endpoints
- order
- orderTest
- orderOco
- getOrder
- getOrderOco
- cancelOrder
- cancelOrderOco
- cancelOpenOrders
- openOrders
- allOrders
- allOrdersOCO
- accountInfo
- myTrades
- dailyAccountSnapshot
- tradesHistory
- depositHistory
- withdrawHistory
- withdraw
- depositAddress
- tradeFee
- capitalConfigs
- universalTransfer
- universalTransferHistory
- assetDetail
- getBnbBurn
- setBnbBurn
- dustLog
- dustTransfer
- accountCoins
- lendingAccount
- fundingWallet
- apiPermission
- Margin
- Futures Authenticated REST Endpoints
- Websockets
- Futures Websockets
- Common
- ErrorCodes
Init
| Param | Type | Required | Info |
|---|---|---|---|
| apiKey | String | false | Required when making private calls |
| apiSecret | String | false | Required when making private calls |
| getTime | Function | false | Time generator, defaults to () => Date.now() |
| httpBase | String | false | Changes the default endpoint |
| httpFutures | String | false | Changes the default endpoint |
| wsBase | String | false | Changes the default endpoint |
| wsFutures | String | false | Changes the default endpoint |
Public REST Endpoints
ping
Test connectivity to the API.
console.log(await client.ping())
time
Test connectivity to the Rest API and get the current server time.
console.log(await client.time())
Output
1508478457643
exchangeInfo
Get the current exchange trading rules and symbol information. You can optionally pass a symbol to only retrieve info of this specific one.
console.log(await client.exchangeInfo())
| Param | Type | Required | Default |
|---|---|---|---|
| symbol | String | false |
Output
{
"timezone": "UTC",
"serverTime": 1508631584636,
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 1200
},
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 1,
"limit": 10
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 100000
}
],
"exchangeFilters": [],
"symbols": [{
"symbol": "ETHBTC",
"status": "TRADING",
"baseAsset": "ETH",
"baseAssetPrecision": 8,
"quoteAsset": "BTC",
"quotePrecision": 8,
"orderTypes": ["LIMIT", "MARKET"],
"icebergAllowed": false,
"filters": [{
"filterType": "PRICE_FILTER",
"minPrice": "0.00000100",
"maxPrice": "100000.00000000",
"tickSize": "0.00000100"
}, {
"filterType": "LOT_SIZE",
"minQty": "0.00100000",
"maxQty": "100000.00000000",
"stepSize": "0.00100000"
}, {
"filterType": "MIN_NOTIONAL",
"minNotional": "0.00100000"
}]
}]
}
book
Get the order book for a symbol.
console.log(await client.book({ symbol: 'ETHBTC' }))
| Param | Type | Required | Default |
|---|---|---|---|
| symbol | String | true | |
| limit | Number | false | 100 |
Output
{
lastUpdateId: 17647759,
asks:
[
{ price: '0.05411500', quantity: '5.55000000' },
{ price: '0.05416700', quantity: '11.80100000' }
],
bids:
[
{ price: '0.05395500', quantity: '2.70000000' },
{ price: '0.05395100', quantity: '11.84100000' }
]
}
candles
Retrieves Candlestick for a symbol. Candlesticks are uniquely identified by their open time.
console.log(await client.candles({ symbol: 'ETHBTC' }))
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
| symbol | String | true | ||
| interval | String | false | 5m |
1m, 3m, 5m, 15m, 30m, 1h, 2h,4h, 6h, 8h, 12h, 1d, 3d, 1w, 1M |
| limit | Number | false | 500 |
Max 1000 |
| startTime | Number | false | ||
| endTime | Number | false |
Output
;[
{
openTime: 1508328900000,
open: '0.05655000',
high: '0.05656500',
low: '0.05613200',
close: '0.05632400',
volume: '68.88800000',
closeTime: 1508329199999,
quoteAssetVolume: '2.29500857',
trades: 85,
baseAssetVolume: '40.61900000',
},
]
aggTrades
Get compressed, aggregate trades. Trades that fill at the time, from the same order, with the same price will have the quantity aggregated.
console.log(await client.aggTrades({ symbol: 'ETHBTC' }))
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
| symbol | String | true | ||
| fromId | String | false | ID to get aggregate trades from INCLUSIVE. | |
| startTime | Number | false | Timestamp in ms to get aggregate trades from INCLUSIVE. | |
| endTime | Number | false | Timestamp in ms to get aggregate trades until INCLUSIVE. | |
| limit | Number | false | 500 |
Max 500 |
Note: If both startTime and endTime are sent, limit should not be sent AND the distance between startTime and endTime must be less than 24 hours.
Note: If frondId, startTime, and endTime are not sent, the most recent aggregate trades will be returned.
Output
;[
{
aggId: 2107132,
symbol: 'ETHBTC',
price: '0.05390400',
quantity: '1.31000000',
firstId: 2215345,
lastId: 2215345,
timestamp: 1508478599481,
isBuyerMaker: true,
wasBestPrice: true,
},
]
trades
Get recent trades of a symbol.
console.log(await client.trades({ symbol: 'ETHBTC' }))
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
| symbol | String | true | ||
| limit | Number | false | 500 |
Max 500 |
Output
;[
{
id: 28457,
price: '4.00000100',
qty: '12.00000000',
time: 1499865549590,
isBuyerMaker: true,
isBestMatch: true,
},
]
dailyStats
24 hour price change statistics, not providing a symbol will return all tickers and is resource-expensive.
console.log(await client.dailyStats({ symbol: 'ETHBTC' }))
| Param | Type | Required |
|---|---|---|
| symbol | String | false |
Output
{
symbol: 'ETHBTC',
priceChange: '-0.00112000',
priceChangePercent: '-1.751',
weightedAvgPrice: '0.06324784',
prevClosePrice: '0.06397400',
lastPrice: '0.06285500',
lastQty: '0.63500000',
bidPrice: '0.06285500',
bidQty: '0.81900000',
askPrice: '0.06291900',
askQty: '2.93800000',
openPrice: '0.06397500',
highPrice: '0.06419100',
lowPrice: '0.06205300',
volume: '126240.37200000',
quoteVolume: '7984.43091340',
openTime: 1521622289427,
closeTime: 1521708689427,
firstId: 45409308, // First tradeId
lastId: 45724293, // Last tradeId
count: 314986 // Trade count
}
avgPrice
Current average price for a symbol.
console.log(await client.avgPrice({ symbol: 'ETHBTC' }))
| Param | Type | Required |
|---|---|---|
| symbol | String | true |
Output
{
"mins": 5,
"price": "9.35751834"
}
prices
Latest price for a symbol, not providing the symbol will return prices for all symbols.
console.log(await client.prices())
| Param | Type | Required |
|---|---|---|
| symbol | String | false |
Output
{
ETHBTC: '0.05392500',
LTCBTC: '0.01041100',
...
}
allBookTickers
Best price/qty on the order book for all symbols.
console.log(await client.allBookTickers())
Output
{
DASHBTC: {
symbol: 'DASHBTC',
bidPrice: '0.04890400',
bidQty: '0.74100000',
askPrice: '0.05230000',
askQty: '0.79900000'
},
DASHETH: {
symbol: 'DASHETH',
bidPrice: '0.89582000',
bidQty: '0.63300000',
askPrice: '1.02328000',
askQty: '0.99900000'
}
...
}
Futures Public REST Endpoints
futures ping
Test connectivity to the API.
console.log(await client.futuresPing())
futures time
Test connectivity to the Rest API and get the current server time.
console.log(await client.futuresTime())
Output
1508478457643
futures exchangeInfo
Get the current exchange trading rules and symbol information.
console.log(await client.futuresExchangeInfo())
Output
{
"timezone": "UTC",
"serverTime": 1508631584636,
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 1200
},
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 1,
"limit": 10
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 100000
}
],
"exchangeFilters": [],
"symbols": [...]
}
futures book
Get the order book for a symbol.
console.log(await client.futuresBook({ symbol: 'BTCUSDT' }))
| Param | Type | Required | Default |
|---|---|---|---|
| symbol | String | true | |
| limit | Number | false | 100 |
Output
{
lastUpdateId: 17647759,
asks:
[
{ price: '8000.05411500', quantity: '54.55000000' },
{ price: '8000.05416700', quantity: '1111.80100000' }
],
bids:
[
{ price: '8000.05395500', quantity: '223.70000000' },
{ price: '8000.05395100', quantity: '1134.84100000' }
]
}
futures candles
Retrieves Candlestick for a symbol. Candlesticks are uniquely identified by their open time.
console.log(await client.futuresCandles({ symbol: 'BTCUSDT' }))
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
| symbol | String | true | ||
| interval | String | false | 5m |
1m, 3m, 5m, 15m, 30m, 1h, 2h,4h, 6h, 8h, 12h, 1d, 3d, 1w, 1M |
| limit | Number | false | 500 |
Max 1000 |
| startTime | Number | false | ||
| endTime | Number | false |
Output
;[
{
openTime: 1508328900000,
open: '0.05655000',
high: '0.05656500',
low: '0.05613200',
close: '0.05632400',
volume: '68.88800000',
closeTime: 1508329199999,
quoteAssetVolume: '2.29500857',
trades: 85,
baseAssetVolume: '40.61900000',
},
]
futures aggTrades
Get compressed, aggregate trades. Trades that fill at the time, from the same order, with the same price will have the quantity aggregated.
console.log(await client.futuresAggTrades({ symbol: 'ETHBTC' }))
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
| symbol | String | true | ||
| fromId | String | false | ID to get aggregate trades from INCLUSIVE. | |
| startTime | Number | false | Timestamp in ms to get aggregate trades from INCLUSIVE. | |
| endTime | Number | false | Timestamp in ms to get aggregate trades until INCLUSIVE. | |
| limit | Number | false | 500 |
Max 500 |
Note: If both startTime and endTime are sent, limit should not be sent AND the distance between startTime and endTime must be less than 24 hours.
Note: If frondId, startTime, and endTime are not sent, the most recent aggregate trades will be returned.
Output
;[
{
aggId: 2107132,
price: '0.05390400',
quantity: '1.31000000',
firstId: 2215345,
lastId: 2215345,
timestamp: 1508478599481,
isBuyerMaker: true,
wasBestPrice: true,
},
]
futures trades
Get recent trades of a symbol.
console.log(await client.futuresTrades({ symbol: 'ETHBTC' }))
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
| symbol | String | true | ||
| limit | Number | false | 500 |
Max 500 |
Output
;[
{
id: 28457,
price: '4.00000100',
qty: '12.00000000',
time: 1499865549590,
isBuyerMaker: true,
isBestMatch: true,
},
]
futures dailyStats
24 hour price change statistics, not providing a symbol will return all tickers and is resource-expensive.
console.log(await client.futuresDailyStats({ symbol: 'ETHBTC' }))
| Param | Type | Required |
|---|---|---|
| symbol | String | false |
Output
{
symbol: 'BTCUSDT',
priceChange: '-0.00112000',
priceChangePercent: '-1.751',
weightedAvgPrice: '0.06324784',
prevClosePrice: '0.06397400',
lastPrice: '0.06285500',
lastQty: '0.63500000',
bidPrice: '0.06285500',
bidQty: '0.81900000',
askPrice: '0.06291900',
askQty: '2.93800000',
openPrice: '0.06397500',
highPrice: '0.06419100',
lowPrice: '0.06205300',
volume: '126240.37200000',
quoteVolume: '7984.43091340',
openTime: 1521622289427,
closeTime: 1521708689427,
firstId: 45409308, // First tradeId
lastId: 45724293, // Last tradeId
count: 314986 // Trade count
}
futures prices
Latest price for all symbols.
console.log(await client.futuresPrices())
Output
{
BTCUSDT: '8590.05392500',
ETHUSDT: '154.1100',
...
}
futures allBookTickers
Best price/qty on the order book for all symbols.
console.log(await client.futuresAllBookTickers())
Output
{
BTCUSDT: {
symbol: 'BTCUSDT',
bidPrice: '0.04890400',
bidQty: '0.74100000',
askPrice: '0.05230000',
askQty: '0.79900000'
},
ETHUSDT: {
symbol: 'ETHUSDT',
bidPrice: '0.89582000',
bidQty: '0.63300000',
askPrice: '1.02328000',
askQty: '0.99900000'
}
...
}
futures markPrice
Mark Price and Funding Rate.
console.log(await client.futuresMarkPrice())
Output
{
"symbol": "BTCUSDT",
"markPrice": "11012.80409769",
"lastFundingRate": "-0.03750000",
"nextFundingTime": 1562569200000,
"time": 1562566020000
}
futures AllForceOrders
Get all Liquidation Orders.
console.log(await client.futuresAllForceOrders())
| Param | Type | Required |
|---|---|---|
| symbol | String | false |
| startTime | Long | false |
| endTime | Long | false |
| limit | Long | false |
Output
;[
{
symbol: 'BTCUSDT', // SYMBOL
price: '7918.33', // ORDER_PRICE
origQty: '0.014', // ORDER_AMOUNT
executedQty: '0.014', // FILLED_AMOUNT
avragePrice: '7918.33', // AVG_PRICE
status: 'FILLED', // STATUS
timeInForce: 'IOC', // TIME_IN_FORCE
type: 'LIMIT',
side: 'SELL', // DIRECTION
time: 1568014460893,
},
]
Authenticated REST Endpoints
Note that for all authenticated endpoints, you can pass an extra parameter
useServerTime set to true in order to fetch the server time before making
the request.
order
Creates a new order.
console.log(
await client.order({
symbol: 'XLMETH',
side: 'BUY',
quantity: '100',
price: '0.0002',
}),
)
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
| symbol | String | true | ||
| side | String | true | BUY,SELL |
|
| type | String | false | LIMIT |
LIMIT, MARKET |
| quantity | String | true | ||
| price | String | true | Optional for MARKET orders |
|
| timeInForce | String | false | GTC |
FOK, GTC, IOC |
| newClientOrderId | String | false | A unique id for the order. Automatically generated if not sent. | |
| stopPrice | Number | false | Used with stop orders | |
| activationPrice | Number | false | Used with TRAILING_STOP_MARKET |
|
| callbackRate | Number | false | Used with TRAILING_STOP_MARKET |
|
| newOrderRespType | String | false | RESULT |
Returns more complete info of the order. ACK, RESULT, or FULL |
| icebergQty | Number | false | Used with iceberg orders | |
| recvWindow | Number | false |
Additional mandatory parameters based on type:
| Type | Additional mandatory parameters |
|---|---|
LIMIT |
timeInForce, quantity, price |
MARKET |
quantity |
STOP |
quantity, price, stopPrice |
STOP_LOSS_LIMIT |
timeInForce, quantity, price, stopPrice |
STOP_LOSS_MARKET |
stopPrice |
TAKE_PROFIT |
quantity, price, stopPrice |
TAKE_PROFIT_MARKET |
stopPrice |
STOP_PROFIT_LIMIT |
timeInForce, quantity, price, stopPrice |
LIMIT_MAKER |
quantity, price |
TRAILING_STOP_MARKET |
callbackRate, activationPrice |
LIMIT_MAKERareLIMITorders that will be rejected if they would immediately match and trade as a taker.STOPandTAKE_PROFITwill execute aMARKETorder when thestopPriceis reached.- Any
LIMITorLIMIT_MAKERtype order can be made an iceberg order by sending anicebergQty. - Any order with an
icebergQtyMUST havetimeInForceset toGTC.
Output
{
symbol: 'XLMETH',
orderId: 1740797,
clientOrderId: '1XZTVBTGS4K1e',
transactTime: 1514418413947,
price: '0.00020000',
origQty: '100.00000000',
executedQty: '0.00000000',
status: 'NEW',
timeInForce: 'GTC',
type: 'LIMIT',
side: 'BUY'
}
orderTest
Test new order creation and signature/recvWindow. Creates and validates a new order but does not send it into the matching engine.
Same API as above, but does not return any output on success.
orderOco
Creates a new OCO order.
console.log(
await client.orderOco({
symbol: 'XLMETH',
side: 'SELL',
quantity: 100,
price: 0.0002,
stopPrice: 0.0001,
stopLimitPrice: 0.0001,
}),
)
| Param | Type | Required | Description |
|---|---|---|---|
| symbol | String | true | |
| listClientOrderId | String | false | A unique Id for the entire orderList |
| side | String | true | BUY,SELL |
| quantity | Number | true | |
| limitClientOrderId | String | false | A unique Id for the limit order |
| price | Number | true | |
| limitIcebergQty | Number | false | Used to make the LIMIT_MAKER leg an iceberg order. |
| stopClientOrderId | String | false | A unique Id for the stop loss/stop loss limit leg |
| stopPrice | Number | true | |
| stopLimitPrice | Number | false | If provided, stopLimitTimeInForce is required. |
| stopIcebergQty | Number | false | Used with STOP_LOSS_LIMIT leg to make an iceberg order. |
| stopLimitTimeInForce | String | false | FOK, GTC, IOC |
| newOrderRespType | String | false | Returns more complete info of the order. ACK, RESULT, or FULL |
| recvWindow | Number | false | The value cannot be greater than 60000 |
Additional Info:
- Price Restrictions:
SELL: Limit Price > Last Price > Stop PriceBUY: Limit Price < Last Price < Stop Price
- Quantity Restrictions:
- Both legs must have the same quantity.
ICEBERGquantities however do not have to be the same
Output
{
"orderListId": 0,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "JYVpp3F0f5CAG15DhtrqLp",
"transactionTime": 1514418413947,
"symbol": "XLMETH",
"orders": [
{
"symbol": "XLMETH",
"orderId": 1740797,
"clientOrderId": "1XZTVBTGS4K1e"
},
{
"symbol": "XLMETH",
"orderId": 1740798,
"clientOrderId": "1XZTVBTGS4K1f"
}
],
"orderReports": [
{
"symbol": "XLMETH",
"orderId": 1740797,
"orderListId": 0,
"clientOrderId": "1XZTVBTGS4K1e",
"transactTime": 1514418413947,
"price": "0.000000",
"origQty": "100",
"executedQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "STOP_LOSS",
"side": "SELL",
"stopPrice": "0.0001"
},
{
"symbol": "XLMETH",
"orderId": 1740798,
"orderListId": 0,
"clientOrderId": "1XZTVBTGS4K1f",
"transactTime": 1514418413947,
"price": "0.0002",
"origQty": "100",
"executedQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "SELL"
}
]
}
getOrder
Check an order's status.
console.log(
await client.getOrder({
symbol: 'BNBETH',
orderId: 50167927,
}),
)
| Param | Type | Required | Description |
|---|---|---|---|
| symbol | String | true | |
| orderId | Number | true | Not required if origClientOrderId is used |
| origClientOrderId | String | false | |
| recvWindow | Number | false |
Output
{
clientOrderId: 'NkQnNkdBV1RGjUALLhAzNy',
cummulativeQuoteQty: '0.16961580',
executedQty: '3.91000000',
icebergQty: '0.00000000',
isWorking: true,
orderId: 50167927,
origQty: '3.91000000',
price: '0.04338000',
side: 'SELL',
status: 'FILLED',
stopPrice: '0.00000000',
symbol: 'BNBETH',
time: 1547075007821,
timeInForce: 'GTC',
type: 'LIMIT',
updateTime: 1547075016737
}
getOrderOco
Retrieves a specific OCO based on provided optional parameters
console.log(
await client.getOrderOco({
orderListId: 27,
}),
)
| Param | Type | Required | Description |
|---|---|---|---|
| orderListId | Number | true | Not required if listClientOrderId is used |
| listClientOrderId | String | false | |
| recvWindow | Number | false |
Output
{
orderListId: 27,
contingencyType: 'OCO',
listStatusType: 'EXEC_STARTED',
listOrderStatus: 'EXECUTING',
listClientOrderId: 'h2USkA5YQpaXHPIrkd96xE',
transactionTime: 1565245656253,
symbol: 'LTCBTC',
orders: [
{
symbol: 'LTCBTC',
orderId: 4,
clientOrderId: 'qD1gy3kc3Gx0rihm9Y3xwS'
},
{
symbol: 'LTCBTC',
orderId: 5,
clientOrderId: 'ARzZ9I00CPM8i3NhmU9Ega'
}
]
}
cancelOrder
Cancels an active order.
console.log(
await client.cancelOrder({
symbol: 'ETHBTC',
orderId: 1,
}),
)
| Param | Type | Required | Description |
|---|---|---|---|
| symbol | String | true | |
| orderId | Number | true | Not required if origClientOrderId is used |
| origClientOrderId | String | false | |
| newClientOrderId | String | false | Used to uniquely identify this cancel. Automatically generated by default. |
| recvWindow | Number | false |
Output
{
symbol: 'ETHBTC',
origClientOrderId: 'bnAoRHgI18gRD80FJmsfNP',
orderId: 1,
clientOrderId: 'RViSsQPTp1v3WmLYpeKT11'
}
cancelOrderOco
Cancel an entire Order List.
console.log(
await client.cancelOrderOco({
symbol: 'ETHBTC',
orderListId: 0,
}),
)
| Param | Type | Required | Description |
|---|---|---|---|
| symbol | String | true | |
| orderListId | Number | true | Not required if listClientOrderId is used |
| listClientOrderId | String | false | |
| newClientOrderId | String | false | Used to uniquely identify this cancel. Automatically generated by default. |
| recvWindow | Number | false |
Output
{
orderListId: 0,
contingencyType: 'OCO',
listStatusType: 'ALL_DONE',
listOrderStatus: 'ALL_DONE',
listClientOrderId: 'C3wyj4WVEktd7u9aVBRXcN',
transactionTime: 1574040868128,
symbol: 'LTCBTC',
orders: [
{
symbol: 'LTCBTC',
orderId: 2,
clientOrderId: 'pO9ufTiFGg3nw2fOdgeOXa'
},
{
symbol: 'LTCBTC',
orderId: 3,
clientOrderId: 'TXOvglzXuaubXAaENpaRCB'
}
],
orderReports: [
{
symbol: 'LTCBTC',
origClientOrderId: 'pO9ufTiFGg3nw2fOdgeOXa',
orderId: 2,
orderListId: 0,
clientOrderId: 'unfWT8ig8i0uj6lPuYLez6',
price: '1.00000000',
origQty: '10.00000000',
executedQty: '0.00000000',
cummulativeQuoteQty: '0.00000000',
status: 'CANCELED',
timeInForce: 'GTC',
type: 'STOP_LOSS_LIMIT',
side: 'SELL',
stopPrice: '1.00000000'
},
{
symbol: 'LTCBTC',
origClientOrderId: 'TXOvglzXuaubXAaENpaRCB',
orderId: 3,
orderListId: 0,
clientOrderId: 'unfWT8ig8i0uj6lPuYLez6',
price: '3.00000000',
origQty: '10.00000000',
executedQty: '0.00000000',
cummulativeQuoteQty: '0.00000000',
status: 'CANCELED',
timeInForce: 'GTC',
type: 'LIMIT_MAKER',
side: 'SELL'
}
]
}
cancelOpenOrders
Cancels all active orders on a symbol. This includes OCO orders.
console.log(
await client.cancelOpenOrders({
symbol: 'ETHBTC'
}),
)
| Param | Type | Required |
|---|---|---|
| symbol | String | true |
Output
[
{
symbol: 'ETHBTC',
origClientOrderId: 'bnAoRHgI18gRD80FJmsfNP',
orderId: 1,
clientOrderId: 'RViSsQPTp1v3WmLYpeKT11'
},
{
symbol: 'ETHBTC',
origClientOrderId: 'IDbzcGmfwSCKihxILK1snu',
orderId: 2,
clientOrderId: 'HKFcuWAm9euMgRuwVGR8CL'
}
]
openOrders
Get all open orders on a symbol.
console.log(
await client.openOrders({
symbol: 'XLMBTC',
}),
)
| Param | Type | Required |
|---|---|---|
| symbol | String | true |
| recvWindow | Number | false |
Output
;[
{
symbol: 'XLMBTC',
orderId: 11271740,
clientOrderId: 'ekHkROfW98gBN80LTfufQZ',
price: '0.00001081',
origQty: '1331.00000000',
executedQty: '0.00000000',
status: 'NEW',
timeInForce: 'GTC',
type: 'LIMIT',
side: 'BUY',
stopPrice: '0.00000000',
icebergQty: '0.00000000',
time: 1522682290485,
isWorking: true,
},
]
allOrders
Get all account orders on a symbol; active, canceled, or filled.
console.log(
await client.allOrders({
symbol: 'ETHBTC',
}),
)
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
| symbol | String | true | ||
| orderId | Number | false | If set, it will get orders >= that orderId. Otherwise most recent orders are returned. | |
| limit | Number | false | 500 |
Max 500 |
| recvWindow | Number | false |
Output
;[
{
symbol: 'ENGETH',
orderId: 191938,
clientOrderId: '1XZTVBTGS4K1e',
price: '0.00138000',
origQty: '1.00000000',
executedQty: '1.00000000',
status: 'FILLED',
timeInForce: 'GTC',
type: 'LIMIT',
side: 'SELL',
stopPrice: '0.00000000',
icebergQty: '0.00000000',
time: 1508611114735,
isWorking: true,
},
]
allOrdersOCO
Retrieves all OCO based on provided optional parameters
console.log(
await client.allOrdersOCO({
timestamp: 1565245913483,
}),
)
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
| timestamp | Number | true | ||
| startTime | Number | false | ||
| endTime | Number | false | ||
| limit | Integer | false | 500 |
Max 1000 |
| recvWindow | Number | false | The value cannot be greater than 60000 | |
| formId | Number | false | If supplied, neither startTime or endTime can be provided |
Output
;[
{
"orderListId": 29,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "amEEAXryFzFwYF1FeRpUoZ",
"transactionTime": 1565245913483,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 4,
"clientOrderId": "oD7aesZqjEGlZrbtRpy5zB"
},
{
"symbol": "LTCBTC",
"orderId": 5,
"clientOrderId": "Jr1h6xirOxgeJOUuYQS7V3"
}
]
},
{
"orderListId": 28,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "hG7hFNxJV6cZy3Ze4AUT4d",
"transactionTime": 1565245913407,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 2,
"clientOrderId": "j6lFOfbmFMRjTYA7rRJ0LP"
},
{
"symbol": "LTCBTC",
"orderId": 3,
"clientOrderId": "z0KCjOdditiLS5ekAFtK81"
}
]
}
]
accountInfo
Get current account information.
console.log(await client.accountInfo())
| Param | Type | Required |
|---|---|---|
| recvWindow | Number | false |
Output
{
makerCommission: 10,
takerCommission: 10,
buyerCommission: 0,
sellerCommission: 0,
canTrade: true,
canWithdraw: true,
canDeposit: true,
balances: [
{ asset: 'BTC', free: '0.00000000', locked: '0.00000000' },
{ asset: 'LTC', free: '0.00000000', locked: '0.00000000' },
]
}
myTrades
Get trades for the current authenticated account and symbol.
console.log(
await client.myTrades({
symbol: 'ETHBTC',
}),
)
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
| symbol | String | true | ||
| limit | Number | false | 500 |
Max 500 |
| fromId | Number | false | TradeId to fetch from. Default gets most recent trades. | |
| recvWindow | Number | false |
Output
;[
{
id: 9960,
orderId: 191939,
price: '0.00138000',
qty: '10.00000000',
commission: '0.00001380',
commissionAsset: 'ETH',
time: 1508611114735,
isBuyer: false,
isMaker: false,
isBestMatch: true,
},
]
dailyAccountSnapshot
Get asset snapshot for the current authenticated account.
console.log(
await client.accountSnapshot({
"type": "SPOT"
});
)
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
| type | String | true | ||
| startTime | Number | false | ||
| endTime | Number | false | ||
| limit | Number | false | 5 |
min 5, max 30, default 5 |
| recvWindow | Number | false |
Output
{
"code":200, // 200 for success; others are error codes
"msg":"", // error message
"snapshotVos":[
{
"data":{
"balances":[
{
"asset":"BTC",
"free":"0.09905021",
"locked":"0.00000000"
},
{
"asset":"USDT",
"free":"1.89109409",
"locked":"0.00000000"
}
],
"totalAssetOfBtc":"0.09942700"
},
"type":"spot",
"updateTime":1576281599000
}
]
}
tradesHistory
Lookup symbol trades history.
console.log(await client.tradesHistory({ symbol: 'ETHBTC' }))
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
| symbol | String | true | ||
| limit | Number | false | 500 |
Max 500 |
| fromId | Number | false | null |
TradeId to fetch from. Default gets most recent trades. |
Output
;[
{
id: 28457,
price: '4.00000100',
qty: '12.00000000',
time: 1499865549590,
isBuyerMaker: true,
isBestMatch: true,
},
]
withdrawHistory
Get the account withdraw history.
console.log(await client.withdrawHistory())
| Param | Type | Required | Description |
|---|---|---|---|
| asset | String | false | |
| status | Number | false | 0 (0: Email Sent, 1: Cancelled 2: Awaiting Approval, 3: Rejected, 4: Processing, 5: Failure, 6: Completed) |
| offset | Number | false | |
| limit | Number | false | |
| startTime | Number | false | |
| endTime | Number | false | |
| recvWindow | Number | false |
Output
[
{
"address": "0x94df8b352de7f46f64b01d3666bf6e936e44ce60",
"amount": "8.91000000",
"applyTime": "2019-10-12 11:12:02",
"coin": "USDT",
"id": "b6ae22b3aa844210a7041aee7589627c",
"withdrawOrderId": "WITHDRAWtest123", // will not be returned if there's no withdrawOrderId for this withdraw.
"network": "ETH",
"transferType": 0, // 1 for internal transfer, 0 for external transfer
"status": 6,
"txId": "0xb5ef8c13b968a406cc62a93a8bd80f9e9a906ef1b3fcf20a2e48573c17659268"
},
{
"address": "1FZdVHtiBqMrWdjPyRPULCUceZPJ2WLCsB",
"amount": "0.00150000",
"applyTime": "2019-09-24 12:43:45",
"coin": "BTC",
"id": "156ec387f49b41df8724fa744fa82719",
"network": "BTC",
"status": 6,
"txId": "60fd9007ebfddc753455f95fafa808c4302c836e4d1eebc5a132c36c1d8ac354"
}
]
withdraw
Triggers the withdraw process (untested for now).
console.log(
await client.withdraw({
asset: 'ETH',
address: '0xfa97c22a03d8522988c709c24283c0918a59c795',
amount: 100,
}),
)
| Param | Type | Required | Description |
|---|---|---|---|
| asset | String | true | |
| address | String | true | |
| amount | Number | true | |
| name | String | false | Description of the address |
| recvWindow | Number | false |
Output
{
"id":"7213fea8e94b4a5593d507237e5a555b"
}
depositAddress
Fetch deposit address with network.
console.log(await client.depositAddress({ coin: 'NEO' }))
| Param | Type | Required | Description |
|---|---|---|---|
| coin | String | true | The coin name |
| network | String | false | The network name |
Output
{
address: 'AM6ytPW78KYxQCmU2pHYGcee7GypZ7Yhhc',
coin: 'NEO',
tag: '',
url: 'https://neoscan.io/address/AM6ytPW78KYxQCmU2pHYGcee7GypZ7Yhhc'
}
depositHistory
Fetch deposit address with network.
console.log(await client.depositHistory())
| Param | Type | Required | Description |
|---|---|---|---|
| coin | String | false | The coin name |
| status | Number | false | 0 (0:pending, 6: credited but cannot withdraw, 1:success) |
| startTime | Number | false | Default: 90 days from current timestamp |
| endTime | Number | false | Default: present timestamp |
| offset | Number | false | default: 0 |
| limit | Number | false | |
| recvWindow | Number | false |
Output
[
{
"amount": "0.00999800",
"coin": "PAXG",
"network": "ETH",
"status": 1,
"address": "0x788cabe9236ce061e5a892e1a59395a81fc8d62c",
"addressTag": "",
"txId": "0xaad4654a3234aa6118af9b4b335f5ae81c360b2394721c019b5d1e75328b09f3",
"insertTime": 1599621997000,
"transferType": 0,
"confirmTimes": "12/12"
},
{
"amount": "0.50000000",
"coin": "IOTA",
"network": "IOTA",
"status": 1,
"address": "SIZ9VLMHWATXKV99LH99CIGFJFUMLEHGWVZVNNZXRJJVWBPHYWPPBOSDORZ9EQSHCZAMPVAPGFYQAUUV9DROOXJLNW",
"addressTag": "",
"txId": "ESBFVQUTPIWQNJSPXFNHNYHSQNTGKRVKPRABQWTAXCDWOAKDKYWPTVG9BGXNVNKTLEJGESAVXIKIZ9999",
"insertTime": 1599620082000,
"transferType": 0,
"confirmTimes": "1/1"
}
]
tradeFee
Retrieve the account trade Fee per asset.
console.log(await client.tradeFee())
Output
[
{
"symbol": "ADABNB",
"makerCommission": 0.9000,
"takerCommission": 1.0000
},
{
"symbol": "BNBBTC",
"makerCommission": 0.3000,
"takerCommission": 0.3000
}
]
capitalConfigs
Get information of coins (available for deposit and withdraw) for user.
console.log(await client.capitalConfigs())
Output
[
{
'coin': 'CTR',
'depositAllEnable': false,
'free': '0.00000000',
'freeze': '0.00000000',
'ipoable': '0.00000000',
'ipoing': '0.00000000',
'isLegalMoney': false,
'locked': '0.00000000',
'name': 'Centra',
'networkList': [
{
'addressRegex': '^(0x)[0-9A-Fa-f]{40}
universalTransfer
You need to enable Permits Universal Transfer option for the api key which requests this endpoint.
console.log(await client.universalTransfer({ type: 'MAIN_C2C', asset: 'USDT', amount: '1000' }))
| Param | Type | Required | Description |
|---|---|---|---|
| type | String | true | |
| asset | String | true | |
| amount | String | true | |
| recvWindow | Number | false |
Output
{
tranId:13526853623
}
universalTransferHistory
console.log(await client.universalTransferHistory({ type: 'MAIN_C2C' }))
| Param | Type | Required | Description |
|---|---|---|---|
| type | String | true | |
| startTime | Number | false | |
| endTime | Number | false | |
| current | Number | false | Default 1 |
| size | Number | false | Default 10, Max 100 |
| recvWindow | Number | false |
Output
{
"total": 2,
"rows": [
{
"asset":"USDT",
"amount":"1",
"type":"MAIN_C2C"
"status": "CONFIRMED",
"tranId": 11415955596,
"timestamp":1544433328000
},
{
"asset":"USDT",
"amount":"2",
"type":"MAIN_C2C",
"status": "CONFIRMED",
"tranId": 11366865406,
"timestamp":1544433328000
}
]
}
assetDetail
console.log(await client.assetDetail())
| Param | Type | Required | Description |
|---|---|---|---|
| recvWindow | Number | false |
Output
{
"CTR": {
"minWithdrawAmount": "70.00000000", //min withdraw amount
"depositStatus": false,//deposit status (false if ALL of networks' are false)
"withdrawFee": 35, // withdraw fee
"withdrawStatus": true, //withdraw status (false if ALL of networks' are false)
"depositTip": "Delisted, Deposit Suspended" //reason
},
"SKY": {
"minWithdrawAmount": "0.02000000",
"depositStatus": true,
"withdrawFee": 0.01,
"withdrawStatus": true
}
}
getBnbBurn
console.log(await client.getBnbBurn())
| Param | Type | Required | Description |
|---|---|---|---|
| recvWindow | Number | false | No more than 60000 |
Output
{
"spotBNBBurn":true,
"interestBNBBurn": false
}
setBnbBurn
console.log(await client.setBnbBurn({ spotBNBBurn: "true" }))
| Param | Type | Required | Description |
|---|---|---|---|
| spotBNBBurn | String | false | "true" or "false"; Determines whether to use BNB to pay for trading fees on SPOT |
| interestBNBBurn | String | false | "true" or "false"; Determines whether to use BNB to pay for margin loan's interest |
| recvWindow | Number | false | No more than 60000 |
Output
{
"spotBNBBurn":true,
"interestBNBBurn": false
}
dustLog
console.log(await client.dustLog())
| Param | Type | Required | Description |
|---|---|---|---|
| startTime | Number | false | |
| endTime | Number | false | |
| recvWindow | Number | false |
Output
{
"total": 8, //Total counts of exchange
"userAssetDribblets": [
{
"operateTime": 1615985535000,
"totalTransferedAmount": "0.00132256",
"totalServiceChargeAmount": "0.00002699",
"transId": 45178372831,
"userAssetDribbletDetails": [
{
"transId": 4359321,
"serviceChargeAmount": "0.000009",
"amount": "0.0009",
"operateTime": 1615985535000,
"transferedAmount": "0.000441",
"fromAsset": "USDT"
},
{
"transId": 4359321,
"serviceChargeAmount": "0.00001799",
"amount": "0.0009",
"operateTime": 1615985535000,
"transferedAmount": "0.00088156",
"fromAsset": "ETH"
}
]
},
{
"operateTime":1616203180000,
"totalTransferedAmount": "0.00058795",
"totalServiceChargeAmount": "0.000012",
"transId": 4357015,
"userAssetDribbletDetails": [
{
"transId": 4357015,
"serviceChargeAmount": "0.00001",
"amount": "0.001",
"operateTime": 1616203180000,
"transferedAmount": "0.00049",
"fromAsset": "USDT"
},
{
"transId": 4357015,
"serviceChargeAmount": "0.000002",
"amount": "0.0001",
"operateTime": 1616203180000,
"transferedAmount": "0.00009795",
"fromAsset": "ETH"
}
]
}
]
}
}
dustTransfer
console.log(await client.dustTransfer({ asset: ['ETH', 'LTC', 'TRX'] }))
| Param | Type | Required | Description |
|---|---|---|---|
| asset | [String] | true | |
| recvWindow | Number | false |
Output
{
"totalServiceCharge":"0.02102542",
"totalTransfered":"1.05127099",
"transferResult":[
{
"amount":"0.03000000",
"fromAsset":"ETH",
"operateTime":1563368549307,
"serviceChargeAmount":"0.00500000",
"tranId":2970932918,
"transferedAmount":"0.25000000"
},
{
"amount":"0.09000000",
"fromAsset":"LTC",
"operateTime":1563368549404,
"serviceChargeAmount":"0.01548000",
"tranId":2970932918,
"transferedAmount":"0.77400000"
},
{
"amount":"248.61878453",
"fromAsset":"TRX",
"operateTime":1563368549489,
"serviceChargeAmount":"0.00054542",
"tranId":2970932918,
"transferedAmount":"0.02727099"
}
]
}
accountCoins
Retrieve account coins related information. Implemented as getAll in Binance Docs.
console.log(await client.accountCoins())
| Param | Type | Required | Description |
|---|---|---|---|
| recvWindow | Number | false |
Output
[
{
"coin": "BTC",
"depositAllEnable": true,
"free": "0.08074558",
"freeze": "0.00000000",
"ipoable": "0.00000000",
"ipoing": "0.00000000",
"isLegalMoney": false,
"locked": "0.00000000",
"name": "Bitcoin",
"networkList": [
{
"addressRegex": "^(bnb1)[0-9a-z]{38}$",
"coin": "BTC",
"depositDesc": "Wallet Maintenance, Deposit Suspended", // shown only when "depositEnable" is false.
"depositEnable": false,
"isDefault": false,
"memoRegex": "^[0-9A-Za-z\\-_]{1,120}$",
"minConfirm": 1, // min number for balance confirmation
"name": "BEP2",
"network": "BNB",
"resetAddressStatus": false,
"specialTips": "Both a MEMO and an Address are required to successfully deposit your BEP2-BTCB tokens to Binance.",
"unLockConfirm": 0, // confirmation number for balance unlock
"withdrawDesc": "Wallet Maintenance, Withdrawal Suspended", // shown only when "withdrawEnable" is false.
"withdrawEnable": false,
"withdrawFee": "0.00000220",
"withdrawMin": "0.00000440"
},
{
"addressRegex": "^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$|^(bc1)[0-9A-Za-z]{39,59}$",
"coin": "BTC",
"depositEnable": true,
"insertTime": 1563532929000,
"isDefault": true,
"memoRegex": "",
"minConfirm": 1,
"name": "BTC",
"network": "BTC",
"resetAddressStatus": false,
"specialTips": "",
"unLockConfirm": 2,
"updateTime": 1571014804000,
"withdrawEnable": true,
"withdrawFee": "0.00050000",
"withdrawIntegerMultiple": "0.00000001",
"withdrawMin": "0.00100000"
}
],
"storage": "0.00000000",
"trading": true,
"withdrawAllEnable": true,
"withdrawing": "0.00000000"
}
]
lendingAccount
Get information of lending assets for user.
console.log(await client.lendingAccount())
Output
{
"positionAmountVos": [
{
"amount": "75.46000000",
"amountInBTC": "0.01044819",
"amountInUSDT": "75.46000000",
"asset": "USDT"
},
{
"amount": "1.67072036",
"amountInBTC": "0.00023163",
"amountInUSDT": "1.67289230",
"asset": "BUSD"
}
],
"totalAmountInBTC": "0.01067982",
"totalAmountInUSDT": "77.13289230",
"totalFixedAmountInBTC": "0.00000000",
"totalFixedAmountInUSDT": "0.00000000",
"totalFlexibleInBTC": "0.01067982",
"totalFlexibleInUSDT": "77.13289230"
}
fundingWallet
Query funding wallet, includes Binance Pay, Binance Card, Binance Gift Card, Stock Token.
console.log(await client.fundingWallet())
| Param | Type | Required | Description |
|---|---|---|---|
| asset | String | false | |
| needBtcValuation | String | false | 'true' or 'false' |
Output
[
{
"asset": "USDT",
"free": "1",
"locked": "0",
"freeze": "0",
"withdrawing": "0",
"btcValuation": "0.00000091"
}
]
apiPermission
Get API Key Permission.
console.log(await client.apiPermission())
| Param | Type | Required | Description |
|---|---|---|---|
| recvWindow | Number | false |
Output
{
"ipRestrict": false,
"createTime": 1623840271000,
"enableWithdrawals": false, // This option allows you to withdraw via API. You must apply the IP Access Restriction filter in order to withdrawals
"enableInternalTransfer": true, // This option authorizes this key to transfer funds between your master account and your sub account instantly
"permitsUniversalTransfer": true, // Authorizes this key to be used for a dedicated universal transfer API to transfer multiple supported currencies. Each business's own transfer API rights are not affected by this authorization
"enableVanillaOptions": false, // Authorizes this key to Vanilla options trading
"enableReading": true,
"enableFutures": false, // API Key created before your futures account opened does not support futures API service
"enableMargin": false, // This option can be adjusted after the Cross Margin account transfer is completed
"enableSpotAndMarginTrading": false, // Spot and margin trading
"tradingAuthorityExpirationTime": 1628985600000 // Expiration time for spot and margin trading permission
}
Margin
marginAccountInfo
Query cross margin account details (USER_DATA)
console.log(await client.marginAccountInfo());
| Param | Type | Required | Description |
|---|---|---|---|
| recvWindow | Number | false | No more than 60000 |
Output
{
"borrowEnabled": true,
"marginLevel": "11.64405625",
"totalAssetOfBtc": "6.82728457",
"totalLiabilityOfBtc": "0.58633215",
"totalNetAssetOfBtc": "6.24095242",
"tradeEnabled": true,
"transferEnabled": true,
"userAssets": [
{
"asset": "BTC",
"borrowed": "0.00000000",
"free": "0.00499500",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "0.00499500"
},
{
"asset": "BNB",
"borrowed": "201.66666672",
"free": "2346.50000000",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "2144.83333328"
},
{
"asset": "ETH",
"borrowed": "0.00000000",
"free": "0.00000000",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "0.00000000"
},
{
"asset": "USDT",
"borrowed": "0.00000000",
"free": "0.00000000",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "0.00000000"
}
]
}
marginLoan
Create a loan for margin account.
console.log(await client.marginLoan({ asset: 'BTC', amount:'0.0001' }));
| Param | Type | Required | Description |
|---|---|---|---|
| asset | String | true | The asset name |
| amount | Number | true |
Output
{
"tranId": 100000001 //transaction id
}
marginRepay
Repay loan for margin account.
console.log(await client.marginRepay({ asset: 'BTC', amount:'0.0001' }));
| Param | Type | Required | Description |
|---|---|---|---|
| asset | String | true | The asset name |
| amount | Number | true |
Output
{
"tranId": 100000001 //transaction id
}
marginIsolatedAccount
Query Isolated Margin Account Info
console.log(await client.marginIsolatedAccount({ symbols: 'BTCUSDT'}));
| Param | Type | Required | Description |
|---|---|---|---|
| symbols | String | false | Max 5 symbols can be sent; separated by "," |
| recvWindow | Number | false | No more than 60000 |
Output
{
"assets":[
{
"baseAsset":
{
"asset": "BTC",
"borrowEnabled": true,
"borrowed": "0.00000000",
"free": "0.00000000",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "0.00000000",
"netAssetOfBtc": "0.00000000",
"repayEnabled": true,
"totalAsset": "0.00000000"
},
"quoteAsset":
{
"asset": "USDT",
"borrowEnabled": true,
"borrowed": "0.00000000",
"free": "0.00000000",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "0.00000000",
"netAssetOfBtc": "0.00000000",
"repayEnabled": true,
"totalAsset": "0.00000000"
},
"symbol": "BTCUSDT"
"isolatedCreated": true,
"marginLevel": "0.00000000",
"marginLevelStatus": "EXCESSIVE", // "EXCESSIVE", "NORMAL", "MARGIN_CALL", "PRE_LIQUIDATION", "FORCE_LIQUIDATION"
"marginRatio": "0.00000000",
"indexPrice": "10000.00000000"
"liquidatePrice": "1000.00000000",
"liquidateRate": "1.00000000"
"tradeEnabled": true
}
],
"totalAssetOfBtc": "0.00000000",
"totalLiabilityOfBtc": "0.00000000",
"totalNetAssetOfBtc": "0.00000000"
}
disableMarginAccount
Inactive Isolated Margin trading pair for symbol
console.log(await client.disableMarginAccount({ symbol: 'BTCUSDT' }));
| Param | Type | Required | Description |
|---|---|---|---|
| symbol | String | true | |
| recvWindow | Number | false | No more than 60000 |
Output
{
"success": true,
"symbol": "BTCUSDT"
}
Active Isolated Margin trading pair for symbol
console.log(await client.enableMarginAccount({ symbol: 'BTCUSDT' }));
| Param | Type | Required | Description |
|---|---|---|---|
| symbol | String | true | |
| recvWindow | Number | false | No more than 60000 |
Output
{
"success": true,
"symbol": "BTCUSDT"
}
marginMaxBorrow
If isolatedSymbol is not sent, crossed margin data will be sent.
console.log(await client.marginMaxBorrow({ asset: 'BTC', isolatedSymbol: 'BTCUSDT'}));
| Param | Type | Required | Description |
|---|---|---|---|
| asset | String | true | |
| isolatedSymbol | String | false | |
| recvWindow | Number | false | No more than 60000 |
Output
{
"amount": "1.69248805", // account's currently max borrowable amount with sufficient system availability
"borrowLimit": "60" // max borrowable amount limited by the account level
}
marginCreateIsolated
console.log(await client.marginCreateIsolated({ base: 'BTC', quote: 'USDT'}));
| Param | Type | Required | Description |
|---|---|---|---|
| base | String | true | Base asset of symbol |
| quote | String | true | Quote asset of symbol |
| recvWindow | Number | false | No more than 60000 |
Output
{
"success": true,
"symbol": "BTCUSDT"
}
marginIsolatedTransfer
console.log(await client.marginIsolatedTransfer({ asset: 'USDT', symbol: 'BNBUSDT', transFrom: 'ISOLATED_MARGIN', transTo: 'SPOT', amount: 1}));
| Param | Type | Required | Description |
|---|---|---|---|
| asset | String | true | asset,such as BTC |
| symbol | String | true | |
| transFrom | String | true | "SPOT", "ISOLATED_MARGIN" |
| transTo | String | true | "SPOT", "ISOLATED_MARGIN" |
| amount | Number | true | |
| recvWindow | Number | false | No more than 60000 |
Output
{
//transaction id
"tranId": 100000001
}
marginIsolatedTransferHistory
console.log(await client.marginIsolatedTransferHistory({ symbol: 'BNBUSDT'}));
| Param | Type | Required | Description |
|---|---|---|---|
| asset | String | false | asset,such as BTC |
| symbol | String | true | |
| transFrom | String | false | "SPOT", "ISOLATED_MARGIN" |
| transTo | String | false | "SPOT", "ISOLATED_MARGIN" |
| startTime | Number | false | |
| endTime | Number | false | |
| current | Number | false | Current page, default 1 |
| size | Number | false | Default 10, max 100 |
| recvWindow | Number | false | No more than 60000 |
Output
{
"rows": [
{
"amount": "0.10000000",
"asset": "BNB",
"status": "CONFIRMED",
"timestamp": 1566898617000,
"txId": 5240372201,
"transFrom": "SPOT",
"transTo": "ISOLATED_MARGIN"
},
{
"amount": "5.00000000",
"asset": "USDT",
"status": "CONFIRMED",
"timestamp": 1566888436123,
"txId": 5239810406,
"transFrom": "ISOLATED_MARGIN",
"transTo": "SPOT"
}
],
"total": 2
}
marginOrder
console.log(await client.marginOrder({
symbol: 'BTCUSDT',
type: 'MARKET',
side: 'SELL',
quantity: '10',
}));
| Param | Type | Required | Description |
|---|---|---|---|
| symbol | String | true | asset, such as BTC |
| isIsolated | String | false | for isolated margin or not, TRUE, FALSE, default FALSE |
| side | String | true | BUY SELL |
| type | String | true | |
| quantity | String | false | |
| quoteOrderQty | String | false | |
| price | String | false | |
| stopPrice | String | false | Used with STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, and TAKE_PROFIT_LIMIT orders. |
| newClientOrderId | String | false | A unique id among open orders. Automatically generated if not sent. |
| icebergQty | Boolean | false | Used with LIMIT, STOP_LOSS_LIMIT, and TAKE_PROFIT_LIMIT to create an iceberg order. |
| newOrderRespType | String | false | Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK. |
| sideEffectType | String | false | NO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY; default NO_SIDE_EFFECT. |
| timeInForce | String | false | GTC,IOC,FOK |
| recvWindow | Number | false | No more than 60000 |
Output
{
"symbol": "BTCUSDT",
"orderId": 28,
"clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
"transactTime": 1507725176595,
"price": "1.00000000",
"origQty": "10.00000000",
"executedQty": "10.00000000",
"cummulativeQuoteQty": "10.00000000",
"status": "FILLED",
"timeInForce": "GTC",
"type": "MARKET",
"side": "SELL",
"marginBuyBorrowAmount": 5, // will not return if no margin trade happens
"marginBuyBorrowAsset": "BTC", // will not return if no margin trade happens
"isIsolated": true, // if isolated margin
"fills": [
{
"price": "4000.00000000",
"qty": "1.00000000",
"commission": "4.00000000",
"commissionAsset": "USDT"
},
{
"price": "3999.00000000",
"qty": "5.00000000",
"commission": "19.99500000",
"commissionAsset": "USDT"
},
{
"price": "3998.00000000",
"qty": "2.00000000",
"commission": "7.99600000",
"commissionAsset": "USDT"
},
{
"price": "3997.00000000",
"qty": "1.00000000",
"commission": "3.99700000",
"commissionAsset": "USDT"
},
{
"price": "3995.00000000",
"qty": "1.00000000",
"commission": "3.99500000",
"commissionAsset": "USDT"
}
]
}
marginOrderOco
console.log(await client.marginOrderOco({
symbol: 'AUDIOUSDT',
type: 'MARKET',
side: 'SELL',
quantity: '10',
}));
| Param | Type | Required | Description |
|---|---|---|---|
| symbol | String | true | asset, such as BTC |
| isIsolated | String | false | for isolated margin or not, TRUE, FALSE, default FALSE |
| side | String | true | BUY SELL |
| type | String | true | |
| quantity | String | false | |
| quoteOrderQty | String | false | |
| price | String | false | |
| stopPrice | String | false | Used with STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, and TAKE_PROFIT_LIMIT orders. |
| stopLimitPrice | String | false | Used with STOP_LOSS_LIMIT orders. |
| newClientOrderId | String | false | A unique id among open orders. Automatically generated if not sent. |
| icebergQty | Boolean | false | Used with LIMIT, STOP_LOSS_LIMIT, and TAKE_PROFIT_LIMIT to create an iceberg order. |
| newOrderRespType | String | false | Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK. |
| sideEffectType | String | false | NO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY; default NO_SIDE_EFFECT. |
| timeInForce | String | false | GTC,IOC,FOK |
| recvWindow | Number | false | No more than 60000 |
Output
{
"orderListId": 45514668,
"contingencyType": 'OCO',
"listStatusType": 'EXEC_STARTED',
"listOrderStatus": 'EXECUTING',
"listClientOrderId": 'CD9UzEJfmcGZ4kLfZT2ga2',
"transactionTime": 1632192162785,
"symbol": 'AUDIOUSDT',
"isIsolated": true,
"orders": [
{
"symbol": 'AUDIOUSDT',
"orderId": 239313661,
"clientOrderId": 'ZbUwgKv6UB8eMzf2yfXENl'
},
{
"symbol": 'AUDIOUSDT',
"orderId": 239313662,
"clientOrderId": 'f5u1RIHAPRd4W3fFhFykBo'
}
],
"orderReports": [
{
"symbol": 'AUDIOUSDT',
"orderId": 239313661,
"orderListId": 45514668,
"clientOrderId": 'ZbUwgKv6UB8eMzf2yfXENl',
"transactTime": 1632192162785,
"price": '2.20000000',
"origQty": '12.80000000',
"executedQty": '0',
"cummulativeQuoteQty": '0',
"status": 'NEW',
"timeInForce": 'GTC',
"type": 'STOP_LOSS_LIMIT',
"side": 'SELL',
"stopPrice": '2.20000000'
},
{
"symbol": 'AUDIOUSDT',
"orderId": 239313662,
"orderListId": 45514668,
"clientOrderId": 'f5u1RIHAPRd4W3fFhFykBo',
"transactTime": 1632192162785,
"price": '2.50000000',
"origQty": '12.80000000',
"executedQty": '0',
"cummulativeQuoteQty": '0',
"status": 'NEW',
"timeInForce": 'GTC',
"type": 'LIMIT_MAKER',
"side": 'SELL'
}
]
}
marginGetOrder
Query Margin Account's Order
console.log(await client.marginGetOrder({
symbol: 'BNBBTC',
orderId: '213205622',
}));
| Param | Type | Required | Description |
|---|---|---|---|
| symbol | String | true | asset,such as BTC |
| isIsolated | String | false | for isolated margin or not, TRUE, FALSE, default FALSE |
| orderId | String | false | |
| origClientOrderId | String | false | |
| recvWindow | Number | false | The value cannot be greater than 60000 |
Output
{
"clientOrderId": "ZwfQzuDIGpceVhKW5DvCmO",
"cummulativeQuoteQty": "0.00000000",
"executedQty": "0.00000000",
"icebergQty": "0.00000000",
"isWorking": true,
"orderId": 213205622,
"origQty": "0.30000000",
"price": "0.00493630",
"side": "SELL",
"status": "NEW",
"stopPrice": "0.00000000",
"symbol": "BNBBTC",
"isIsolated": true,
"time": 1562133008725,
"timeInForce": "GTC",
"type": "LIMIT",
"updateTime": 1562133008725
}
Futures Authenticated REST endpoints
futuresGetOrder
Check an order's status.
- These orders will not be found
- order status is CANCELED or EXPIRED, AND
- order has NO filled trade, AND
- created time + 7 days < current time
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | The pair name |
| orderId | LONG | NO | |
| origClientOrderId | STRING | NO | |
| recvWindow | LONG | NO |
Either orderId or origClientOrderId must be sent.
console.log(
await client.futuresGetOrder({
symbol: 'BNBETH',
orderId: 50167927,
})
)
Output
{
"avgPrice": "0.00000",
"clientOrderId": "abc",
"cumQuote": "0",
"executedQty": "0",
"orderId": 1917641,
"origQty": "0.40",
"origType": "TRAILING_STOP_MARKET",
"price": "0",
"reduceOnly": false,
"side": "BUY",
"positionSide": "SHORT",
"status": "NEW",
"stopPrice": "9300", // please ignore when order type is TRAILING_STOP_MARKET
"closePosition": false, // if Close-All
"symbol": "BTCUSDT",
"time": 1579276756075, // order time
"timeInForce": "GTC",
"type": "TRAILING_STOP_MARKET",
"activatePrice": "9020", // activation price, only return with TRAILING_STOP_MARKET order
"priceRate": "0.3", // callback rate, only return with TRAILING_STOP_MARKET order
"updateTime": 1579276756075, // update time
"workingType": "CONTRACT_PRICE",
"priceProtect": false // if conditional order trigger is protected
}
futuresAllOrders
Get all account orders; active, canceled, or filled.
- These orders will not be found
- order status is CANCELED or EXPIRED, AND
- order has NO filled trade, AND
- created time + 7 days < current time
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | The pair name |
| orderId | LONG | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | Default 500; max 1000. |
| recvWindow | LONG | NO |
If orderId is set, it will get orders >= that orderId. Otherwise most recent orders are returned.
console.log(
await client.futuresAllOrders({
symbol: 'BNBETH',
orderId: 50167927,
startTime: 1579276756075,
limit: 700,
})
)
Output
[
{
"avgPrice": "0.00000",
"clientOrderId": "abc",
"cumQuote": "0",
"executedQty": "0",
"orderId": 1917641,
"origQty": "0.40",
"origType": "TRAILING_STOP_MARKET",
"price": "0",
"reduceOnly": false,
"side": "BUY",
"positionSide": "SHORT",
"status": "NEW",
"stopPrice": "9300", // please ignore when order type is TRAILING_STOP_MARKET
"closePosition": false, // if Close-All
"symbol": "BTCUSDT",
"time": 1579276756075, // order time
"timeInForce": "GTC",
"type": "TRAILING_STOP_MARKET",
"activatePrice": "9020", // activation price, only return with TRAILING_STOP_MARKET order
"priceRate": "0.3", // callback rate, only return with TRAILING_STOP_MARKET order
"updateTime": 1579276756075, // update time
"workingType": "CONTRACT_PRICE",
"priceProtect": false // if conditional order trigger is protected
}
]
futuresLeverage
Change user's initial leverage of specific symbol market.
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | The pair name |
| leverage | INT | YES | target initial leverage: int from 1 to 125 |
| recvWindow | LONG | NO |
console.log(
await client.futuresLeverage({
symbol: 'BTCUSDT',
leverage: 21,
})
)
Output
{
"leverage": 21,
"maxNotionalValue": "1000000",
"symbol": "BTCUSDT"
}
futuresMarginType
Change margin type.
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | The pair name |
| marginType | ENUM | YES | ISOLATED, CROSSED |
| recvWindow | LONG | NO |
console.log(
await client.futuresMarginType({
symbol: 'BTCUSDT',
marginType: 'ISOLATED',
})
)
Output
{
"code": 200,
"msg": "success"
}
futuresPositionMargin
Modify isolated position margin.
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | The pair name |
| positionSide | ENUM | NO | Default BOTH for One-way Mode; LONG or SHORT for Hedge Mode. It must be sent with Hedge Mode. |
| amount | DECIMAL | YES | |
| type | INT | YES | 1: Add position margin,2: Reduce position margin |
| recvWindow | LONG | NO |
Only for isolated symbol.
console.log(
await client.futuresPositionMargin({
symbol: 'BTCUSDT',
amount: 100,
type: 1,
})
)
Output
{
"amount": 100.0,
"code": 200,
"msg": "Successfully modify position margin.",
"type": 1
}
futuresMarginHistory
Get position margin change history.
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | The pair name |
| type | INT | NO | 1: Add position margin,2: Reduce position margin |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | Default 500; |
| recvWindow | LONG | NO |
console.log(
await client.futuresMarginHistory({
symbol: 'BTCUSDT',
type: 1,
startTime: 1579276756075,
limit: 700,
})
)
Output
[
{
"amount": "23.36332311",
"asset": "USDT",
"symbol": "BTCUSDT",
"time": 1578047897183,
"type": 1,
"positionSide": "BOTH"
},
{
"amount": "100",
"asset": "USDT",
"symbol": "BTCUSDT",
"time": 1578047900425,
"type": 1,
"positionSide": "LONG"
}
]
futuresIncome
Get income history.
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | NO | The pair name |
| incomeType | STRING | NO | "TRANSFER","WELCOME_BONUS", "REALIZED_PNL", "FUNDING_FEE", "COMMISSION", and "INSURANCE_CLEAR" |
| startTime | LONG | NO | Timestamp in ms to get funding from INCLUSIVE. |
| endTime | LONG | NO | Timestamp in ms to get funding until INCLUSIVE. |
| limit | INT | NO | Default 100; max 1000 |
| recvWindow | LONG | NO |
- If incomeType is not sent, all kinds of flow will be returned
- "trandId" is unique in the same incomeType for a user
console.log(
await client.futuresIncome({
symbol: 'BTCUSDT',
startTime: 1579276756075,
limit: 700,
})
)
Output
[
{
"symbol": "", // trade symbol, if existing
"incomeType": "TRANSFER", // income type
"income": "-0.37500000", // income amount
"asset": "USDT", // income asset
"info":"TRANSFER", // extra information
"time": 1570608000000,
"tranId":"9689322392", // transaction id
"tradeId":"" // trade id, if existing
},
{
"symbol": "BTCUSDT",
"incomeType": "COMMISSION",
"income": "-0.01000000",
"asset": "USDT",
"info":"COMMISSION",
"time": 1570636800000,
"tranId":"9689322392",
"tradeId":"2059192"
}
]
futuresAccountBalance
Get futures account balance
console.log(await client.futuresAccountBalance());
Output
[
{
"accountAlias": "SgsR", // unique account code
"asset": "USDT", // asset name
"balance": "122607.35137903", // wallet balance
"crossWalletBalance": "23.72469206", // crossed wallet balance
"crossUnPnl": "0.00000000" // unrealized profit of crossed positions
"availableBalance": "23.72469206", // available balance
"maxWithdrawAmount": "23.72469206" // maximum amount for transfer out
}
]
futuresUserTrades
Get trades for a specific account and symbol.
console.log(
await client.futuresUserTrades({
symbol: 'ETHBTC',
}),
)
| Param | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | Default 500; max 1000. |
| fromId | LONG | NO | Trade id to fetch from. Default gets most recent trades. |
| recvWindow | LONG | NO |
Output
[
{
"buyer": false,
"commission": "-0.07819010",
"commissionAsset": "USDT",
"id": 698759,
"maker": false,
"orderId": 25851813,
"price": "7819.01",
"qty": "0.002",
"quoteQty": "15.63802",
"realizedPnl": "-0.91539999",
"side": "SELL",
"positionSide": "SHORT",
"symbol": "BTCUSDT",
"time": 1569514978020
}
]
futuresLeverageBracket
Get notional and leverage brackets.
console.log(
await client.futuresLeverageBracket({
symbol: 'ETHBTC', // Optional
}),
)
| Param | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | NO | Use if you are only interested in brackets for one symbol |
| recvWindow | LONG | NO |
Output
[
{
"symbol": "ETHUSDT",
"brackets": [
{
"bracket": 1, // Notional bracket
"initialLeverage": 75, // Max initial leverage for this bracket
"notionalCap": 10000, // Cap notional of this bracket
"notionalFloor": 0, // Notional threshold of this bracket
"maintMarginRatio": 0.0065, // Maintenance ratio for this bracket
"cum":0 // Auxiliary number for quick calculation
},
]
}
]
WebSockets
Every websocket utility returns a function you can call to close the opened connection and avoid memory issues.
const clean = client.ws.depth('ETHBTC', depth => {
console.log(depth)
})
// After you're done
clean()
depth
Live depth market data feed. The first parameter can either
be a single symbol string or an array of symbols. If you wish
to specify the update speed (can either be 1000ms or 100ms)
of the stream then append the speed at the end of the symbol
string as follows: ETHBTC@100ms
client.ws.depth('ETHBTC', depth => {
console.log(depth)
})
Output
{
eventType: 'depthUpdate',
eventTime: 1508612956950,
symbol: 'ETHBTC',
firstUpdateId: 18331140,
finalUpdateId: 18331145,
bidDepth: [
{ price: '0.04896500', quantity: '0.00000000' },
{ price: '0.04891100', quantity: '15.00000000' },
{ price: '0.04891000', quantity: '0.00000000' } ],
askDepth: [
{ price: '0.04910600', quantity: '0.00000000' },
{ price: '0.04910700', quantity: '11.24900000' }
]
}
customSubStream
You can add custom sub streams by view docs
client.ws.customSubStream('!markPrice@arr@1s', console.log)
partialDepth
Top levels bids and asks, pushed every second. Valid levels are 5, 10, or 20.
Accepts an array of objects for multiple depths. If you wish
to specify the update speed (can either be 1000ms or 100ms)
of the stream then append the speed at the end of the symbol
string as follows: ETHBTC@100ms
client.ws.partialDepth({ symbol: 'ETHBTC', level: 10 }, depth => {
console.log(depth)
})
Output
{
symbol: 'ETHBTC',
level: 10,
bids: [
{ price: '0.04896500', quantity: '0.00000000' },
{ price: '0.04891100', quantity: '15.00000000' },
{ price: '0.04891000', quantity: '0.00000000' }
],
asks: [
{ price: '0.04910600', quantity: '0.00000000' },
{ price: '0.04910700', quantity: '11.24900000' }
]
}
ticker
24hr Ticker statistics for a symbol pushed every second. Accepts an array of symbols.
client.ws.ticker('HSRETH', ticker => {
console.log(ticker)
})
Output
{
eventType: '24hrTicker',
eventTime: 1514670820924,
symbol: 'HSRETH',
priceChange: '-0.00409700',
priceChangePercent: '-11.307',
weightedAvg: '0.03394946',
prevDayClose: '0.03623500',
curDayClose: '0.03213800',
closeTradeQuantity: '7.02000000',
bestBid: '0.03204200',
bestBidQnt: '78.00000000',
bestAsk: '0.03239800',
bestAskQnt: '7.00000000',
open: '0.03623500',
high: '0.03659900',
low: '0.03126000',
volume: '100605.15000000',
volumeQuote: '3415.49097353',
openTime: 1514584420922,
closeTime: 1514670820922,
firstTradeId: 344803,
lastTradeId: 351380,
totalTrades: 6578
}
allTickers
Retrieves all the tickers.
client.ws.allTickers(tickers => {
console.log(tickers)
})
miniTicker
24hr Mini Ticker statistics for a symbol pushed every second. Accepts an array of symbols.
client.ws.miniTicker('HSRETH', ticker => {
console.log(ticker)
})
Output
{
eventType: '24hrMiniTicker',
eventTime: 1514670820924,
symbol: 'HSRETH',
curDayClose: '0.03213800',
open: '0.03623500',
high: '0.03659900',
low: '0.03126000',
volume: '100605.15000000',
volumeQuote: '3415.49097353'
}
allMiniTickers
Retrieves all the mini tickers.
client.ws.allMiniTickers(tickers => {
console.log(tickers)
})
candles
Live candle data feed for a given interval. You can pass either a symbol string or a symbol array.
client.ws.candles('ETHBTC', '1m', candle => {
console.log(candle)
})
Output
{
eventType: 'kline',
eventTime: 1508613366276,
symbol: 'ETHBTC',
open: '0.04898000',
high: '0.04902700',
low: '0.04898000',
close: '0.04901900',
volume: '37.89600000',
trades: 30,
interval: '5m',
isFinal: false,
quoteVolume: '1.85728874',
buyVolume: '21.79900000',
quoteBuyVolume: '1.06838790'
}
trades
Live trade data feed. Pass either a single symbol string or an array of symbols. The trade streams push raw trade information; each trade has a unique buyer and seller.
client.ws.trades(['ETHBTC', 'BNBBTC'], trade => {
console.log(trade)
})
Output
{
eventType: 'trade',
eventTime: 1508614495052,
tradeTime: 1508614495050,
symbol: 'ETHBTC',
price: '0.04923600',
quantity: '3.43500000',
isBuyerMaker: true,
maker: true,
tradeId: 2148226,
buyerOrderId: 390876,
sellerOrderId: 390752
}
aggTrades
Live trade data feed. Pass either a single symbol string or an array of symbols. The aggregate trade streams push trade information that is aggregated for a single taker order.
client.ws.aggTrades(['ETHBTC', 'BNBBTC'], trade => {
console.log(trade)
})
Output
{
eventType: 'aggTrade',
eventTime: 1508614495052,
aggId: 2148226,
price: '0.04923600',
quantity: '3.43500000',
firstId: 37856,
lastId: 37904,
timestamp: 1508614495050,
symbol: 'ETHBTC',
isBuyerMaker: false,
wasBestPrice: true
}
user
Live user messages data feed.
Requires authentication
const clean = await client.ws.user(msg => {
console.log(msg)
})
There is also equivalent function to query the margin wallet:
client.ws.marginUser()
Note that this method return a promise which will resolve the clean callback.
Output
{
eventType: 'account',
eventTime: 1508614885818,
balances: {
'123': { available: '0.00000000', locked: '0.00000000' },
'456': { available: '0.00000000', locked: '0.00000000' },
BTC: { available: '0.00000000', locked: '0.00000000' },
}
}
Futures WebSockets
Every websocket utility returns a function you can call to close the opened connection and avoid memory issues.
const clean = client.ws.futuresDepth('ETHBTC', depth => {
console.log(depth)
})
// After you're done
clean()
Each websocket utility supports the ability to get a clean callback without data transformation, for this, pass the third attribute FALSE.
const clean = client.ws.futuresDepth('ETHBTC', depth => {
console.log(depth)
}, false)
Output
{
"e": "depthUpdate", // Event type
"E": 123456789, // Event time
"T": 123456788, // transaction time
"s": "BTCUSDT", // Symbol
"U": 157, // First update ID in event
"u": 160, // Final update ID in event
"pu": 149, // Final update Id in last stream(ie `u` in last stream)
"b": [ // Bids to be updated
[
"0.0024", // Price level to be updated
"10" // Quantity
]
],
"a": [ // Asks to be updated
[
"0.0026", // Price level to be updated
"100" // Quantity
]
]
}
futuresDepth
Live futuresDepth market data feed. The first parameter can either be a single symbol string or an array of symbols.
client.ws.futuresDepth('ETHBTC', depth => {
console.log(depth)
})
Output
{
eventType: 'depthUpdate',
eventTime: 1508612956950,
symbol: 'ETHBTC',
firstUpdateId: 18331140,
finalUpdateId: 18331145,
bidDepth: [
{ price: '0.04896500', quantity: '0.00000000' },
{ price: '0.04891100', quantity: '15.00000000' },
{ price: '0.04891000', quantity: '0.00000000' } ],
askDepth: [
{ price: '0.04910600', quantity: '0.00000000' },
{ price: '0.04910700', quantity: '11.24900000' }
]
}
futuresPartialDepth
Top levels bids and asks, pushed every second. Valid levels are 5, 10, or 20. Accepts an array of objects for multiple depths.
client.ws.futuresPartialDepth({ symbol: 'ETHBTC', level: 10 }, depth => {
console.log(depth)
})
Output
{
eventType: 'depthUpdate',
eventTime: 1508612956950,
symbol: 'ETHBTC',
level: 10,
firstUpdateId: 18331140,
finalUpdateId: 18331145,
bidDepth: [
{ price: '0.04896500', quantity: '0.00000000' },
{ price: '0.04891100', quantity: '15.00000000' },
{ price: '0.04891000', quantity: '0.00000000' } ],
askDepth: [
{ price: '0.04910600', quantity: '0.00000000' },
{ price: '0.04910700', quantity: '11.24900000' }
]
}
futuresTicker
24hr Ticker statistics for a symbol pushed every 500ms. Accepts an array of symbols.
client.ws.futuresTicker('HSRETH', ticker => {
console.log(ticker)
})
Output
{
eventType: '24hrTicker',
eventTime: 123456789,
symbol: 'BTCUSDT',
priceChange: '0.0015',
priceChangePercent: '250.00',
weightedAvg: '0.0018',
curDayClose: '0.0025',
closeTradeQuantity: '10',
open: '0.0010',
high: '0.0025',
low: '0.0010',
volume: '10000',
volumeQuote: '18',
openTime: 0,
closeTime: 86400000,
firstTradeId: 0,
lastTradeId: 18150,
totalTrades: 18151,
}
futuresAllTickers
Retrieves all the tickers.
client.ws.futuresAllTickers(tickers => {
console.log(tickers)
})
futuresCandles
Live candle data feed for a given interval. You can pass either a symbol string or a symbol array.
client.ws.futuresCandles('ETHBTC', '1m', candle => {
console.log(candle)
})
Output
{
eventType: 'kline',
eventTime: 1508613366276,
symbol: 'ETHBTC',
open: '0.04898000',
high: '0.04902700',
low: '0.04898000',
close: '0.04901900',
volume: '37.89600000',
trades: 30,
interval: '5m',
isFinal: false,
quoteVolume: '1.85728874',
buyVolume: '21.79900000',
quoteBuyVolume: '1.06838790'
}
futuresAggTrades
Live trade data feed. Pass either a single symbol string or an array of symbols. The Aggregate Trade Streams push trade information that is aggregated for a single taker order every 100 milliseconds.
client.ws.futuresAggTrades(['ETHBTC', 'BNBBTC'], trade => {
console.log(trade)
})
Output
{
eventType: 'aggTrade',
eventTime: 1508614495052,
aggId: 2148226,
price: '0.04923600',
quantity: '3.43500000',
firstId: 37856,
lastId: 37904,
timestamp: 1508614495050,
symbol: 'ETHBTC',
isBuyerMaker: false,
}
futuresLiquidations
Live liquidation data feed. Pass either a single symbol string or an array of symbols. The Liquidation Order Streams push force liquidation order information for specific symbol(s).
client.ws.futuresLiquidations(['ETHBTC', 'BNBBTC'], liquidation => {
console.log(liquidation)
})
Output
{
symbol: string
price: '0.04923600',
origQty: '3.43500000',
lastFilledQty: '3.43500000',
accumulatedQty: '3.43500000',
averagePrice: '0.04923600',
status: 'FILLED',
timeInForce: 'IOC',
type: 'LIMIT',
side: 'SELL',
time: 1508614495050
}
futuresAllLiquidations
Live liquidation data feed. Pass either a single symbol string or an array of symbols. The All Liquidation Order Streams push force liquidation order information for all symbols in the market.
client.ws.futuresAllLiquidations(liquidation => {
console.log(liquidation)
})
Output
{
symbol: string
price: '0.04923600',
origQty: '3.43500000',
lastFilledQty: '3.43500000',
accumulatedQty: '3.43500000',
averagePrice: '0.04923600',
status: 'FILLED',
timeInForce: 'IOC',
type: 'LIMIT',
side: 'SELL',
time: 1508614495050
}
futuresCustomSubStream
You can add custom sub streams by view docs
client.ws.futuresCustomSubStream(['!markPrice@arr','ETHBTC@markPrice@1s'], console.log)
futuresUser
Live user messages data feed.
Requires authentication
const futuresUser = await client.ws.futuresUser(msg => {
console.log(msg)
})
Output
{
eventTime: 1564745798939,
transactionTime: 1564745798938,
eventType: 'ACCOUNT_UPDATE',
eventReasonType: 'ORDER',
balances: [
{
asset:'USDT',
walletBalance:'122624.12345678',
crossWalletBalance:'100.12345678'
},
{
asset:'BNB',
walletBalance:'1.00000000',
crossWalletBalance:'0.00000000'
}
],
positions: [
{
symbol:'BTCUSDT',
positionAmount:'0',
entryPrice:'0.00000',
accumulatedRealized:'200',
unrealizedPnL:'0',
marginType:'isolated',
isolatedWallet:'0.00000000',
positionSide:'BOTH'
},
{
symbol:'BTCUSDT',
positionAmount:'20',
entryPrice:'6563.66500',
accumulatedRealized:'0',
unrealizedPnL:'2850.21200',
marginType:'isolated',
isolatedWallet:'13200.70726908',
positionSide:'LONG'
}
],
}
Common
getInfo
To get information about limits from response headers call getInfo()
console.log(client.getInfo())
Output
{
futures: {
futuresLatency: "2ms",
orderCount1m: "10",
usedWeigh1m: "1",
},
spot: {
orderCount1d: "347",
orderCount10s: "1",
usedWeigh1m: "15",
}
}
ErrorCodes
An utility error code map is also being exported by the package in order for you to make readable conditionals upon specific errors that could occur while using the API.
import Binance, { ErrorCodes } from 'binance-api-node'
console.log(ErrorCodes.INVALID_ORDER_TYPE) // -1116
,
'coin': 'CTR',
'depositDesc': 'Delisted, Deposit Suspended',
'depositEnable': false,
'isDefault': true,
'memoRegex': '',
'minConfirm': 12,
'name': 'ERC20',
'network': 'ETH',
'resetAddressStatus': false,
'specialTips': '',
'unLockConfirm': 0,
'withdrawDesc': '',
'withdrawEnable': true,
'withdrawFee': '35.00000000',
'withdrawIntegerMultiple': '0.00000001',
'withdrawMax': '0.00000000',
'withdrawMin': '70.00000000'
}
],
'storage': '0.00000000',
'trading': false,
'withdrawAllEnable': true,
'withdrawing': '0.00000000'
}
]
universalTransfer
You need to enable Permits Universal Transfer option for the api key which requests this endpoint.
__CODE_BLOCK_87__| Param | Type | Required | Description |
|---|---|---|---|
| type | String | true | |
| asset | String | true | |
| amount | String | true | |
| recvWindow | Number | false |
Output
__CODE_BLOCK_88__universalTransferHistory
__CODE_BLOCK_89__| Param | Type | Required | Description |
|---|---|---|---|
| type | String | true | |
| startTime | Number | false | |
| endTime | Number | false | |
| current | Number | false | Default 1 |
| size | Number | false | Default 10, Max 100 |
| recvWindow | Number | false |
Output
__CODE_BLOCK_90__assetDetail
__CODE_BLOCK_91__| Param | Type | Required | Description |
|---|---|---|---|
| recvWindow | Number | false |
Output
__CODE_BLOCK_92__getBnbBurn
__CODE_BLOCK_93__| Param | Type | Required | Description |
|---|---|---|---|
| recvWindow | Number | false | No more than 60000 |
Output
__CODE_BLOCK_94__setBnbBurn
__CODE_BLOCK_95__| Param | Type | Required | Description |
|---|---|---|---|
| spotBNBBurn | String | false | "true" or "false"; Determines whether to use BNB to pay for trading fees on SPOT |
| interestBNBBurn | String | false | "true" or "false"; Determines whether to use BNB to pay for margin loan's interest |
| recvWindow | Number | false | No more than 60000 |
Output
__CODE_BLOCK_96__dustLog
__CODE_BLOCK_97__| Param | Type | Required | Description |
|---|---|---|---|
| startTime | Number | false | |
| endTime | Number | false | |
| recvWindow | Number | false |
Output
__CODE_BLOCK_98__dustTransfer
__CODE_BLOCK_99__| Param | Type | Required | Description |
|---|---|---|---|
| asset | [String] | true | |
| recvWindow | Number | false |
Output
__CODE_BLOCK_100__accountCoins
Retrieve account coins related information. Implemented as __INLINE_CODE_160__ in Binance Docs.
__CODE_BLOCK_101__| Param | Type | Required | Description |
|---|---|---|---|
| recvWindow | Number | false |
Output
__CODE_BLOCK_102__lendingAccount
Get information of lending assets for user.
__CODE_BLOCK_103__Output
__CODE_BLOCK_104__fundingWallet
Query funding wallet, includes Binance Pay, Binance Card, Binance Gift Card, Stock Token.
__CODE_BLOCK_105__| Param | Type | Required | Description |
|---|---|---|---|
| asset | String | false | |
| needBtcValuation | String | false | 'true' or 'false' |
Output
__CODE_BLOCK_106__apiPermission
Get API Key Permission.
__CODE_BLOCK_107__| Param | Type | Required | Description |
|---|---|---|---|
| recvWindow | Number | false |
Output
__CODE_BLOCK_108__Margin
marginAccountInfo
Query cross margin account details (USER_DATA)
__CODE_BLOCK_109__| Param | Type | Required | Description |
|---|---|---|---|
| recvWindow | Number | false | No more than 60000 |
Output
__CODE_BLOCK_110__marginLoan
Create a loan for margin account.
__CODE_BLOCK_111__| Param | Type | Required | Description |
|---|---|---|---|
| asset | String | true | The asset name |
| amount | Number | true |
Output
__CODE_BLOCK_112__marginRepay
Repay loan for margin account.
__CODE_BLOCK_113__| Param | Type | Required | Description |
|---|---|---|---|
| asset | String | true | The asset name |
| amount | Number | true |
Output
__CODE_BLOCK_114__marginIsolatedAccount
Query Isolated Margin Account Info
__CODE_BLOCK_115__| Param | Type | Required | Description |
|---|---|---|---|
| symbols | String | false | Max 5 symbols can be sent; separated by "," |
| recvWindow | Number | false | No more than 60000 |
Output
__CODE_BLOCK_116__disableMarginAccount
Inactive Isolated Margin trading pair for symbol
__CODE_BLOCK_117__| Param | Type | Required | Description |
|---|---|---|---|
| symbol | String | true | |
| recvWindow | Number | false | No more than 60000 |
Output
__CODE_BLOCK_118__Active Isolated Margin trading pair for symbol
__CODE_BLOCK_119__| Param | Type | Required | Description |
|---|---|---|---|
| symbol | String | true | |
| recvWindow | Number | false | No more than 60000 |
Output
__CODE_BLOCK_120__marginMaxBorrow
If isolatedSymbol is not sent, crossed margin data will be sent.
__CODE_BLOCK_121__| Param | Type | Required | Description |
|---|---|---|---|
| asset | String | true | |
| isolatedSymbol | String | false | |
| recvWindow | Number | false | No more than 60000 |
Output
__CODE_BLOCK_122__marginCreateIsolated
__CODE_BLOCK_123__| Param | Type | Required | Description |
|---|---|---|---|
| base | String | true | Base asset of symbol |
| quote | String | true | Quote asset of symbol |
| recvWindow | Number | false | No more than 60000 |
Output
__CODE_BLOCK_124__marginIsolatedTransfer
__CODE_BLOCK_125__| Param | Type | Required | Description |
|---|---|---|---|
| asset | String | true | asset,such as BTC |
| symbol | String | true | |
| transFrom | String | true | "SPOT", "ISOLATED_MARGIN" |
| transTo | String | true | "SPOT", "ISOLATED_MARGIN" |
| amount | Number | true | |
| recvWindow | Number | false | No more than 60000 |
Output
__CODE_BLOCK_126__marginIsolatedTransferHistory
__CODE_BLOCK_127__| Param | Type | Required | Description |
|---|---|---|---|
| asset | String | false | asset,such as BTC |
| symbol | String | true | |
| transFrom | String | false | "SPOT", "ISOLATED_MARGIN" |
| transTo | String | false | "SPOT", "ISOLATED_MARGIN" |
| startTime | Number | false | |
| endTime | Number | false | |
| current | Number | false | Current page, default 1 |
| size | Number | false | Default 10, max 100 |
| recvWindow | Number | false | No more than 60000 |
Output
__CODE_BLOCK_128__marginOrder
__CODE_BLOCK_129__| Param | Type | Required | Description |
|---|---|---|---|
| symbol | String | true | asset, such as __INLINE_CODE_161__ |
| isIsolated | String | false | for isolated margin or not, __INLINE_CODE_162__, __INLINE_CODE_163__, default __INLINE_CODE_164__ |
| side | String | true | __INLINE_CODE_165__ __INLINE_CODE_166__ |
| type | String | true | |
| quantity | String | false | |
| quoteOrderQty | String | false | |
| price | String | false | |
| stopPrice | String | false | Used with __INLINE_CODE_167__, __INLINE_CODE_168__, __INLINE_CODE_169__, and __INLINE_CODE_170__ orders. |
| newClientOrderId | String | false | A unique id among open orders. Automatically generated if not sent. |
| icebergQty | Boolean | false | Used with __INLINE_CODE_171__, __INLINE_CODE_172__, and __INLINE_CODE_173__ to create an iceberg order. |
| newOrderRespType | String | false | Set the response JSON. __INLINE_CODE_174__, __INLINE_CODE_175__, or __INLINE_CODE_176__; __INLINE_CODE_177__ and __INLINE_CODE_178__ order types default to __INLINE_CODE_179__, all other orders default to __INLINE_CODE_180__. |
| sideEffectType | String | false | __INLINE_CODE_181__, __INLINE_CODE_182__, __INLINE_CODE_183__; default __INLINE_CODE_184__. |
| timeInForce | String | false | __INLINE_CODE_185__,__INLINE_CODE_186__,__INLINE_CODE_187__ |
| recvWindow | Number | false | No more than 60000 |
Output
__CODE_BLOCK_130__marginOrderOco
__CODE_BLOCK_131__| Param | Type | Required | Description |
|---|---|---|---|
| symbol | String | true | asset, such as __INLINE_CODE_188__ |
| isIsolated | String | false | for isolated margin or not, __INLINE_CODE_189__, __INLINE_CODE_190__, default __INLINE_CODE_191__ |
| side | String | true | __INLINE_CODE_192__ __INLINE_CODE_193__ |
| type | String | true | |
| quantity | String | false | |
| quoteOrderQty | String | false | |
| price | String | false | |
| stopPrice | String | false | Used with __INLINE_CODE_194__, __INLINE_CODE_195__, __INLINE_CODE_196__, and __INLINE_CODE_197__ orders. |
| stopLimitPrice | String | false | Used with __INLINE_CODE_198__ orders. |
| newClientOrderId | String | false | A unique id among open orders. Automatically generated if not sent. |
| icebergQty | Boolean | false | Used with __INLINE_CODE_199__, __INLINE_CODE_200__, and __INLINE_CODE_201__ to create an iceberg order. |
| newOrderRespType | String | false | Set the response JSON. __INLINE_CODE_202__, __INLINE_CODE_203__, or __INLINE_CODE_204__; __INLINE_CODE_205__ and __INLINE_CODE_206__ order types default to __INLINE_CODE_207__, all other orders default to __INLINE_CODE_208__. |
| sideEffectType | String | false | __INLINE_CODE_209__, __INLINE_CODE_210__, __INLINE_CODE_211__; default __INLINE_CODE_212__. |
| timeInForce | String | false | __INLINE_CODE_213__,__INLINE_CODE_214__,__INLINE_CODE_215__ |
| recvWindow | Number | false | No more than 60000 |
Output
__CODE_BLOCK_132__marginGetOrder
Query Margin Account's Order
__CODE_BLOCK_133__| Param | Type | Required | Description |
|---|---|---|---|
| symbol | String | true | asset,such as BTC |
| isIsolated | String | false | for isolated margin or not, __INLINE_CODE_216__, __INLINE_CODE_217__, default __INLINE_CODE_218__ |
| orderId | String | false | |
| origClientOrderId | String | false | |
| recvWindow | Number | false | The value cannot be greater than __INLINE_CODE_219__ |
Output
__CODE_BLOCK_134__Futures Authenticated REST endpoints
futuresGetOrder
Check an order's status.
- These orders will not be found
- order status is CANCELED or EXPIRED, AND
- order has NO filled trade, AND
- created time + 7 days < current time
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | The pair name |
| orderId | LONG | NO | |
| origClientOrderId | STRING | NO | |
| recvWindow | LONG | NO |
Either orderId or origClientOrderId must be sent.
__CODE_BLOCK_135__Output
__CODE_BLOCK_136__futuresAllOrders
Get all account orders; active, canceled, or filled.
- These orders will not be found
- order status is CANCELED or EXPIRED, AND
- order has NO filled trade, AND
- created time + 7 days < current time
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | The pair name |
| orderId | LONG | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | Default 500; max 1000. |
| recvWindow | LONG | NO |
If orderId is set, it will get orders >= that orderId. Otherwise most recent orders are returned.
__CODE_BLOCK_137__Output
__CODE_BLOCK_138__futuresLeverage
Change user's initial leverage of specific symbol market.
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | The pair name |
| leverage | INT | YES | target initial leverage: int from 1 to 125 |
| recvWindow | LONG | NO |
Output
__CODE_BLOCK_140__futuresMarginType
Change margin type.
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | The pair name |
| marginType | ENUM | YES | ISOLATED, CROSSED |
| recvWindow | LONG | NO |
Output
__CODE_BLOCK_142__futuresPositionMargin
Modify isolated position margin.
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | The pair name |
| positionSide | ENUM | NO | Default BOTH for One-way Mode; LONG or SHORT for Hedge Mode. It must be sent with Hedge Mode. |
| amount | DECIMAL | YES | |
| type | INT | YES | 1: Add position margin,2: Reduce position margin |
| recvWindow | LONG | NO |
Only for isolated symbol.
__CODE_BLOCK_143__Output
__CODE_BLOCK_144__futuresMarginHistory
Get position margin change history.
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | The pair name |
| type | INT | NO | 1: Add position margin,2: Reduce position margin |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | Default 500; |
| recvWindow | LONG | NO |
Output
__CODE_BLOCK_146__futuresIncome
Get income history.
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | NO | The pair name |
| incomeType | STRING | NO | "TRANSFER","WELCOME_BONUS", "REALIZED_PNL", "FUNDING_FEE", "COMMISSION", and "INSURANCE_CLEAR" |
| startTime | LONG | NO | Timestamp in ms to get funding from INCLUSIVE. |
| endTime | LONG | NO | Timestamp in ms to get funding until INCLUSIVE. |
| limit | INT | NO | Default 100; max 1000 |
| recvWindow | LONG | NO |
- If incomeType is not sent, all kinds of flow will be returned
- "trandId" is unique in the same incomeType for a user
Output
__CODE_BLOCK_148__futuresAccountBalance
Get futures account balance
__CODE_BLOCK_149__Output
__CODE_BLOCK_150__futuresUserTrades
Get trades for a specific account and symbol.
__CODE_BLOCK_151__| Param | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | Default 500; max 1000. |
| fromId | LONG | NO | Trade id to fetch from. Default gets most recent trades. |
| recvWindow | LONG | NO |
Output
__CODE_BLOCK_152__futuresLeverageBracket
Get notional and leverage brackets.
__CODE_BLOCK_153__| Param | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | NO | Use if you are only interested in brackets for one symbol |
| recvWindow | LONG | NO |
Output
__CODE_BLOCK_154__WebSockets
Every websocket utility returns a function you can call to close the opened connection and avoid memory issues.
__CODE_BLOCK_155__depth
Live depth market data feed. The first parameter can either be a single symbol string or an array of symbols. If you wish to specify the update speed (can either be __INLINE_CODE_220__ or __INLINE_CODE_221__) of the stream then append the speed at the end of the symbol string as follows: __INLINE_CODE_222__
__CODE_BLOCK_156__Output
__CODE_BLOCK_157__customSubStream
You can add custom sub streams by view docs
__CODE_BLOCK_158__partialDepth
Top levels bids and asks, pushed every second. Valid levels are 5, 10, or 20. Accepts an array of objects for multiple depths. If you wish to specify the update speed (can either be __INLINE_CODE_223__ or __INLINE_CODE_224__) of the stream then append the speed at the end of the symbol string as follows: __INLINE_CODE_225__
__CODE_BLOCK_159__Output
__CODE_BLOCK_160__ticker
24hr Ticker statistics for a symbol pushed every second. Accepts an array of symbols.
__CODE_BLOCK_161__Output
__CODE_BLOCK_162__allTickers
Retrieves all the tickers.
__CODE_BLOCK_163__miniTicker
24hr Mini Ticker statistics for a symbol pushed every second. Accepts an array of symbols.
__CODE_BLOCK_164__Output
__CODE_BLOCK_165__allMiniTickers
Retrieves all the mini tickers.
__CODE_BLOCK_166__candles
Live candle data feed for a given interval. You can pass either a symbol string or a symbol array.
__CODE_BLOCK_167__Output
__CODE_BLOCK_168__trades
Live trade data feed. Pass either a single symbol string or an array of symbols. The trade streams push raw trade information; each trade has a unique buyer and seller.
__CODE_BLOCK_169__Output
__CODE_BLOCK_170__aggTrades
Live trade data feed. Pass either a single symbol string or an array of symbols. The aggregate trade streams push trade information that is aggregated for a single taker order.
__CODE_BLOCK_171__Output
__CODE_BLOCK_172__user
Live user messages data feed.
Requires authentication
__CODE_BLOCK_173__There is also equivalent function to query the margin wallet:
__CODE_BLOCK_174__Note that this method return a promise which will resolve the __INLINE_CODE_226__ callback.
Output
__CODE_BLOCK_175__Futures WebSockets
Every websocket utility returns a function you can call to close the opened connection and avoid memory issues.
__CODE_BLOCK_176__Each websocket utility supports the ability to get a clean callback without data transformation, for this, pass the third attribute FALSE.
__CODE_BLOCK_177__Output
__CODE_BLOCK_178__futuresDepth
Live futuresDepth market data feed. The first parameter can either be a single symbol string or an array of symbols.
__CODE_BLOCK_179__Output
__CODE_BLOCK_180__futuresPartialDepth
Top levels bids and asks, pushed every second. Valid levels are 5, 10, or 20. Accepts an array of objects for multiple depths.
__CODE_BLOCK_181__Output
__CODE_BLOCK_182__futuresTicker
24hr Ticker statistics for a symbol pushed every 500ms. Accepts an array of symbols.
__CODE_BLOCK_183__Output
__CODE_BLOCK_184__futuresAllTickers
Retrieves all the tickers.
__CODE_BLOCK_185__futuresCandles
Live candle data feed for a given interval. You can pass either a symbol string or a symbol array.
__CODE_BLOCK_186__Output
__CODE_BLOCK_187__futuresAggTrades
Live trade data feed. Pass either a single symbol string or an array of symbols. The Aggregate Trade Streams push trade information that is aggregated for a single taker order every 100 milliseconds.
__CODE_BLOCK_188__Output
__CODE_BLOCK_189__futuresLiquidations
Live liquidation data feed. Pass either a single symbol string or an array of symbols. The Liquidation Order Streams push force liquidation order information for specific symbol(s).
__CODE_BLOCK_190__Output
__CODE_BLOCK_191__futuresAllLiquidations
Live liquidation data feed. Pass either a single symbol string or an array of symbols. The All Liquidation Order Streams push force liquidation order information for all symbols in the market.
__CODE_BLOCK_192__Output
__CODE_BLOCK_193__futuresCustomSubStream
You can add custom sub streams by view docs
__CODE_BLOCK_194__futuresUser
Live user messages data feed.
Requires authentication
__CODE_BLOCK_195__Output
__CODE_BLOCK_196__Common
getInfo
To get information about limits from response headers call getInfo()
__CODE_BLOCK_197__Output
__CODE_BLOCK_198__ErrorCodes
An utility error code map is also being exported by the package in order for you to make readable conditionals upon specific errors that could occur while using the API.
__CODE_BLOCK_199__