Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

binance-api-node

Package Overview
Dependencies
Maintainers
1
Versions
180
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

binance-api-node

A node API wrapper for Binance

  • 0.11.28
  • npm
  • Socket score

Version published
Weekly downloads
3.6K
decreased by-5.72%
Maintainers
1
Weekly downloads
 
Created
Source

binance-api-node build cover bnb

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

ParamTypeRequiredInfo
apiKeyStringfalseRequired when making private calls
apiSecretStringfalseRequired when making private calls
getTimeFunctionfalseTime generator, defaults to () => Date.now()
httpBaseStringfalseChanges the default endpoint
httpFuturesStringfalseChanges the default endpoint
wsBaseStringfalseChanges the default endpoint
wsFuturesStringfalseChanges 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())
ParamTypeRequiredDefault
symbolStringfalse
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' }))
ParamTypeRequiredDefault
symbolStringtrue
limitNumberfalse100
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' }))
ParamTypeRequiredDefaultDescription
symbolStringtrue
intervalStringfalse5m1m, 3m, 5m, 15m, 30m, 1h, 2h,
4h, 6h, 8h, 12h, 1d, 3d, 1w, 1M
limitNumberfalse500Max 1000
startTimeNumberfalse
endTimeNumberfalse
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' }))
ParamTypeRequiredDefaultDescription
symbolStringtrue
fromIdStringfalseID to get aggregate trades from INCLUSIVE.
startTimeNumberfalseTimestamp in ms to get aggregate trades from INCLUSIVE.
endTimeNumberfalseTimestamp in ms to get aggregate trades until INCLUSIVE.
limitNumberfalse500Max 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' }))
ParamTypeRequiredDefaultDescription
symbolStringtrue
limitNumberfalse500Max 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' }))
ParamTypeRequired
symbolStringfalse
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' }))
ParamTypeRequired
symbolStringtrue
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())
ParamTypeRequired
symbolStringfalse
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' }))
ParamTypeRequiredDefault
symbolStringtrue
limitNumberfalse100
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' }))
ParamTypeRequiredDefaultDescription
symbolStringtrue
intervalStringfalse5m1m, 3m, 5m, 15m, 30m, 1h, 2h,
4h, 6h, 8h, 12h, 1d, 3d, 1w, 1M
limitNumberfalse500Max 1000
startTimeNumberfalse
endTimeNumberfalse
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' }))
ParamTypeRequiredDefaultDescription
symbolStringtrue
fromIdStringfalseID to get aggregate trades from INCLUSIVE.
startTimeNumberfalseTimestamp in ms to get aggregate trades from INCLUSIVE.
endTimeNumberfalseTimestamp in ms to get aggregate trades until INCLUSIVE.
limitNumberfalse500Max 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' }))
ParamTypeRequiredDefaultDescription
symbolStringtrue
limitNumberfalse500Max 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' }))
ParamTypeRequired
symbolStringfalse
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())
ParamTypeRequired
symbolStringfalse
startTimeLongfalse
endTimeLongfalse
limitLongfalse
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',
  }),
)
ParamTypeRequiredDefaultDescription
symbolStringtrue
sideStringtrueBUY,SELL
typeStringfalseLIMITLIMIT, MARKET
quantityStringtrue
priceStringtrueOptional for MARKET orders
timeInForceStringfalseGTCFOK, GTC, IOC
newClientOrderIdStringfalseA unique id for the order. Automatically generated if not sent.
stopPriceNumberfalseUsed with stop orders
activationPriceNumberfalseUsed with TRAILING_STOP_MARKET
callbackRateNumberfalseUsed with TRAILING_STOP_MARKET
newOrderRespTypeStringfalseRESULTReturns more complete info of the order. ACK, RESULT, or FULL
icebergQtyNumberfalseUsed with iceberg orders
recvWindowNumberfalse

Additional mandatory parameters based on type:

