Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

binance-api-node

apercu16.9kMIT0.12.9TypeScript support: included

A node API wrapper for Binance

readme

binance-api-node build 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

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())
<summary>Output</summary>
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
<summary>Output</summary>
{
  "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
<summary>Output</summary>
{
  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
<summary>Output</summary>
;[
  {
    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 1 hour.

Note: If frondId, startTime, and endTime are not sent, the most recent aggregate trades will be returned.

<summary>Output</summary>
;[
  {
    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
<summary>Output</summary>
;[
  {
    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
<summary>Output</summary>
{
  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
<summary>Output</summary>
{
  "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
<summary>Output</summary>
{
  ETHBTC: '0.05392500',
  LTCBTC: '0.01041100',
  ...
}

allBookTickers

Best price/qty on the order book for all symbols.

console.log(await client.allBookTickers())
<summary>Output</summary>
{
  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())
<summary>Output</summary>
1508478457643

futures exchangeInfo

Get the current exchange trading rules and symbol information.

console.log(await client.futuresExchangeInfo())
<summary>Output</summary>
{
  "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
<summary>Output</summary>
{
  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
<summary>Output</summary>
;[
  {
    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.

<summary>Output</summary>
;[
  {
    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
<summary>Output</summary>
;[
  {
    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
<summary>Output</summary>
{
  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 symbol, not providing a symbol will return latest price for all symbols and is resource-expensive.

console.log(await client.futuresPrices())
Param Type Required
symbol String false
<summary>Output</summary>
{
  BTCUSDT: '8590.05392500',
  ETHUSDT: '154.1100',
  ...
}

futures allBookTickers

Best price/qty on the order book for all symbols.

console.log(await client.futuresAllBookTickers())
<summary>Output</summary>
{
  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())
<summary>Output</summary>
{
    "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
<summary>Output</summary>
;[
  {
    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,
  },
]

Delivery Public REST Endpoints

delivery ping

Test connectivity to the API.

console.log(await client.deliveryPing())

delivery time

Test connectivity to the Rest API and get the current server time.

console.log(await client.deliveryTime())
<summary>Output</summary>
1508478457643

delivery exchangeInfo

Get the current exchange trading rules and symbol information.

console.log(await client.deliveryExchangeInfo())
<summary>Output</summary>
{
  timezone: 'UTC',
  serverTime: 1663099219744,
  rateLimits: [
    {
      rateLimitType: 'REQUEST_WEIGHT',
      interval: 'MINUTE',
      intervalNum: 1,
      limit: 2400
    },
    {
      rateLimitType: 'ORDERS',
      interval: 'MINUTE',
      intervalNum: 1,
      limit: 1200
    }
  ],
  exchangeFilters: [],
  symbols: [...]
}

delivery book

Get the order book for a symbol.

console.log(await client.deliveryBook({ symbol: 'TRXUSD_PERP' }))
Param Type Required Default
symbol String true
limit Number false 500
<summary>Output</summary>
{
  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' }
   ]
}

delivery candles

Retrieves Candlestick for a symbol. Candlesticks are uniquely identified by their open time.

console.log(await client.deliveryCandles({ symbol: 'TRXUSD_PERP' }))
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
<summary>Output</summary>
[
  {
    openTime: 1663104600000,
    open: '0.06091',
    high: '0.06091',
    low: '0.06086',
    close: '0.06090',
    volume: '7927',
    closeTime: 1663104899999,
    baseVolume: '1302212.12820796',
    trades: 75,
    quoteAssetVolume: '386',
    baseAssetVolume: '63382.78318786'
  }
]

delivery 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.deliveryAggTrades({ symbol: 'TRXUSD_PERP' }))
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 1000

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 fromId, startTime, and endTime are not sent, the most recent aggregate trades will be returned.

Note : Only market trades will be aggregated and returned, which means the insurance fund trades and ADL trades won't be aggregated.

<summary>Output</summary>
[
  {
    aggId: 14642023,
    symbol: 'TRXUSD_PERP',
    price: '0.06087',
    quantity: '50',
    firstId: 26319898,
    lastId: 26319898,
    timestamp: 1663105187120,
    isBuyerMaker: false,
  }
]

delivery trades

Get recent trades of a symbol.

console.log(await client.deliveryTrades({ symbol: 'TRXUSD_PERP' }))
Param Type Required Default Description
symbol String true
limit Number false 500 Max 1000
<summary>Output</summary>
;[
  {
    id: 26319660,
    price: '0.06097',
    qty: '28',
    baseQty: '4592.42250287',
    time: 1663103746267,
    isBuyerMaker: true
  },
]

delivery dailyStats

24 hour price change statistics, not providing a symbol will return all tickers and is resource-expensive.

console.log(await client.deliveryDailyStats({ symbol: 'TRXUSD_PERP' }))
Param Type Required
symbol String false
pair String false
<summary>Output</summary>
{
  symbol: 'TRXUSD_PERP',
  pair: 'TRXUSD',
  priceChange: '-0.00277',
  priceChangePercent: '-4.353',
  weightedAvgPrice: '0.06248010',
  lastPrice: '0.06087',
  lastQty: '4',
  openPrice: '0.06364',
  highPrice: '0.06395',
  lowPrice: '0.06069',
  volume: '545316',
  baseVolume: '87278342.48218514',
  openTime: 1663019640000,
  closeTime: 1663106045576,
  firstId: 26308774,
  lastId: 26320065,
  count: 11292
}

delivery prices

Latest price for all symbols.

console.log(await client.futuresPrices())
<summary>Output</summary>
{
  BTCUSDT: '8590.05392500',
  ETHUSDT: '154.1100',
  ...
}

delivery allBookTickers

Best price/qty on the order book for all symbols.

console.log(await client.deliveryAllBookTickers())
<summary>Output</summary>
{
  BTCUSD_PERP: {
    symbol: 'BTCUSD_PERP',
    pair: 'BTCUSD',
    bidPrice: '20120.9',
    bidQty: '13673',
    askPrice: '20121.0',
    askQty: '2628',
    time: 1663106372658
  },
  ETHUSD_PERP: {
    symbol: 'ETHUSD_PERP',
    pair: 'ETHUSD',
    bidPrice: '1593.63',
    bidQty: '7210',
    askPrice: '1593.64',
    askQty: '27547',
    time: 1663106372667
  }
  ...
}

delivery markPrice

Mark Price and Funding Rate.

console.log(await client.deliveryMarkPrice())
<summary>Output</summary>
[
  {
    symbol: 'BTCUSD_221230',
    pair: 'BTCUSD',
    markPrice: '20158.81560758',
    indexPrice: '20152.05327273',
    estimatedSettlePrice: '20147.96717735',
    lastFundingRate: '',
    interestRate: '',
    nextFundingTime: 0,
    time: 1663106459005
  },
  {
    symbol: 'FILUSD_PERP',
    pair: 'FILUSD',
    markPrice: '5.88720470',
    indexPrice: '5.89106242',
    estimatedSettlePrice: '5.89377086',
    lastFundingRate: '0.00010000',
    interestRate: '0.00010000',
    nextFundingTime: 1663113600000,
    time: 1663106459005
  }
  ...
]

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_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.
<summary>Output</summary>
{
  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 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
<summary>Output</summary>
{
  "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
<summary>Output</summary>
{
  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
<summary>Output</summary>
{
  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
<summary>Output</summary>
{
  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
<summary>Output</summary>
{
  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
<summary>Output</summary>
[
  {
    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
<summary>Output</summary>
;[
  {
    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
<summary>Output</summary>
;[
  {
    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
<summary>Output</summary>
;[
  {
    "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
<summary>Output</summary>
{
  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 1000
fromId Number false | TradeId to fetch from. Default gets most recent trades.
orderId Number false | This can only be used in combination with symbol.
startTime Number false |
endTime Number false |
recvWindow Number false 5000 The value cannot be greater than 60000.
<summary>Output</summary>
;[
  {
    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
<summary>Output</summary>
{
   "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.
<summary>Output</summary>
;[
  {
    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
<summary>Output</summary>
[
    {
        "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
<summary>Output</summary>
{
    "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
<summary>Output</summary>
{
  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
<summary>Output</summary>
[
    {
        "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())
<summary>Output</summary>
[
    {
      "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())
<summary>Output</summary>
[
  {
    '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' }))
Param Type Required Description
type String true
asset String true
amount String true
recvWindow Number false
<summary>Output</summary>
{
  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
<summary>Output</summary>
{
  "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
<summary>Output</summary>
{
        "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
<summary>Output</summary>
{
   "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
<summary>Output</summary>
{
   "spotBNBBurn":true,
   "interestBNBBurn": false
}

dustLog

console.log(await client.dustLog())
Param Type Required Description
startTime Number false
endTime Number false
recvWindow Number false
<summary>Output</summary>
{
        "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
<summary>Output</summary>

`js { "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, "service