node package manager

node.bittrex.api

Node Bittrex API

Node Bittrex API is an asynchronous node.js library for the Bittrex API - https://bittrex.com/. The Bittrex API data can be received either as a GET request or via Websockets API (the Stream option will no longer be maintained and will be removed in further releases - please switch to Websockets if you want to use real Streams).

Documentation to the Bittrex API: https://bittrex.com/Home/Api

This Library was created by Adrian Soluch (@n0mad01) soluch.us and is licensed under the MIT license.

Contributors

Thanks go to the people who have contributed code to this Library.

Installation

install it most convenient via npm:

$ npm install node.bittrex.api
or

fetch the project via git:

$ git clone https://github.com/n0mad01/node.bittrex.api.git

then meet the package dependencies:

cd node-bittrex-api/
$ npm install

First steps

include node.bittrex.api.js into your project:

var bittrex = require('./node.bittrex.api.js');
configure
bittrex.options({
  'apikey' : API_KEY,
  'apisecret' : API_SECRET, 
  'stream' : true, // will be removed from future versions 
  'verbose' : true,
  'cleartext' : false 
});

By default the returned data is an object, in order to get clear text you have to add the option cleartext (streams will always return text):

'cleartext' : true

The baseUrl itself can also be set via options

'baseUrl' : 'https://bittrex.com/api/v1'

Websockets

following methods are implemented:

websockets.listen, websockets.subscribe

listen example

bittrex.websockets.listen( function( data ) {
  if (data.M === 'updateSummaryState') {
    data.A.forEach(function(data_for) {
      data_for.Deltas.forEach(function(marketsDelta) {
        console.log('Ticker Update for '+ marketsDelta.MarketName, marketsDelta);
      });
    });
  }
});

subscribe example

bittrex.websockets.subscribe(['BTC-ETH','BTC-SC','BTC-ZEN'], function(data) {
  if (data.M === 'updateExchangeState') {
    data.A.forEach(function(data_for) {
      console.log('Market Update for '+ data_for.MarketName, data_for);
    });
  }
});

Streams - please notice that streams will be removed from future versions

To activate Streaming simply add to your options:

'stream' : true

Examples

After configuration you can use the object right away: example #1

bittrex.getmarketsummaries( function( data ) {
  for( var i in data.result ) {
    bittrex.getticker( { market : data.result[i].MarketName }, function( ticker ) {
      console.log( ticker );
    });
  }
});

example #2

bittrex.getbalance({ currency : 'BTC' }, function( data ) {
  console.log( data );
});

Libraries

Websockets depends on the following npm packages:

Streaming depends on the following npm packages (will be removed in future versions):

Other libraries utilized:

For HmacSHA512 this package is using a part of Googles Crypto.js (the node crypt package could not provide any appropriate result).

Methods

Optional parameters may have to be looked up at https://bittrex.com/Home/Api.

It may happen that some Bittrex API methods are missing, also they could have been forgotten in the documentation. In this case, if this strikes you, feel free to open a issue or send me a pull request.

Also: the method sendCustomRequest enables completely custom requests, regardless the specific API methods.

sendCustomRequest
  • url String
  • callback Function
  • credentials Boolean optional whether the credentials should be applied to the request/stream or not, default is set to false.

example #1

var url = 'https://bittrex.com/api/v1.1/public/getticker?market=BTC-LTC';
bittrex.sendCustomRequest( url, function( data ) {
  console.log( data );
});

example #2 (credentials applied to request/stream)

bittrex.sendCustomRequest( 'https://bittrex.com/api/v1.1/account/getbalances?currency=BTC', function( data ) {
  console.log( data );
}, true );
 
will result in (the Header is being set too):
https://bittrex.com/api/v1.1/account/getbalances?currency=BTC&apikey=API_KEY&nonce=4456490600 
getticker
bittrex.getticker( { market : 'BTC-LTC' }, function( data ) {
  console.log( data );
});
getbalances
bittrex.getbalances( function( data ) {
  console.log( data );
});
getmarkethistory
bittrex.getmarkethistory({ market : 'BTC-LTC' }, function( data ) {
  console.log( data );
});
getmarketsummaries
bittrex.getmarketsummaries( function( data ) {
  console.log( data );
});
getmarketsummary
bittrex.getmarketsummary( { market : 'BTC-LTC'}, function( data ) {
  console.log( data );
});
getorderbook
bittrex.getorderbook({ market : 'BTC-LTC', depth : 10, type : 'both' }, function( data ) {
  console.log( data );
});
getwithdrawalhistory
bittrex.getwithdrawalhistory({ currency : 'BTC' }, function( data ) {
  console.log( data );
});
getdepositaddress
bittrex.getdepositaddress({ currency : 'BTC' }, function( data ) {
  console.log( data );
});
getdeposithistory
bittrex.getdeposithistory({ currency : 'BTC' }, function( data ) {
  console.log( data );
});
getbalance
bittrex.getbalance({ currency : 'BTC' }, function( data ) {
  console.log( data );
});
withdraw
bittrex.withdraw({ currency : 'BTC', quantity : '1.5112', address : 'THE_ADDRESS' }, function( data ) {
  console.log( data );
});
donations welcome!

BTC

17gtixgt4Q8hZcSictQwj5WUdgFjegCt36