TypeAdditional mandatory parameters
LIMITtimeInForce, quantity, price
MARKETquantity
STOPquantity, price, stopPrice
STOP_LOSS_LIMITtimeInForce, quantity, price, stopPrice
STOP_LOSS_MARKETstopPrice
TAKE_PROFITquantity, price, stopPrice
TAKE_PROFIT_MARKETstopPrice
STOP_PROFIT_LIMITtimeInForce, quantity, price, stopPrice
LIMIT_MAKERquantity, price
TRAILING_STOP_MARKETcallbackRate, activationPrice
  • LIMIT_MAKER are LIMIT orders that will be rejected if they would immediately match and trade as a taker.
  • STOP and TAKE_PROFIT will execute a MARKET order when the stopPrice is reached.
  • Any LIMIT or LIMIT_MAKER type order can be made an iceberg order by sending an icebergQty.
  • Any order with an icebergQty MUST have timeInForce set to GTC.
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,
  }),
)
ParamTypeRequiredDescription
symbolStringtrue
listClientOrderIdStringfalseA unique Id for the entire orderList
sideStringtrueBUY,SELL
quantityNumbertrue
limitClientOrderIdStringfalseA unique Id for the limit order
priceNumbertrue
limitIcebergQtyNumberfalseUsed to make the LIMIT_MAKER leg an iceberg order.
stopClientOrderIdStringfalseA unique Id for the stop loss/stop loss limit leg
stopPriceNumbertrue
stopLimitPriceNumberfalseIf provided, stopLimitTimeInForce is required.
stopIcebergQtyNumberfalseUsed with STOP_LOSS_LIMIT leg to make an iceberg order.
stopLimitTimeInForceStringfalseFOK, GTC, IOC
newOrderRespTypeStringfalseReturns more complete info of the order. ACK, RESULT, or FULL
recvWindowNumberfalseThe value cannot be greater than 60000

Additional Info:

  • Price Restrictions:
    • SELL: Limit Price > Last Price > Stop Price
    • BUY: Limit Price < Last Price < Stop Price
  • Quantity Restrictions:
    • Both legs must have the same quantity.
    • ICEBERG quantities 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,
  }),
)
ParamTypeRequiredDescription
symbolStringtrue
orderIdNumbertrueNot required if origClientOrderId is used
origClientOrderIdStringfalse
recvWindowNumberfalse
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,
  }),
)
ParamTypeRequiredDescription
orderListIdNumbertrueNot required if listClientOrderId is used
listClientOrderIdStringfalse
recvWindowNumberfalse
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,
  }),
)
ParamTypeRequiredDescription
symbolStringtrue
orderIdNumbertrueNot required if origClientOrderId is used
origClientOrderIdStringfalse
newClientOrderIdStringfalseUsed to uniquely identify this cancel. Automatically generated by default.
recvWindowNumberfalse
Output
{
  symbol: 'ETHBTC',
  origClientOrderId: 'bnAoRHgI18gRD80FJmsfNP',
  orderId: 1,
  clientOrderId: 'RViSsQPTp1v3WmLYpeKT11'
}
cancelOrderOco

Cancel an entire Order List.

