Ninety-nine Pitchers of Malt

    node-binance-api
    TypeScript icon, indicating that this package has built-in type declarations

    0.13.0 • Public • Published

    Binance Community API Yearly Downloads Last Commit

    Latest Version GitHub last commit Monthly Downloads jaggedsoft on Twitter

    NPM

    Node Binance API

    This project is designed to help you make your own projects that interact with the Binance API. You can stream candlestick chart data, market depth, or use other advanced features such as setting stop losses and iceberg orders. This project seeks to have complete API coverage including WebSockets.

    Futures API & StreamsSpot Trading API & StreamsMargin APILending API
    ExamplesTroubleshootingChangelogSupport

    Installation: npm install -s node-binance-api

    npm install node-binance-api

    Getting started

    const Binance = require('node-binance-api');
    const binance = new Binance().options({
      APIKEY: '<key>',
      APISECRET: '<secret>'
    });

    Binance Futures API

    Futures Prices

    console.info( await binance.futuresPrices() );

    Futures Account Balances & Positions

    console.info( await binance.futuresAccount() );

    Futures Balances

    console.info( await binance.futuresBalance() );

    Futures Limit Buy

    console.info( await binance.futuresBuy( 'BTCUSDT', 0.1, 8222 ) );

    Futures Limit Sell

    console.info( await binance.futuresSell( 'BTCUSDT', 0.5, 11111 ) );

    Futures Market Buy

    console.info( await binance.futuresMarketBuy( 'BNBUSDT', 5 ) );

    Futures Market Sell

    console.info( await binance.futuresMarketSell( 'TRXUSDT', 1 ) );

    Futures Place Multiple Orders

    let orders = [
      {
      symbol:"BTCUSDT",
      side: "BUY",
      type: "MARKET",
      quantity: "0.01",
      },
      {
      symbol:"BNBUSDT",
      side: "SELL",
      type: "MARKET",
      quantity: "0.5",
      }
    ]
    console.info( await binance.futuresMultipleOrders(orders) );

    Futures Market Orders: Get the fill price using newOrderRespType

    console.info( await binance.futuresMarketBuy( 'BNBUSDT', amount, { newOrderRespType: 'RESULT' } ) );

    Futures reduceOnly Order Example

    if ( side == 'LONG' ) order = await binance.futuresMarketSell( obj.symbol, amount, {reduceOnly: true} )
    else order = await binance.futuresMarketBuy( obj.symbol, amount, {reduceOnly: true} )

    Get Futures Positions

    console.info( await binance.futuresPositionRisk() );
    View Example
    let position_data = await binance.futuresPositionRisk(), markets = Object.keys( position_data );
    for ( let market of markets ) {
      let obj = position_data[market], size = Number( obj.positionAmt );
      if ( size == 0 ) continue;
      console.info( `${leverage}x\t${market}\t${obj.unRealizedProfit}` );
      //console.info( obj ); //positionAmt entryPrice markPrice unRealizedProfit liquidationPrice leverage marginType isolatedMargin isAutoAddMargin maxNotionalValue
    }

    Adjust Leverage (1-125x)

    console.info( await binance.futuresLeverage( 'ETHUSDT', 50 ) );

    Adjust Margin Type (ISOLATED, CROSSED)

    console.info( await binance.futuresMarginType( 'BTCUSDT', 'ISOLATED' ) );

    Adjust Position Margin

    // Type: 1: Add postion margin,2: Reduce postion margin
    console.info( await binance.futuresPositionMargin( "TRXUSDT", amount, type ) );
    console.info( await binance.futuresTime() );
    console.info( await binance.futuresExchangeInfo() );
    console.info( await binance.futuresCandles( "TRXUSDT", "1m" ) );
    console.info( await binance.futuresDepth( "ADAUSDT" ) );
    console.info( await binance.futuresQuote() );
    console.info( await binance.futuresQuote( "BCHUSDT" ) );
    console.info( await binance.futuresDaily() );
    console.info( await binance.futuresOpenInterest( "BTCUSDT" ) );
    console.info( await binance.futuresMarkPrice() );
    console.info( await binance.futuresMarkPrice( "ETHUSDT" ) );
    console.info( await binance.futuresTrades( "LTCUSDT" ) );
    console.info( await binance.futuresAggTrades( "XTZUSDT" ) );
    console.info( await binance.futuresLiquidationOrders() );
    console.info( await binance.futuresFundingRate() );
    console.info( await binance.futuresHistoricalTrades( "XMRUSDT" ) );
    console.info( await binance.futuresLeverageBracket( "LINKUSDT" ) );
    console.info( await binance.futuresIncome() );
    console.info( await binance.futuresCancelAll( "BTCUSDT" ) );
    console.info( await binance.futuresCancel( "BTCUSDT", {orderId: "1025137386"} ) );
    console.info( await binance.futuresCountdownCancelAll( "BTCUSDT", 45000 ) );
    console.info( await binance.futuresOrderStatus( "BTCUSDT", {orderId: "1025137386"} ) );
    console.info( await binance.futuresOpenOrders() );
    console.info( await binance.futuresOpenOrders( "BTCUSDT" ) );
    console.info( await binance.futuresAllOrders() );
    console.info( await binance.futuresAllOrders( "BTCUSDT" ) );
    console.info( await binance.futuresUserTrades( "BTCUSDT" ) );
    console.info( await binance.futuresGetDataStream() );
    console.info( await binance.futuresPositionMarginHistory( "TRXUSDT" ) );
    console.info( await binance.promiseRequest( 'v1/time' ) );
    // Batch orders, remaining WebSocket streams, and better documentation will be come later

    Futures Historical Bulk Data Download API

    Get Download ID
    console.info( await binance.futuresHistDataId(
      "BTCUSDT", {
        startTime: new Date().getTime() - 24 * 60 * 60 * 1000,
        endTime: new Date().getTime(),
        dataType: 'T_TRADE'
      } )
    )
    Get Download Link
    console.info( await binance.futuresDownloadLink(7343) )

    Futures WebSocket Streams

    Futures miniTicker stream for all symbols

    binance.futuresMiniTickerStream( miniTicker => {
        console.info( miniTicker );
    } );

    Futures miniTicker stream for a symbol

    binance.futuresMiniTickerStream( 'BTCUSDT', console.log );

    Futures bookTicker stream for all symbols

    binance.futuresBookTickerStream( console.log );

    Futures bookTicker stream for a symbol

    binance.futuresBookTickerStream( 'BTCUSDT', console.log );

    Futures prevDay ticker stream for all symbols

    binance.futuresTickerStream( console.log );

    Futures prevDay ticker stream for a symbol

    binance.futuresTickerStream( 'BTCUSDT', console.log );

    Futures mark price stream for all symbols

    binance.futuresMarkPriceStream( console.log );

    Futures mark price stream for a symbol

    binance.futuresMarkPriceStream( 'BTCUSDT', console.log );

    Futures aggregate trade stream for a symbol

    binance.futuresAggTradeStream( 'BTCUSDT', console.log );

    Futures complete chart cache

    binance.futuresChart( 'BTCUSDT', '1m', console.log );

    Futures Liquidation Stream for all symbols

    binance.futuresLiquidationStream( console.log );

    Futures Liquidation Stream for a symbol

    binance.futuresLiquidationStream( 'BTCUSDT', console.log );

    Connect to a custom endpoint. Easier shortcut functions will come later

    binance.futuresSubscribe( 'btcusdt@kline_4h', console.log );

    Terminate an existing socket

    binance.futuresTerminate( 'btcusdt@kline_4h' );

    Return active sockets and subscriptions

    console.log( binance.futuresSubscriptions() );

    Delivery API (Futures w/Expiration Date)

    deliveryBuy
    deliverySell
    deliveryMarketBuy
    deliveryMarketSell
    deliveryPrices
    deliveryDaily
    deliveryOpenInterest
    deliveryExchangeInfo
    deliveryOpenOrders
    deliveryAllOrders
    deliveryCandles
    deliveryIndexKlines
    deliveryContinuousKlines
    deliveryMarkPriceKlines
    deliveryMarkPrice
    deliveryHistoricalTrades
    deliveryTrades
    deliveryAggTrades
    deliveryUserTrades
    deliveryLiquidationOrders
    deliveryPositionRisk
    deliveryLeverage
    deliveryMarginType
    deliveryPositionMargin
    deliveryPositionMarginHistory
    deliveryIncome
    deliveryBalance
    deliveryAccount
    deliveryDepth
    deliveryQuote
    deliveryLeverageBracket
    deliveryOrderStatus
    deliveryCancel
    deliveryCancelAll
    deliveryCountdownCancelAll
    deliveryOrder
    deliveryGetDataStream
    deliveryCloseDataStream
    deliveryKeepDataStream
    deliveryPing
    deliveryTime
    deliveryOrder
    

    Binance API (Spot Trading)

    Getting latest price of all symbols

    let ticker = await binance.prices();
    console.info(`Price of BNB: ${ticker.BNBUSDT}`);

    Getting latest price of a symbol

    binance.prices('BNBBTC', (error, ticker) => {
      console.info("Price of BNB: ", ticker.BNBBTC);
    });
    View Response
    { ETHBTC: '0.07003500',
      LTCBTC: '0.01176700',
      BNBBTC: '0.00035735',
      NEOBTC: '0.00809500',
      QTUMETH: '0.03851200',
      EOSETH: '0.00189600',
      SNTETH: '0.00008595',
      BNTETH: '0.00738800',
      BCCBTC: '0.08104000',
      GASBTC: '0.00629800',
      BNBETH: '0.00509495',
      BTMETH: '0.00018900',
      HCCBTC: '0.00000180',
      BTCUSDT: '4464.44000000',
      ETHUSDT: '312.89000000',
      HSRBTC: '0.00289000',
      OAXETH: '0.00180000',
      DNTETH: '0.00014190',
      MCOETH: '0.02358300',
      ICNETH: '0.00557000',
      ELCBTC: '0.00000053',
      MCOBTC: '0.00166900',
      WTCBTC: '0.00184138',
      WTCETH: '0.02601700',
      LLTBTC: '0.00001669',
      LRCBTC: '0.00001100',
      LRCETH: '0.00016311',
      QTUMBTC: '0.00271600',
      YOYOBTC: '0.00000481',
      OMGBTC: '0.00187800',
      OMGETH: '0.02677400',
      ZRXBTC: '0.00004319',
      ZRXETH: '0.00060800',
      STRATBTC: '0.00087800',
      STRATETH: '0.01218800',
      SNGLSBTC: '0.00003649',
      SNGLSETH: '0.00051280',
      BQXBTC: '0.00013150',
      BQXETH: '0.00184240',
      KNCBTC: '0.00038969',
      KNCETH: '0.00550320',
      FUNBTC: '0.00000573',
      FUNETH: '0.00008433',
      SNMBTC: '0.00003176',
      SNMETH: '0.00047119',
      NEOETH: '0.11500200',
      IOTABTC: '0.00012136',
      IOTAETH: '0.00171001',
      LINKBTC: '0.00010646',
      LINKETH: '0.00150999',
      XVGBTC: '0.00000145',
      XVGETH: '0.00002059',
      CTRBTC: '0.00025532',
      CTRETH: '0.00375180',
      SALTBTC: '0.00080100',
      SALTETH: '0.01140000',
      MDABTC: '0.00057002',
      MDAETH: '0.00819490' }
    //Price of BNB: 0.00035735

    Getting list of current balances

    binance.balance((error, balances) => {
      if ( error ) return console.error(error);
      console.info("balances()", balances);
      console.info("ETH balance: ", balances.ETH.available);
    });
    // If you have problems with this function,
    // see Troubleshooting at the bottom of this page.
    View Response
    { BTC: { available: '0.77206464', onOrder: '0.00177975' },
      LTC: { available: '0.00000000', onOrder: '0.00000000' },
      ETH: { available: '1.14109900', onOrder: '0.00000000' },
      BNC: { available: '0.00000000', onOrder: '0.00000000' },
      ICO: { available: '0.00000000', onOrder: '0.00000000' },
      NEO: { available: '0.00000000', onOrder: '0.00000000' },
      BNB: { available: '41.33761879', onOrder: '0.00000000' },
      QTUM: { available: '0.00000000', onOrder: '0.00000000' },
      EOS: { available: '0.00000000', onOrder: '0.00000000' },
      SNT: { available: '0.00000000', onOrder: '0.00000000' },
      BNT: { available: '0.00000000', onOrder: '0.00000000' },
      GAS: { available: '0.00000000', onOrder: '0.00000000' },
      BCC: { available: '0.00000000', onOrder: '0.00000000' },
      BTM: { available: '0.00000000', onOrder: '0.00000000' },
      USDT: { available: '0.00000000', onOrder: '0.00000000' },
      HCC: { available: '0.00000000', onOrder: '0.00000000' },
      HSR: { available: '0.00000000', onOrder: '0.00000000' },
      OAX: { available: '0.00000000', onOrder: '0.00000000' },
      DNT: { available: '0.00000000', onOrder: '0.00000000' },
      MCO: { available: '0.00000000', onOrder: '0.00000000' },
      ICN: { available: '0.00000000', onOrder: '0.00000000' },
      ELC: { available: '0.00000000', onOrder: '0.00000000' },
      PAY: { available: '0.00000000', onOrder: '0.00000000' },
      ZRX: { available: '0.00000000', onOrder: '0.00000000' },
      OMG: { available: '0.00000000', onOrder: '0.00000000' },
      WTC: { available: '0.00000000', onOrder: '0.00000000' },
      LRX: { available: '0.00000000', onOrder: '0.00000000' },
      YOYO: { available: '0.00000000', onOrder: '0.00000000' },
      LRC: { available: '0.00000000', onOrder: '0.00000000' },
      LLT: { available: '0.00000000', onOrder: '0.00000000' },
      TRX: { available: '0.00000000', onOrder: '0.00000000' },
      FID: { available: '0.00000000', onOrder: '0.00000000' },
      SNGLS: { available: '0.00000000', onOrder: '0.00000000' },
      STRAT: { available: '0.00000000', onOrder: '0.00000000' },
      BQX: { available: '0.00000000', onOrder: '0.00000000' },
      FUN: { available: '0.00000000', onOrder: '0.00000000' },
      KNC: { available: '0.00000000', onOrder: '0.00000000' },
      CDT: { available: '0.00000000', onOrder: '0.00000000' },
      XVG: { available: '0.00000000', onOrder: '0.00000000' },
      IOTA: { available: '0.00000000', onOrder: '0.00000000' },
      SNM: { available: '0.76352833', onOrder: '0.00000000' },
      LINK: { available: '0.00000000', onOrder: '0.00000000' },
      CVC: { available: '0.00000000', onOrder: '0.00000000' },
      TNT: { available: '0.00000000', onOrder: '0.00000000' },
      REP: { available: '0.00000000', onOrder: '0.00000000' },
      CTR: { available: '0.00000000', onOrder: '0.00000000' },
      MDA: { available: '0.00000000', onOrder: '0.00000000' },
      MTL: { available: '0.00000000', onOrder: '0.00000000' },
      SALT: { available: '0.00000000', onOrder: '0.00000000' },
      NULS: { available: '0.00000000', onOrder: '0.00000000' } }
    //ETH balance:  1.14109900

    Getting bid/ask prices for a symbol

    binance.bookTickers('BNBBTC', (error, ticker) => {
      console.info("bookTickers", ticker);
    });
    View Response
    {
      "symbol": "BNBBTC",
      "bidPrice": "4.00000000",
      "bidQty": "431.00000000",
      "askPrice": "4.00000200",
      "askQty": "9.00000000"
    }
    
    // from: https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#symbol-order-book-ticker

    Getting bid/ask prices for all symbols

    binance.bookTickers((error, ticker) => {
      console.info("bookTickers()", ticker);
      console.info("Price of BNB: ", ticker.BNBBTC);
    });
    View Response
     { ETHBTC:
       { bid: '0.06201000',
         bids: '1.28200000',
         ask: '0.06201300',
         asks: '0.34200000' },
      LTCBTC:
       { bid: '0.01042000',
         bids: '41.45000000',
         ask: '0.01048700',
         asks: '16.81000000' },
      BNBBTC:
       { bid: '0.00028754',
         bids: '727.00000000',
         ask: '0.00028755',
         asks: '400.00000000' },
      NEOBTC:
       { bid: '0.00601800',
         bids: '16.82000000',
         ask: '0.00603700',
         asks: '73.43000000' },
      QTUMETH:
       { bid: '0.04062900',
         bids: '1.30000000',
         ask: '0.04075300',
         asks: '0.58000000' },
      EOSETH:
       { bid: '0.00191400',
         bids: '202.53000000',
         ask: '0.00192500',
         asks: '26.08000000' },
      SNTETH:
       { bid: '0.00007610',
         bids: '403.00000000',
         ask: '0.00007638',
         asks: '19850.00000000' },
      BNTETH:
       { bid: '0.00736800',
         bids: '7.82000000',
         ask: '0.00745900',
         asks: '177.32000000' },
      BCCBTC:
       { bid: '0.06862000',
         bids: '1.56100000',
         ask: '0.06893600',
         asks: '0.81100000' },
      GASBTC:
       { bid: '0.00451700',
         bids: '44.00000000',
         ask: '0.00489700',
         asks: '44.95000000' },
      BNBETH:
       { bid: '0.00462592',
         bids: '32.00000000',
         ask: '0.00467982',
         asks: '57.00000000' },
      BTMETH:
       { bid: '0.00000000',
         bids: '0.00000000',
         ask: '0.00000000',
         asks: '0.00000000' },
      HCCBTC:
       { bid: '0.00000000',
         bids: '0.00000000',
         ask: '0.00000000',
         asks: '0.00000000' },
      BTCUSDT:
       { bid: '4786.01000000',
         bids: '0.58627700',
         ask: '4796.10000000',
         asks: '0.28486400' },
      ETHUSDT:
       { bid: '297.01000000',
         bids: '7.17846000',
         ask: '297.90000000',
         asks: '0.30742000' },
      HSRBTC:
       { bid: '0.00000000',
         bids: '0.00000000',
         ask: '0.00000000',
         asks: '0.00000000' },
      OAXETH:
       { bid: '0.00156200',
         bids: '96.00000000',
         ask: '0.00169900',
         asks: '552.90000000' },
      DNTETH:
       { bid: '0.00011782',
         bids: '1273.00000000',
         ask: '0.00012045',
         asks: '238.00000000' },
      MCOETH:
       { bid: '0.02651200',
         bids: '0.94000000',
         ask: '0.02681200',
         asks: '8.59000000' },
      ICNETH:
       { bid: '0.00484600',
         bids: '448.76000000',
         ask: '0.00490000',
         asks: '0.01000000' },
      ELCBTC:
       { bid: '0.00000000',
         bids: '0.00000000',
         ask: '0.00000000',
         asks: '0.00000000' },
      MCOBTC:
       { bid: '0.00164600',
         bids: '1.00000000',
         ask: '0.00164700',
         asks: '12.11000000' },
      WTCBTC:
       { bid: '0.00132101',
         bids: '124.00000000',
         ask: '0.00133200',
         asks: '98.00000000' },
      WTCETH:
       { bid: '0.02130000',
         bids: '784.35000000',
         ask: '0.02140800',
         asks: '10.70000000' },
      LLTBTC:
       { bid: '0.00000000',
         bids: '0.00000000',
         ask: '0.00000000',
         asks: '0.00000000' },
      LRCBTC:
       { bid: '0.00000000',
         bids: '0.00000000',
         ask: '0.00000000',
         asks: '0.00000000' },
      LRCETH:
       { bid: '0.00000000',
         bids: '0.00000000',
         ask: '0.00000000',
         asks: '0.00000000' },
      QTUMBTC:
       { bid: '0.00252800',
         bids: '123.48000000',
         ask: '0.00253200',
         asks: '10.50000000' },
      YOYOBTC:
       { bid: '0.00000000',
         bids: '0.00000000',
         ask: '0.00000000',
         asks: '0.00000000' },
      OMGBTC:
       { bid: '0.00164900',
         bids: '25.94000000',
         ask: '0.00166400',
         asks: '0.90000000' },
      OMGETH:
       { bid: '0.02660000',
         bids: '9.86000000',
         ask: '0.02698200',
         asks: '43.21000000' },
      ZRXBTC:
       { bid: '0.00003936',
         bids: '117.00000000',
         ask: '0.00003982',
         asks: '8596.00000000' },
      ZRXETH:
       { bid: '0.00062801',
         bids: '239.00000000',
         ask: '0.00063595',
         asks: '2446.00000000' },
      STRATBTC:
       { bid: '0.00070600',
         bids: '43.43000000',
         ask: '0.00070900',
         asks: '15.00000000' },
      STRATETH:
       { bid: '0.01092100',
         bids: '9.00000000',
         ask: '0.01162700',
         asks: '47.90000000' },
      SNGLSBTC:
       { bid: '0.00003162',
         bids: '366.00000000',
         ask: '0.00003183',
         asks: '308.00000000' },
      SNGLSETH:
       { bid: '0.00050064',
         bids: '300.00000000',
         ask: '0.00051543',
         asks: '64.00000000' },
      BQXBTC:
       { bid: '0.00013334',
         bids: '13.00000000',
         ask: '0.00013889',
         asks: '1224.00000000' },
      BQXETH:
       { bid: '0.00200740',
         bids: '990.00000000',
         ask: '0.00228890',
         asks: '80.00000000' },
      KNCBTC:
       { bid: '0.00029509',
         bids: '300.00000000',
         ask: '0.00029842',
         asks: '4.00000000' },
      KNCETH:
       { bid: '0.00481840',
         bids: '411.00000000',
         ask: '0.00484440',
         asks: '10.00000000' },
      FUNBTC:
       { bid: '0.00000461',
         bids: '217.00000000',
         ask: '0.00000465',
         asks: '16668.00000000' },
      FUNETH:
       { bid: '0.00007486',
         bids: '2004.00000000',
         ask: '0.00007617',
         asks: '1419.00000000' },
      SNMBTC:
       { bid: '0.00002462',
         bids: '6922.00000000',
         ask: '0.00002495',
         asks: '404.00000000' },
      SNMETH:
       { bid: '0.00040181',
         bids: '373.00000000',
         ask: '0.00043404',
         asks: '9281.00000000' },
      NEOETH:
       { bid: '0.09610400',
         bids: '8.02000000',
         ask: '0.09891100',
         asks: '5.00000000' },
      IOTABTC:
       { bid: '0.00009674',
         bids: '206.00000000',
         ask: '0.00009721',
         asks: '269.00000000' },
      IOTAETH:
       { bid: '0.00155061',
         bids: '1231.00000000',
         ask: '0.00158100',
         asks: '22.00000000' },
      LINKBTC:
       { bid: '0.00007670',
         bids: '2278.00000000',
         ask: '0.00007697',
         asks: '8000.00000000' },
      LINKETH:
       { bid: '0.00123000',
         bids: '3492.00000000',
         ask: '0.00123999',
         asks: '4000.00000000' },
      XVGBTC:
       { bid: '0.00000111',
         bids: '47758.00000000',
         ask: '0.00000113',
         asks: '215443.00000000' },
      XVGETH:
       { bid: '0.00001801',
         bids: '8329.00000000',
         ask: '0.00001842',
         asks: '85146.00000000' },
      CTRBTC:
       { bid: '0.00019801',
         bids: '650.00000000',
         ask: '0.00021103',
         asks: '49.00000000' },
      CTRETH:
       { bid: '0.00320200',
         bids: '538.00000000',
         ask: '0.00351990',
         asks: '2081.00000000' },
      SALTBTC:
       { bid: '0.00063900',
         bids: '57.13000000',
         ask: '0.00064000',
         asks: '96.48000000' },
      SALTETH:
       { bid: '0.01030200',
         bids: '728.27000000',
         ask: '0.01038900',
         asks: '0.04000000' },
      MDABTC:
       { bid: '0.00039031',
         bids: '282.00000000',
         ask: '0.00039994',
         asks: '540.00000000' },
      MDAETH:
       { bid: '0.00635500',
         bids: '432.00000000',
         ask: '0.00641990',
         asks: '185.00000000' },
      MTLBTC:
       { bid: '0.00145500',
         bids: '45.00000000',
         ask: '0.00145600',
         asks: '42.12000000' },
      MTLETH:
       { bid: '0.02300100',
         bids: '96.10000000',
         ask: '0.02477400',
         asks: '131.90000000' },
      SUBBTC:
       { bid: '0.00003250',
         bids: '4474.00000000',
         ask: '0.00003380',
         asks: '3878.00000000' },
      SUBETH:
       { bid: '0.00053000',
         bids: '740.00000000',
         ask: '0.00053501',
         asks: '580.00000000' } }
    /* Price of BNB:  { bid: '0.00028754',
      bids: '727.00000000',
      ask: '0.00028755',
      asks: '400.00000000' } */

    Get all bid/ask prices

    binance.bookTickers((error, ticker) => {
      console.info("bookTickers", ticker);
    });
    View Response
    { ETHBTC:
       { bid: '0.06187700',
         bids: '0.64000000',
         ask: '0.06188300',
         asks: '6.79700000' },
      LTCBTC:
       { bid: '0.01036000',
         bids: '14.96000000',
         ask: '0.01037000',
         asks: '0.60000000' },
      BNBBTC:
       { bid: '0.00028226',
         bids: '802.00000000',
         ask: '0.00028268',
         asks: '584.00000000' },
      NEOBTC:
       { bid: '0.00595600',
         bids: '33.00000000',
         ask: '0.00595900',
         asks: '37.00000000' },
      QTUMETH:
       { bid: '0.03958000',
         bids: '1.42000000',
         ask: '0.04024300',
         asks: '7.46000000' },
      EOSETH:
       { bid: '0.00192600',
         bids: '29.31000000',
         ask: '0.00193500',
         asks: '418.91000000' },
      SNTETH:
       { bid: '0.00007607',
         bids: '8864.00000000',
         ask: '0.00007682',
         asks: '1311.00000000' },
      BNTETH:
       { bid: '0.00740200',
         bids: '1.36000000',
         ask: '0.00746800',
         asks: '419.86000000' },
      BCCBTC:
       { bid: '0.06786500',
         bids: '0.18600000',
         ask: '0.06835400',
         asks: '0.72600000' },
      GASBTC:
       { bid: '0.00435500',
         bids: '332.73000000',
         ask: '0.00435600',
         asks: '18.31000000' },
      BNBETH:
       { bid: '0.00456443',
         bids: '4.00000000',
         ask: '0.00461795',
         asks: '192.00000000' },
      BTMETH:
       { bid: '0.00000000',
         bids: '0.00000000',
         ask: '0.00000000',
         asks: '0.00000000' },
      HCCBTC:
       { bid: '0.00000000',
         bids: '0.00000000',
         ask: '0.00000000',
         asks: '0.00000000' },
      BTCUSDT:
       { bid: '4801.05000000',
         bids: '0.82289400',
         ask: '4812.00000000',
         asks: '1.04753200' },
      ETHUSDT:
       { bid: '296.32000000',
         bids: '3.24294000',
         ask: '297.81000000',
         asks: '17.69901000' },
      HSRBTC:
       { bid: '0.00000000',
         bids: '0.00000000',
         ask: '0.00000000',
         asks: '0.00000000' },
      OAXETH:
       { bid: '0.00154500',
         bids: '422.64000000',
         ask: '0.00169200',
         asks: '159.94000000' },
      DNTETH:
       { bid: '0.00012059',
         bids: '434.00000000',
         ask: '0.00012100',
         asks: '8311.00000000' },
      MCOETH:
       { bid: '0.02566000',
         bids: '5.85000000',
         ask: '0.02651200',
         asks: '4.37000000' },
      ICNETH:
       { bid: '0.00489000',
         bids: '232.97000000',
         ask: '0.00500000',
         asks: '0.01000000' },
      ELCBTC:
       { bid: '0.00000000',
         bids: '0.00000000',
         ask: '0.00000000',
         asks: '0.00000000' },
      MCOBTC:
       { bid: '0.00162700',
         bids: '2.87000000',
         ask: '0.00163800',
         asks: '0.70000000' },
      WTCBTC:
       { bid: '0.00129604',
         bids: '600.00000000',
         ask: '0.00131600',
         asks: '1.00000000' },
      WTCETH:
       { bid: '0.02080000',
         bids: '30.00000000',
         ask: '0.02097600',
         asks: '24.00000000' },
      LLTBTC:
       { bid: '0.00000000',
         bids: '0.00000000',
         ask: '0.00000000',
         asks: '0.00000000' },
      LRCBTC:
       { bid: '0.00000000',
         bids: '0.00000000',
         ask: '0.00000000',
         asks: '0.00000000' },
      LRCETH:
       { bid: '0.00000000',
         bids: '0.00000000',
         ask: '0.00000000',
         asks: '0.00000000' },
      QTUMBTC:
       { bid: '0.00245100',
         bids: '43.11000000',
         ask: '0.00248500',
         asks: '74.96000000' },
      YOYOBTC:
       { bid: '0.00000000',
         bids: '0.00000000',
         ask: '0.00000000',
         asks: '0.00000000' },
      OMGBTC:
       { bid: '0.00160700',
         bids: '300.00000000',
         ask: '0.00161300',
         asks: '36.05000000' },
      OMGETH:
       { bid: '0.02597100',
         bids: '4.92000000',
         ask: '0.02633200',
         asks: '19.00000000' },
      ZRXBTC:
       { bid: '0.00003852',
         bids: '9.00000000',
         ask: '0.00003912',
         asks: '103.00000000' },
      ZRXETH:
       { bid: '0.00062997',
         bids: '645.00000000',
         ask: '0.00062998',
         asks: '5376.00000000' },
      STRATBTC:
       { bid: '0.00069200',
         bids: '50.50000000',
         ask: '0.00070000',
         asks: '6.54000000' },
      STRATETH:
       { bid: '0.01080400',
         bids: '5.00000000',
         ask: '0.01200000',
         asks: '5.88000000' },
      SNGLSBTC:
       { bid: '0.00003121',
         bids: '726.00000000',
         ask: '0.00003161',
         asks: '153.00000000' },
      SNGLSETH:
       { bid: '0.00046686',
         bids: '4782.00000000',
         ask: '0.00051906',
         asks: '32.00000000' },
      BQXBTC:
       { bid: '0.00011512',
         bids: '87.00000000',
         ask: '0.00011840',
         asks: '133.00000000' },
      BQXETH:
       { bid: '0.00183080',
         bids: '1051.00000000',
         ask: '0.00195000',
         asks: '626.00000000' },
      KNCBTC:
       { bid: '0.00027859',
         bids: '7.00000000',
         ask: '0.00028462',
         asks: '35.00000000' },
      KNCETH:
       { bid: '0.00452830',
         bids: '13.00000000',
         ask: '0.00454970',
         asks: '35.00000000' },
      FUNBTC:
       { bid: '0.00000464',
         bids: '753.00000000',
         ask: '0.00000465',
         asks: '13924.00000000' },
      FUNETH:
       { bid: '0.00007126',
         bids: '44131.00000000',
         ask: '0.00007617',
         asks: '1419.00000000' },
      SNMBTC:
       { bid: '0.00002489',
         bids: '564.00000000',
         ask: '0.00002559',
         asks: '2553.00000000' },
      SNMETH:
       { bid: '0.00040060',
         bids: '374.00000000',
         ask: '0.00041494',
         asks: '7624.00000000' },
      NEOETH:
       { bid: '0.09604700',
         bids: '22.05000000',
         ask: '0.09800000',
         asks: '0.31000000' },
      IOTABTC:
       { bid: '0.00009515',
         bids: '3.00000000',
         ask: '0.00009529',
         asks: '147.00000000' },
      IOTAETH:
       { bid: '0.00150002',
         bids: '4311.00000000',
         ask: '0.00155216',
         asks: '7.00000000' },
      LINKBTC:
       { bid: '0.00007601',
         bids: '4337.00000000',
         ask: '0.00007630',
         asks: '525.00000000' },
      LINKETH:
       { bid: '0.00121903',
         bids: '3784.00000000',
         ask: '0.00122965',
         asks: '200.00000000' },
      XVGBTC:
       { bid: '0.00000113',
         bids: '470101.00000000',
         ask: '0.00000114',
         asks: '147728.00000000' },
      XVGETH:
       { bid: '0.00001813',
         bids: '8274.00000000',
         ask: '0.00001843',
         asks: '8320.00000000' },
      CTRBTC:
       { bid: '0.00020202',
         bids: '625.00000000',
         ask: '0.00020649',
         asks: '1143.00000000' },
      CTRETH:
       { bid: '0.00330510',
         bids: '387.00000000',
         ask: '0.00339330',
         asks: '436.00000000' },
      SALTBTC:
       { bid: '0.00063500',
         bids: '76.00000000',
         ask: '0.00064300',
         asks: '437.54000000' },
      SALTETH:
       { bid: '0.01014200',
         bids: '202.79000000',
         ask: '0.01122600',
         asks: '1.36000000' },
      MDABTC:
       { bid: '0.00038061',
         bids: '8.00000000',
         ask: '0.00041300',
         asks: '1772.00000000' },
      MDAETH:
       { bid: '0.00655000',
         bids: '547.00000000',
         ask: '0.00660830',
         asks: '8814.00000000' },
      MTLBTC:
       { bid: '0.00140600',
         bids: '0.11000000',
         ask: '0.00143800',
         asks: '12.00000000' },
      MTLETH:
       { bid: '0.02300000',
         bids: '1166.86000000',
         ask: '0.02489500',
         asks: '13.98000000' },
      SUBBTC:
       { bid: '0.00003580',
         bids: '7617.00000000',
         ask: '0.00003619',
         asks: '1052.00000000' },
      SUBETH:
       { bid: '0.00056500',
         bids: '3649.00000000',
         ask: '0.00059988',
         asks: '3649.00000000' } }

    Get market depth for a symbol

    binance.depth("BNBBTC", (error, depth, symbol) => {
      console.info(symbol+" market depth", depth);
    });
    View Response
    market depth for BNBBTC
    { bids:
       { '0.00022997': '49.00000000',
         '0.00022867': '11.00000000',
         '0.00022865': '1149.00000000',
         '0.00022810': '20.00000000',
         '0.00022800': '1000.00000000',
         '0.00022777': '1350.00000000',
         '0.00022774': '96.00000000',
         '0.00022765': '5.00000000',
         '0.00022741': '12.00000000',
         '0.00022705': '1372.00000000',
         '0.00022700': '402.00000000',
         '0.00022514': '756.00000000',
         '0.00022513': '761.00000000',
         '0.00022502': '2244.00000000',
         '0.00022501': '2190.00000000',
         '0.00022500': '5069.00000000',
         '0.00022419': '1871.00000000',
         '0.00022418': '1667.00000000',
         '0.00022167': '1889.00000000',
         '0.00022162': '1014.00000000',
         '0.00022112': '13563.00000000',
         '0.00022078': '4056.00000000',
         '0.00022000': '8060.00000000',
         '0.00021963': '13563.00000000',
         '0.00021850': '52.00000000',
         '0.00021800': '1282.00000000',
         '0.00021710': '102.00000000',
         '0.00021680': '100.00000000',
         '0.00021652': '29.00000000',
         '0.00021641': '154.00000000',
         '0.00021500': '1491.00000000',
         '0.00021471': '977.00000000',
         '0.00021405': '478.00000000',
         '0.00021400': '11.00000000',
         '0.00021314': '686.00000000',
         '0.00021219': '1089.00000000',
         '0.00021200': '767.00000000',
         '0.00021100': '5000.00000000',
         '0.00021011': '50.00000000',
         '0.00021000': '3468.00000000',
         '0.00020900': '169.00000000',
         '0.00020843': '90.00000000',
         '0.00020811': '200.00000000',
         '0.00020702': '50.00000000',
         '0.00020691': '283.00000000',
         '0.00020600': '3703.00000000',
         '0.00020500': '107.00000000',
         '0.00020450': '6363.00000000',
         '0.00020250': '301.00000000',
         '0.00020222': '200.00000000',
         '0.00020200': '123.00000000',
         '0.00020137': '50.00000000',
         '0.00020122': '727.00000000',
         '0.00020100': '6400.00000000',
         '0.00020088': '10.00000000',
         '0.00020020': '793.00000000',
         '0.00020010': '500.00000000',
         '0.00020009': '44.00000000',
         '0.00020001': '20020.00000000',
         '0.00020000': '45269.00000000',
         '0.00019990': '270.00000000',
         '0.00019880': '2117.00000000',
         '0.00019800': '1200.00000000',
         '0.00019783': '50.00000000',
         '0.00019702': '300.00000000',
         '0.00019686': '10.00000000',
         '0.00019600': '1025.00000000',
         '0.00019595': '139.00000000',
         '0.00019501': '3227.00000000',
         '0.00019500': '3832.00000000',
         '0.00019488': '82.00000000',
         '0.00019400': '1853.00000000',
         '0.00019293': '10.00000000',
         '0.00019289': '30.00000000',
         '0.00019234': '1999.00000000',
         '0.00019200': '4765.00000000',
         '0.00019190': '6.00000000',
         '0.00019100': '4353.00000000',
         '0.00019073': '12.00000000',
         '0.00019058': '28.00000000',
         '0.00019050': '718.00000000',
         '0.00019001': '20.00000000',
         '0.00019000': '39478.00000000',
         '0.00018907': '10.00000000',
         '0.00018888': '10045.00000000',
         '0.00018880': '15.00000000',
         '0.00018800': '3528.00000000',
         '0.00018700': '328.00000000',
         '0.00018600': '1000.00000000',
         '0.00018598': '2187.00000000',
         '0.00018538': '1383.00000000',
         '0.00018529': '10.00000000',
         '0.00018500': '1512.00000000',
         '0.00018253': '30.00000000',
         '0.00018200': '3000.00000000',
         '0.00018158': '10.00000000',
         '0.00018106': '250.00000000',
         '0.00018100': '4577.00000000',
         '0.00018011': '500.00000000',
         '0.00018000': '29832.00000000' },
      asks:
       { '0.00022999': '32.00000000',
         '0.00023086': '583.00000000',
         '0.00023095': '1154.00000000',
         '0.00023119': '781.00000000',
         '0.00023120': '3401.00000000',
         '0.00023180': '4889.00000000',
         '0.00023185': '83.00000000',
         '0.00023211': '750.00000000',
         '0.00023339': '9273.00000000',
         '0.00023340': '474.00000000',
         '0.00023440': '500.00000000',
         '0.00023450': '1433.00000000',
         '0.00023500': '1480.00000000',
         '0.00023573': '87.00000000',
         '0.00023580': '518.00000000',
         '0.00023999': '863.00000000',
         '0.00024000': '275.00000000',
         '0.00024100': '60.00000000',
         '0.00024119': '3736.00000000',
         '0.00024180': '989.00000000',
         '0.00024350': '1285.00000000',
         '0.00024399': '500.00000000',
         '0.00024400': '2964.00000000',
         '0.00024419': '500.00000000',
         '0.00024500': '4499.00000000',
         '0.00024580': '542.00000000',
         '0.00024584': '6.00000000',
         '0.00024700': '250.00000000',
         '0.00024789': '2938.00000000',
         '0.00024790': '5535.00000000',
         '0.00024800': '499.00000000',
         '0.00024892': '2000.00000000',
         '0.00024920': '652.00000000',
         '0.00024972': '9242.00000000',
         '0.00024999': '1262.00000000',
         '0.00025000': '3739.00000000',
         '0.00025078': '250.00000000',
         '0.00025348': '1000.00000000',
         '0.00025499': '220.00000000',
         '0.00025500': '6029.00000000',
         '0.00025518': '10.00000000',
         '0.00025698': '17.00000000',
         '0.00025700': '250.00000000',
         '0.00025800': '265.00000000',
         '0.00025925': '20.00000000',
         '0.00025984': '1048.00000000',
         '0.00025985': '1048.00000000',
         '0.00025987': '1165.00000000',
         '0.00025990': '465.00000000',
         '0.00025994': '571.00000000',
         '0.00025995': '390.00000000',
         '0.00026000': '5033.00000000',
         '0.00026028': '10.00000000',
         '0.00026280': '40.00000000',
         '0.00026300': '13.00000000',
         '0.00026348': '50.00000000',
         '0.00026500': '38.00000000',
         '0.00026548': '10.00000000',
         '0.00026594': '51.00000000',
         '0.00026666': '15000.00000000',
         '0.00026700': '500.00000000',
         '0.00026800': '27.00000000',
         '0.00026900': '1000.00000000',
         '0.00026929': '50.00000000',
         '0.00026990': '270.00000000',
         '0.00027000': '8750.00000000',
         '0.00027199': '50.00000000',
         '0.00027300': '351.00000000',
         '0.00027429': '50.00000000',
         '0.00027480': '270.00000000',
         '0.00027500': '38.00000000',
         '0.00027690': '242.00000000',
         '0.00027700': '500.00000000',
         '0.00027789': '1317.00000000',
         '0.00027906': '1457.00000000',
         '0.00027912': '98.00000000',
         '0.00027949': '50.00000000',
         '0.00027950': '2000.00000000',
         '0.00027977': '96.00000000',
         '0.00027980': '1031.00000000',
         '0.00028000': '782.00000000',
         '0.00028300': '25.00000000',
         '0.00028500': '48.00000000',
         '0.00028590': '364.00000000',
         '0.00028680': '50.00000000',
         '0.00028699': '50.00000000',
         '0.00028700': '1600.00000000',
         '0.00028800': '3509.00000000',
         '0.00028890': '175.00000000',
         '0.00028900': '11474.00000000',
         '0.00028999': '10000.00000000',
         '0.00029000': '623.00000000',
         '0.00029100': '303.00000000',
         '0.00029141': '456.00000000',
         '0.00029200': '9999.00000000',
         '0.00029234': '104.00000000',
         '0.00029300': '200.00000000',
         '0.00029358': '325.00000000',
         '0.00029399': '153.00000000',
         '0.00029428': '100.00000000' } }

    Placing a LIMIT order

    let quantity = 1, price = 0.069;
    binance.buy("ETHBTC", quantity, price);
    binance.sell("ETHBTC", quantity, price);

    Placing a MARKET order

    // These orders will be executed at current market price.
    let quantity = 1;
    binance.marketBuy("BNBBTC", quantity);
    binance.marketSell("ETHBTC", quantity);

    LIMIT order with callback

    let quantity = 5, price = 0.00402030;
    binance.buy("BNBETH", quantity, price, {type:'LIMIT'}, (error, response) => {
      console.info("Limit Buy response", response);
      console.info("order id: " + response.orderId);
    });
    View Response
    Limit Buy response {
      symbol: 'BNBETH',
      orderId: 4480717,
      clientOrderId: 'te38xGILZUXrPZHnTQPH6h',
      transactTime: 1509049732437,
      price: '0.00402030',
      origQty: '5.00000000',
      executedQty: '5.00000000',
      status: 'FILLED',
      timeInForce: 'GTC',
      type: 'LIMIT',
      side: 'BUY' }
    //order id: 4480717
    

    Chaining orders together

    let quantity = 1;
    binance.marketBuy("BNBBTC", quantity, (error, response) => {
      console.info("Market Buy response", response);
      console.info("order id: " + response.orderId);
      // Now you can limit sell with a stop loss, etc.
    });
    View Response
    Market Buy response {
      symbol: 'BNBETH',
      orderId: 4480553,
      clientOrderId: 'rCGiCG08PGy7AwvbrG5d83',
      transactTime: 1509049376261,
      price: '0.00000000',
      origQty: '1.00000000',
      executedQty: '1.00000000',
      status: 'FILLED',
      timeInForce: 'GTC',
      type: 'MARKET',
      side: 'BUY' }
    //order id: 4480553
    

    Placing a STOP LOSS order

    // When the stop is reached, a stop order becomes a market order
    // Note: You must also pass one of these type parameters:
    // STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, TAKE_PROFIT_LIMIT
    let type = "STOP_LOSS";
    let quantity = 1;
    let price = 0.069;
    let stopPrice = 0.068;
    binance.sell("ETHBTC", quantity, price, {stopPrice: stopPrice, type: type});

    Placing an ICEBERG order

    // Iceberg orders are intended to conceal the order quantity.
    let quantity = 1;
    let price = 0.069;
    binance.sell("ETHBTC", quantity, price, {icebergQty: 10});

    Cancel an order

    binance.cancel("ETHBTC", orderid, (error, response, symbol) => {
      console.info(symbol+" cancel response:", response);
    });

    Cancel all open orders

    console.info( await binance.cancelAll("XMRBTC") );

    Get open orders for a symbol

    binance.openOrders("ETHBTC", (error, openOrders, symbol) => {
      console.info("openOrders("+symbol+")", openOrders);
    });

    Get list of all open orders

    binance.openOrders(false, (error, openOrders) => {
      console.info("openOrders()", openOrders);
    });

    Check an order's status

    let orderid = "7610385";
    binance.orderStatus("ETHBTC", orderid, (error, orderStatus, symbol) => {
      console.info(symbol+" order status:", orderStatus);
    });

    Get your Trade History

    binance.trades("SNMBTC", (error, trades, symbol) => {
      console.info(symbol+" trade history", trades);
    });
    View Response
    [ { id: 9572,
        orderId: 47884,
        price: '0.00003701',
        qty: '1467.00000000',
        commission: '0.06774660',
        commissionAsset: 'BNB',
        time: 1507062500456,
        isBuyer: true,
        isMaker: true,
        isBestMatch: true },
      { id: 9575,
        orderId: 47884,
        price: '0.00003701',
        qty: '735.00000000',
        commission: '0.03394257',
        commissionAsset: 'BNB',
        time: 1507062502528,
        isBuyer: true,
        isMaker: true,
        isBestMatch: true } } ]

    Get all account orders; active, canceled, or filled.

    binance.allOrders("ETHBTC", (error, orders, symbol) => {
      console.info(symbol+" orders:", orders);
    });

    Get dust log

    binance.dustLog((error, dustlog) => {
      console.info(dustlog);
    })

    Get 24hr ticker price change statistics for all symbols

    binance.prevDay(false, (error, prevDay) => {
      // console.info(prevDay); // view all data
      for ( let obj of prevDay ) {
        let symbol = obj.symbol;
        console.info(symbol+" volume:"+obj.volume+" change: "+obj.priceChangePercent+"%");
      }
    });

    Get 24hr ticker price change statistics for a symbol

    binance.prevDay("BNBBTC", (error, prevDay, symbol) => {
      console.info(symbol+" previous day:", prevDay);
      console.info("BNB change since yesterday: "+prevDay.priceChangePercent+"%")
    });

    Get Kline/candlestick data for a symbol

    You can use the optional API parameters for getting historical candlesticks, these are useful if you want to import data from earlier back in time. Optional parameters: limit (max/default 500), startTime, endTime.

    // Intervals: 1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,1M
    binance.candlesticks("BNBBTC", "5m", (error, ticks, symbol) => {
      console.info("candlesticks()", ticks);
      let last_tick = ticks[ticks.length - 1];
      let [time, open, high, low, close, volume, closeTime, assetVolume, trades, buyBaseVolume, buyAssetVolume, ignored] = last_tick;
      console.info(symbol+" last close: "+close);
    }, {limit: 500, endTime: 1514764800000});

    WebSockets Implementation

    Get Complete WebSocket Chart Cache

    This function pulls existing chart data before connecting to the WebSocket, and provides you realtime synchronized chart information including the most recent 500 candles.

    binance.websockets.chart("BNBBTC", "1m", (symbol, interval, chart) => {
      let tick = binance.last(chart);
      const last = chart[tick].close;
      console.info(chart);
      // Optionally convert 'chart' object to array:
      // let ohlc = binance.ohlc(chart);
      // console.info(symbol, ohlc);
      console.info(symbol+" last price: "+last)
    });
    View Response
    {
      '1517557800000':
       { open: '0.00100090',
         high: '0.00100650',
         low: '0.00099810',
         close: '0.00100370',
         volume: '1161.52000000' },
      '1517557860000':
       { open: '0.00100360',
         high: '0.00101010',
         low: '0.00100000',
         close: '0.00100310',
         volume: '1977.68000000' },
      '1517557920000':
       { open: '0.00100100',
         high: '0.00101130',
         low: '0.00100080',
         close: '0.00100670',
         volume: '2002.00000000' },
      '1517557980000':
       { open: '0.00100660',
         high: '0.00101400',
         low: '0.00100200',
         close: '0.00100640',
         volume: '3896.40000000' },
      '1517558040000':
       { open: '0.00100630',
         high: '0.00101390',
         low: '0.00100350',
         close: '0.00100470',
         volume: '1675.48000000' },
      '1517558100000':
       { open: '0.00100860',
         high: '0.00101450',
         low: '0.00100100',
         close: '0.00100270',
         volume: '1918.46000000' },
      '1517558160000':
       { open: '0.00100460',
         high: '0.00101480',
         low: '0.00100310',
         close: '0.00100670',
         volume: '2464.12000000' },
      '1517558220000':
       { open: '0.00100510',
         high: '0.00100660',
         low: '0.00100110',
         close: '0.00100250',
         volume: '1484.59000000' } }
    // (..many more entries not shown)
    ///BNBBTC last price: 0.00100250
    

    Get Candlestick Updates via WebSocket

    // Periods: 1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,1M
    binance.websockets.candlesticks(['BNBBTC'], "1m", (candlesticks) => {
      let { e:eventType, E:eventTime, s:symbol, k:ticks } = candlesticks;
      let { o:open, h:high, l:low, c:close, v:volume, n:trades, i:interval, x:isFinal, q:quoteVolume, V:buyVolume, Q:quoteBuyVolume } = ticks;
      console.info(symbol+" "+interval+" candlestick update");
      console.info("open: "+open);
      console.info("high: "+high);
      console.info("low: "+low);
      console.info("close: "+close);
      console.info("volume: "+volume);
      console.info("isFinal: "+isFinal);
    });

    Get Trade Updates via WebSocket

    binance.websockets.trades(['BNBBTC', 'ETHBTC'], (trades) => {
      let {e:eventType, E:eventTime, s:symbol, p:price, q:quantity, m:maker, a:tradeId} = trades;
      console.info(symbol+" trade update. price: "+price+", quantity: "+quantity+", maker: "+maker);
    });

    Get miniTicker via WebSocket

    binance.websockets.miniTicker(markets => {
      console.info(markets);
    });
    View Response
      ICXBNB:
       { close: '0.34803000',
         open: '0.34249000',
         high: '0.35000000',
         low: '0.31001000',
         volume: '134681.88000000',
         quoteVolume: '44351.78363150',
         eventTime: 1520501508957 },
      ELFETH:
       { close: '0.00120820',
         open: '0.00132816',
         high: '0.00132926',
         low: '0.00115888',
         volume: '852919.00000000',
         quoteVolume: '1045.37831133',
         eventTime: 1520501508735 },
      PIVXBTC:
       { close: '0.00049510',
         open: '0.00051000',
         high: '0.00056290',
         low: '0.00049200',
         volume: '215530.27000000',
         quoteVolume: '111.50245426',
         eventTime: 1520501508367 }
    

    Get 24hr Price Change Statistics via WebSocket

    // For all symbols:
    binance.websockets.prevDay(false, (error, response) => {
      console.info(response);
    });
    
    // For a specific symbol:
    binance.websockets.prevDay('BNBBTC', (error, response) => {
      console.info(response);
    });
    View Response
    { eventType: '24hrTicker',
      eventTime: 1512629577435,
      symbol: 'BNBBTC',
      priceChange: '-0.00002671',
      percentChange: '-12.844',
      averagePrice: '0.00019282',
      prevClose: '0.00020796',
      close: '0.00018125',
      closeQty: '55.00000000',
      bestBid: '0.00018038',
      bestBidQty: '580.00000000',
      bestAsk: '0.00018125',
      bestAskQty: '144.00000000',
      open: '0.00020796',
      high: '0.00021300',
      low: '0.00017555',
      volume: '3731915.00000000',
      quoteVolume: '719.59011818',
      openTime: 1512543177433,
      closeTime: 1512629577433,
      firstTradeId: 2248079,
      lastTradeId: 2284725,
      numTrades: 36647 }
    

    Get Market Depth via WebSocket

    binance.websockets.depth(['BNBBTC'], (depth) => {
      let {e:eventType, E:eventTime, s:symbol, u:updateId, b:bidDepth, a:askDepth} = depth;
      console.info(symbol+" market depth update");
      console.info(bidDepth, askDepth);
    });

    Maintain Market Depth Cache Locally via WebSocket

    binance.websockets.depthCache(['BNBBTC'], (symbol, depth) => {
      let bids = binance.sortBids(depth.bids);
      let asks = binance.sortAsks(depth.asks);
      console.info(symbol+" depth cache update");
      console.info("bids", bids);
      console.info("asks", asks);
      console.info("best bid: "+binance.first(bids));
      console.info("best ask: "+binance.first(asks));
      console.info("last updated: " + new Date(depth.eventTime));
    });
    View Response
    BNBBTC depth cache update
    asks { '0.00025400': 0.531114,
      '0.00025440': 0.2602512,
      '0.00025469': 0.01400795,
      '0.00025500': 0.0051,
      '0.00025555': 0.0245328,
      '0.00025629': 0.05100171,
      '0.00025630': 0.0146091,
      '0.00025642': 0.02230854,
      '0.00025825': 0.00180775,
      '0.00025896': 0.21856224,
      '0.00025927': 0.025927 }
    bids { '0.00025203': 0.201624,
      '0.00025202': 0.04838784,
      '0.00025200': 0.13482,
      '0.00025195': 0.01385725,
      '0.00025187': 0.25539618,
      '0.00025138': 0.012569,
      '0.00025136': 0.04247984,
      '0.00025135': 0.0085459,
      '0.00025100': 0.02259,
      '0.00025072': 0.012536,
      '0.00025071': 0.00401136 }
    //best ask: 0.00025400
    //best bid: 0.00025203
    //last updated: Thu Apr 18 2019 00:52:49 GMT-0400 (Eastern Daylight Time)

    bookTickers stream includes the bid/ask price & amount, for all symbols

    binance.websockets.bookTickers( console.log );

    bookTickers stream includes the bid/ask price & amount, for a symbol

    binance.websockets.bookTickers( 'BTCUSDT', console.log );

    Deposit & Withdraw

    Get Deposit Address

    binance.depositAddress("XMR", (error, response) => {
      console.info(response);
    });

    Get All Deposit History

    binance.depositHistory((error, response) => {
      console.info(response);
    });

    Get Deposit History for a specific symbol

    binance.depositHistory((error, response) => {
      console.info(response);
    }, "VEN");

    Get All Withdraw History

    binance.withdrawHistory((error, response) => {
      console.info(response);
    });

    Get Withdraw History for a specific symbol

    binance.withdrawHistory((error, response) => {
      console.info(response);
    }, "BTC");

    Withdraw with AddressTag

    // Required for coins like XMR, XRP, etc.
    let address = "44tLjmXrQNrWJ5NBsEj2R77ZBEgDa3fEe9GLpSf2FRmhexPvfYDUAB7EXX1Hdb3aMQ9FLqdJ56yaAhiXoRsceGJCRS3Jxkn";
    let addressTag = "0e5e38a01058dbf64e53a4333a5acf98e0d5feb8e523d32e3186c664a9c762c1";
    let amount = 0.1;
    binance.withdraw("XMR", address, amount, addressTag);

    Withdraw

    binance.withdraw("BTC", "1C5gqLRs96Xq4V2ZZAR1347yUCpHie7sa", 0.2);

    Univeral Transfer / Internal Wallet Transfer

    Example Spot account transfer to USDⓈ-M Futures account , use ENUM -> "MAIN_UMFUTURE"

    console.info( await binance.universalTransfer("MAIN_UMFUTURE","USDT",10) );

    for more account transfers (ENUMs) see docs

    Binance Margin API

    Transfer from Main account to Margin account

    binance.mgTransferMainToMargin(asset, amount, (error, response) => {
        if ( error ) return console.warn(error);
        // Success! Transaction ID: response.tranId
    });

    Transfer from Margin account to Main account

    binance.mgTransferMarginToMain(asset, amount, (error, response) => {
        if ( error ) return console.warn(error);
        // Success! Transaction ID: response.tranId
    });

    Get maximum transfer-out amount from Margin account to Main account

    binance.maxTransferable(asset, (error, response) => {
        if ( error ) return console.warn(error);
        console.info(`Maximum transfer-out amount: ${response.amount}`);
    });

    Get maximum borrow amount

    binance.maxBorrowable(asset, (error, response) => {
        if ( error ) return console.warn(error);
        console.info(`Maximum borrow amount: ${response.amount}`);
    });

    Borrow from margin account

    binance.mgBorrow(asset, amount, (error, response) => {
        if ( error ) return console.warn(error);
        // Success! Transaction ID: response.tranId
    });

    Repay margin account

    binance.mgRepay(asset, amount, (error, response) => {
        if ( error ) return console.warn(error);
        // Success! Transaction ID: response.tranId
    });

    Margin BUY and SELL orders

    Instead of binance.buy() use binance.mgBuy() and instead of binance.sell() use binance.mgSell().

    For market orders use binance.mgMarketBuy() and binance.mgMarketSell().

    For order operations, use binance.mgCancel(), binance.mgCancelOrders(), binance.mgAllOrders(), binance.openOrders(), binance.mgOrderStatus().

    Usage and callbacks are the same as the 'regular account' counterparts.

    Get your Trade History for the Margin account

    Use binance.mgTrades() instead of binance.trades().

    binance.mgTrades("ETHUSDT", (error, trades, symbol) => {
      console.info(symbol+" trade history", trades);
    });
    View Response
    [ { symbol: 'ETHUSDT',
        id: 9572,
        orderId: 47884,
        price: '2063.07',
        qty: '1.44877',
        commission: '2.98891392',
        commissionAsset: 'USDT',
        time: 1617900638521,
        isBuyer: false,
        isMaker: false,
        isBestMatch: true,
        isIsolated: true }]

    Margin account details

    binance.mgAccount((error, response) => {
       if ( error ) return console.warn(error);
       console.info("Account details response:", response)
    })
    View response
      {
        borrowEnabled: true,
        marginLevel: '999.00000000',
        totalAssetOfBtc: '0.00000003',
        totalLiabilityOfBtc: '0.00000000',
        totalNetAssetOfBtc: '0.00000003',
        tradeEnabled: true,
        transferEnabled: true,
        userAssets: [
          {
            asset: 'MATIC',
            borrowed: '0.00000000',
            free: '0.00000000',
            interest: '0.00000000',
            locked: '0.00000000',
            netAsset: '0.00000000'
          }
        ]
      }

    Binance Lending API

    Lending Account Details

    let lendingData = await binance.lending();
    View response
      lendingData {
        positionAmountVos: [
          {
            amount: '952983.20208997',
            amountInBTC: '129.54853649',
            amountInUSDT: '952983.20208997',
            asset: 'USDT'
          }
        ],
        totalAmountInBTC: '129.54853649',
        totalAmountInUSDT: '952983.20208997',
        totalFixedAmountInBTC: '13.59400000',
        totalFixedAmountInUSDT: '100000.00000000',
        totalFlexibleInBTC: '115.95453649',
        totalFlexibleInUSDT: '852983.20208997'
      }
      {
        positionAmountVos: [],
        totalAmountInBTC: '0.00000000',
        totalAmountInUSDT: '0.00000000',
        totalFixedAmountInBTC: '0.00000000',
        totalFixedAmountInUSDT: '0.00000000',
        totalFlexibleInBTC: '0.00000000',
        totalFlexibleInUSDT: '0.00000000'
      }
      {
        positionAmountVos: [],
        totalAmountInBTC: '0.00000000',
        totalAmountInUSDT: '0.00000000',
        totalFixedAmountInBTC: '0.00000000',
        totalFixedAmountInUSDT: '0.00000000',
        totalFlexibleInBTC: '0.00000000',
        totalFlexibleInUSDT: '0.00000000'
      }

    Advanced Examples

    exchangeInfo: Pull minimum order size, quantity, etc
    Clamp order quantities to required amounts via minQty, minNotional, stepSize when placing orders
    Show API Rate limits
    Connect to all WebSockets at once
    Get last order for a symbol
    newOrderRespType example
    Recent Trades (historicalTrades, recentTrades, aggTrades functions)
    Terminate WebSocket connections
    User Data: Account Balance Updates, Trade Updates, New Orders, Filled Orders, Cancelled Orders via WebSocket Margin User Data: Account Balance Updates, Trade Updates, New Orders, Filled Orders, Cancelled Orders via WebSocket Asynchronous Syntax Options

    Troubleshooting

    Verify that your system time is correct. If you have any suggestions don't hesitate to file an issue.

    Having problems? Try adding useServerTime to your options or setting recvWindow:

    binance.options({
      APIKEY: 'xxx',
      APISECRET: 'xxx',
      useServerTime: true,
      recvWindow: 60000, // Set a higher recvWindow to increase response timeout
      verbose: true, // Add extra output when subscribing to WebSockets, etc
      log: log => {
        console.log(log); // You can create your own logger here, or disable console output
      }
    });

    Problems getting your balance? Wrap the entry point of your application in useServerTime:

    await binance.useServerTime();
    binance.balance((error, balances) => {
        if ( error ) return console.error(error);
        console.info("balances()", balances);
        console.info("BNB balance: ", balances.BNB.available);
    });

    You can enable verbose mode to help with debugging WebSocket streams:

    binance.setOption( 'verbose', true );

    For support go to Telegram or Binance Developers


    ✨ All Contributors ✨


    Jon Eyrick

    💬 🚧 💻

    Dave

    💻

    Brandon

    💻

    Dmitri Zaitsev

    💻

    Keith Kirton

    💻

    Bunny Eluvade

    💻

    Simone Conti

    💻

    GusGold

    💻

    Gunar Gessner

    💻

    Kiros

    💻

    Julien Sergent

    💻

    nimanr

    💻

    rob

    💻

    gemmell

    💻

    lht147

    💻

    Ahmed Sabry

    💻

    Arend de Boer

    💻

    Evan Francis

    💻

    Jasmin Parent

    💻

    Joaquín Núñez

    💻

    Meet Mangukiya

    💻

    afsharsafavi

    💻

    boyhagemann

    💻

    Dave

    💻

    dbvcode

    💻

    Gergely Szell

    💻

    Anderson Aguiar

    💻

    Andrey

    💻

    Balthazar Gronon

    💻

    Can Madran

    💻

    Collin Estes

    💻

    dpereskokov

    💻

    Shad Dobberoonski

    💻

    guygberg

    💻

    Joel Richard

    💻

    Marko Stijak

    💻

    Matthew Woop

    💻

    Miika

    💻

    Rolaus

    💻

    Sergey Potekhin

    💻

    Tony Tran

    💻

    Ulrich-Matthias Schäfer

    💻

    Vitor Monteiro

    💻

    WWWSpider

    💻

    dreyescat

    💻

    hems.io

    💻

    Mathieu

    💻

    Chirag Shetty

    💻

    This project follows the all-contributors specification. Contributions of any kind are welcome

    Thank you to all contributors! dmzoneill, bmino, dmitriz, keith1024, Eluvade, itnok, GusGold, gunar, kirosc, MadDeveloper, nimanr, robaleman, gemmell, lht147, abou7mied, arenddeboer, ejfrancis, charlesdarkwind, joaquinnunez, meetmangukiya, afsharsafavi, boyhagemann, davewang, dbvcode, sethyx, andersonaguiar, hoota, balthazar, ifmad, CollinEstes, dpereskokov, Dobberoonski75, guygberg, joelrich, mstijak, matthewwoop, bhnow, Rolaus, pavlovdog, toant13, Fuzzyma, bitoiu, WWWSpider, dreyescat, hems, mathlet0x, nurdtechie98 and others!

    Contribution

    • Give us a star
    • Fork and Clone! Awesome
    • Select existing issues or create a new issue and give us a PR with your bugfix or improvement after. We love it ❤️

    Downloads Stars Contributors Stargazers over time Views jaggedsoft on Twitter

    Keywords

    Install

    npm i node-binance-api

    DownloadsWeekly Downloads

    4,405

    Version

    0.13.0

    License

    MIT

    Unpacked Size

    570 kB

    Total Files

    21

    Last publish

    Collaborators

    • jaggedsoft