console.log(
  await client.cancelOrderOco({
    symbol: 'ETHBTC',
    orderListId: 0,
  }),
)
ParamTypeRequiredDescription
symbolStringtrue
orderListIdNumbertrueNot required if listClientOrderId is used
listClientOrderIdStringfalse
newClientOrderIdStringfalseUsed to uniquely identify this cancel. Automatically generated by default.
recvWindowNumberfalse
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'
  }),
)
ParamTypeRequired
symbolStringtrue
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',
  }),
)
ParamTypeRequired
symbolStringtrue
recvWindowNumberfalse
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',
  }),
)
ParamTypeRequiredDefaultDescription
symbolStringtrue
orderIdNumberfalseIf set, it will get orders >= that orderId. Otherwise most recent orders are returned.
limitNumberfalse500Max 500
recvWindowNumberfalse
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,
  }),
)
ParamTypeRequiredDefaultDescription
timestampNumbertrue
startTimeNumberfalse
endTimeNumberfalse
limitIntegerfalse500Max 1000
recvWindowNumberfalseThe value cannot be greater than 60000
formIdNumberfalseIf 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())
ParamTypeRequired
recvWindowNumberfalse
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',
  }),
)
ParamTypeRequiredDefaultDescription
symbolStringtrue
limitNumberfalse500Max 500
fromIdNumberfalseTradeId to fetch from. Default gets most recent trades.
recvWindowNumberfalse
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"
  });
)
ParamTypeRequiredDefaultDescription
typeStringtrue
startTimeNumberfalse
endTimeNumberfalse
limitNumberfalse5min 5, max 30, default 5
recvWindowNumberfalse
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' }))
ParamTypeRequiredDefaultDescription
symbolStringtrue
limitNumberfalse500Max 500
fromIdNumberfalsenullTradeId 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())
ParamTypeRequiredDescription
assetStringfalse
statusNumberfalse0 (0: Email Sent, 1: Cancelled 2: Awaiting Approval, 3: Rejected, 4: Processing, 5: Failure, 6: Completed)
offsetNumberfalse
limitNumberfalse
startTimeNumberfalse
endTimeNumberfalse
recvWindowNumberfalse
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,
  }),
)
ParamTypeRequiredDescription
assetStringtrue
addressStringtrue
amountNumbertrue
nameStringfalseDescription of the address
recvWindowNumberfalse
Output
{
    "id":"7213fea8e94b4a5593d507237e5a555b"
}
depositAddress

Fetch deposit address with network.

console.log(await client.depositAddress({ coin: 'NEO' }))
ParamTypeRequiredDescription
coinStringtrueThe coin name
networkStringfalseThe 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())
ParamTypeRequiredDescription
coinStringfalseThe coin name
statusNumberfalse0 (0:pending, 6: credited but cannot withdraw, 1:success)
startTimeNumberfalseDefault: 90 days from current timestamp
endTimeNumberfalseDefault: present timestamp
offsetNumberfalsedefault: 0
limitNumberfalse
recvWindowNumberfalse
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}$',
        '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.

console.log(await client.universalTransfer({ type: 'MAIN_C2C', asset: 'USDT', amount: '1000' }))
ParamTypeRequiredDescription
typeStringtrue
assetStringtrue
amountStringtrue
recvWindowNumberfalse
Output
{
  tranId:13526853623
}
universalTransferHistory
console.log(await client.universalTransferHistory({ type: 'MAIN_C2C' }))
ParamTypeRequiredDescription
typeStringtrue
startTimeNumberfalse
endTimeNumberfalse
currentNumberfalseDefault 1
sizeNumberfalseDefault 10, Max 100
recvWindowNumberfalse
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())
ParamTypeRequiredDescription
recvWindowNumberfalse
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())
ParamTypeRequiredDescription
recvWindowNumberfalseNo more than 60000
Output
{
   "spotBNBBurn":true,
   "interestBNBBurn": false
}
setBnbBurn
console.log(await client.setBnbBurn({ spotBNBBurn: "true" }))
ParamTypeRequiredDescription
spotBNBBurnStringfalse"true" or "false"; Determines whether to use BNB to pay for trading fees on SPOT
interestBNBBurnStringfalse"true" or "false"; Determines whether to use BNB to pay for margin loan's interest
recvWindowNumberfalseNo more than 60000
Output
{
   "spotBNBBurn":true,
   "interestBNBBurn": false
}
dustLog
console.log(await client.dustLog())
ParamTypeRequiredDescription
startTimeNumberfalse
endTimeNumberfalse
recvWindowNumberfalse
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'] }))
ParamTypeRequiredDescription
asset[String]true
recvWindowNumberfalse
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())
ParamTypeRequiredDescription
recvWindowNumberfalse
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())
ParamTypeRequiredDescription
assetStringfalse
needBtcValuationStringfalse'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())
ParamTypeRequiredDescription
recvWindowNumberfalse
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());
ParamTypeRequiredDescription
recvWindowNumberfalseNo 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' }));
ParamTypeRequiredDescription
assetStringtrueThe asset name
amountNumbertrue
Output
{
    "tranId": 100000001 //transaction id
}
marginRepay

Repay loan for margin account.

console.log(await client.marginRepay({ asset: 'BTC', amount:'0.0001' }));
ParamTypeRequiredDescription
assetStringtrueThe asset name
amountNumbertrue
Output
{
    "tranId": 100000001 //transaction id
}
marginIsolatedAccount

Query Isolated Margin Account Info

console.log(await client.marginIsolatedAccount({ symbols: 'BTCUSDT'}));
ParamTypeRequiredDescription
symbolsStringfalseMax 5 symbols can be sent; separated by ","
recvWindowNumberfalseNo 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' }));
ParamTypeRequiredDescription
symbolStringtrue
recvWindowNumberfalseNo more than 60000
Output
{
   "success": true,
   "symbol": "BTCUSDT"
}
#### enableMarginAccount

Active Isolated Margin trading pair for symbol

console.log(await client.enableMarginAccount({ symbol: 'BTCUSDT' }));
ParamTypeRequiredDescription
symbolStringtrue
recvWindowNumberfalseNo 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'}));
ParamTypeRequiredDescription
assetStringtrue
isolatedSymbolStringfalse
recvWindowNumberfalseNo 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'}));
ParamTypeRequiredDescription
baseStringtrueBase asset of symbol
quoteStringtrueQuote asset of symbol
recvWindowNumberfalseNo 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}));
ParamTypeRequiredDescription
assetStringtrueasset,such as BTC
symbolStringtrue
transFromStringtrue"SPOT", "ISOLATED_MARGIN"
transToStringtrue"SPOT", "ISOLATED_MARGIN"
amountNumbertrue
recvWindowNumberfalseNo more than 60000
Output
{
    //transaction id
    "tranId": 100000001
}
marginIsolatedTransferHistory
console.log(await client.marginIsolatedTransferHistory({ symbol: 'BNBUSDT'}));
ParamTypeRequiredDescription
assetStringfalseasset,such as BTC
symbolStringtrue
transFromStringfalse"SPOT", "ISOLATED_MARGIN"
transToStringfalse"SPOT", "ISOLATED_MARGIN"
startTimeNumberfalse
endTimeNumberfalse
currentNumberfalseCurrent page, default 1
sizeNumberfalseDefault 10, max 100
recvWindowNumberfalseNo 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',
  }));
ParamTypeRequiredDescription
symbolStringtrueasset, such as BTC
isIsolatedStringfalsefor isolated margin or not, TRUE, FALSE, default FALSE
sideStringtrueBUY SELL
typeStringtrue
quantityStringfalse
quoteOrderQtyStringfalse
priceStringfalse
stopPriceStringfalseUsed with STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, and TAKE_PROFIT_LIMIT orders.
newClientOrderIdStringfalseA unique id among open orders. Automatically generated if not sent.
icebergQtyBooleanfalseUsed with LIMIT, STOP_LOSS_LIMIT, and TAKE_PROFIT_LIMIT to create an iceberg order.
newOrderRespTypeStringfalseSet the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK.
sideEffectTypeStringfalseNO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY; default NO_SIDE_EFFECT.
timeInForceStringfalseGTC,IOC,FOK
recvWindowNumberfalseNo 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',
  }));
ParamTypeRequiredDescription
symbolStringtrueasset, such as BTC
isIsolatedStringfalsefor isolated margin or not, TRUE, FALSE, default FALSE
sideStringtrueBUY SELL
typeStringtrue
quantityStringfalse
quoteOrderQtyStringfalse
priceStringfalse
stopPriceStringfalseUsed with STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, and TAKE_PROFIT_LIMIT orders.
stopLimitPriceStringfalseUsed with STOP_LOSS_LIMIT orders.
newClientOrderIdStringfalseA unique id among open orders. Automatically generated if not sent.
icebergQtyBooleanfalseUsed with LIMIT, STOP_LOSS_LIMIT, and TAKE_PROFIT_LIMIT to create an iceberg order.
newOrderRespTypeStringfalseSet the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK.
sideEffectTypeStringfalseNO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY; default NO_SIDE_EFFECT.
timeInForceStringfalseGTC,IOC,FOK
recvWindowNumberfalseNo 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',
  }));
ParamTypeRequiredDescription
symbolStringtrueasset,such as BTC
isIsolatedStringfalsefor isolated margin or not, TRUE, FALSE, default FALSE
orderIdStringfalse
origClientOrderIdStringfalse
recvWindowNumberfalseThe 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
NameTypeMandatoryDescription
symbolSTRINGYESThe pair name
orderIdLONGNO
origClientOrderIdSTRINGNO
recvWindowLONGNO

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
NameTypeMandatoryDescription
symbolSTRINGYESThe pair name
orderIdLONGNO
startTimeLONGNO
endTimeLONGNO
limitINTNODefault 500; max 1000.
recvWindowLONGNO

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.

NameTypeMandatoryDescription
symbolSTRINGYESThe pair name
leverageINTYEStarget initial leverage: int from 1 to 125
recvWindowLONGNO
console.log(
  await client.futuresLeverage({
    symbol: 'BTCUSDT',
    leverage: 21,
  })
)
Output
{
    "leverage": 21,
    "maxNotionalValue": "1000000",
    "symbol": "BTCUSDT"
}
futuresMarginType

Change margin type.

NameTypeMandatoryDescription
symbolSTRINGYESThe pair name
marginTypeENUMYESISOLATED, CROSSED
recvWindowLONGNO
console.log(
  await client.futuresMarginType({
    symbol: 'BTCUSDT',
    marginType: 'ISOLATED',
  })
)
Output
{
    "code": 200,
    "msg": "success"
}
futuresPositionMargin

Modify isolated position margin.

NameTypeMandatoryDescription
symbolSTRINGYESThe pair name
positionSideENUMNODefault BOTH for One-way Mode;
LONG or SHORT for Hedge Mode.
It must be sent with Hedge Mode.
amountDECIMALYES
typeINTYES1: Add position margin,2: Reduce position margin
recvWindowLONGNO

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.

NameTypeMandatoryDescription
symbolSTRINGYESThe pair name
typeINTNO1: Add position margin,2: Reduce position margin
startTimeLONGNO
endTimeLONGNO
limitINTNODefault 500;
recvWindowLONGNO
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.

NameTypeMandatoryDescription
symbolSTRINGNOThe pair name
incomeTypeSTRINGNO"TRANSFER","WELCOME_BONUS", "REALIZED_PNL",
"FUNDING_FEE", "COMMISSION", and "INSURANCE_CLEAR"
startTimeLONGNOTimestamp in ms to get funding from INCLUSIVE.
endTimeLONGNOTimestamp in ms to get funding until INCLUSIVE.
limitINTNODefault 100; max 1000
recvWindowLONGNO
  • 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',
  }),
)
ParamTypeMandatoryDescription
symbolSTRINGYES
startTimeLONGNO
endTimeLONGNO
limitINTNODefault 500; max 1000.
fromIdLONGNOTrade id to fetch from. Default gets most recent trades.
recvWindowLONGNO
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
  }),
)
ParamTypeMandatoryDescription
symbolSTRINGNOUse if you are only interested in brackets for one symbol
recvWindowLONGNO
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

FAQs

Package last updated on 10 Dec 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc