GithubHelp home page GithubHelp logo

bittrexjs's Introduction

BittrexJS

A 'strong typed' Bittrex API client written in typescript.

Typed

All methods have typed request parameters and typed responses using interfaces. Even when using the library in javascript, modern IDE's should be able to provide hints and warnings using the accompanied type files.

How to use

Install

npm install bittrexjs

Example

let BittrexClient = require('bittrexjs').Client;

let bittrex = new BittrexClient();

// using promises
bittrex.getLatestCandle('BTC-ETH').then((response) => {
    console.log(response);
});

// using await
(async () => {
    let response = await client.getLatestCandle('BTC-ETH');
    console.log(response);
})()

Result:

{ success: true,
  message: '',
  result: 
   [ { O: 0.07079,
       H: 0.07079,
       L: 0.07079,
       C: 0.07079,
       V: 49.016782,
       T: '2017-09-11T19:20:00',
       BV: 3.46989793 } ] }

Methods

Client.authenticate(apiCredentials: ApiCredentials)

This method authenticates your client so you can reach account specific endpoints.

Store your api keys wisely!

Example

let client = new BittrexClient();

client.authenticate({
    apikey: '',
    apisecret: ''
});

Request Methods

All request methods return a promise with a BittrexResponse.

interface BittrexResponse<T> {
    result: T,
    success: boolean,
    message: string
}

BittrexResponse.result contains the actual payload.

Client.getMarkets()

Retrieve all markets.

Parameters

Parameter Type Required Description
none

Returns

Promise<BittrexResponse<Market[]>>

Example

client.getMarkets().then((response) => {
    let markets = response.result;
    
    console.log(markets);
});

Result:

[{  MarketCurrency: 'RADS',
    BaseCurrency: 'BTC',
    MarketCurrencyLong: 'Radium',
    BaseCurrencyLong: 'Bitcoin',
    MinTradeSize: 1e-8,
    MarketName: 'BTC-RADS',
    IsActive: true,
    Created: '2016-01-26T23:22:16.193',
    Notice: null,
    IsSponsored: null,
    LogoUrl: 'https://bittrexblobstorage.blob.core.windows.net/public/259f6efd-9b21-43cf-9c6b-8f67b94ca092.png' },
  ... ]

Client.getCurrencies()

Retrieve all currencies.

Parameters

Name Type Required Description
none

Returns

Promise<BittrexResponse<Currency[]>>

Example

client.getCurrencies().then((response) => {
    let currencies = response.result;
    
    console.log(currencies);
});

Result:

[{ Currency: 'XRP',
     CurrencyLong: 'Ripple',
     MinConfirmation: 10,
     TxFee: 0.02,
     IsActive: true,
     CoinType: 'RIPPLE',
     BaseAddress: 'rPVMhWBsfF9iMXYj3aAzJVkPDTFNSyWdKy',
     Notice: null },
  ... ]

Client.getMarketTicker(market: string)

Retrieve Highest Bid, Lowest Ask and Price of Latest Trade

Parameters

Name Type Required Description
market string yes e.g. BTC-ETH

Returns

Promise<BittrexResponse<MarketTick>>

Example

let response = await client.getMarketTicker('BTC-ETH');
let marketTick = response.result;

console.log(marketTick);

Result:

{ 
    Bid: 0.0707, 
    Ask: 0.0709, 
    Last: 0.0707 
}

Client.getMarketCandles(market: string, tickInterval: TickInterval = 'FiveMin')

Retrieve OHLCV and BV (Open, High, Low, Close, Volume, Base Volume)

Parameters

Name Type Required Description
market string yes e.g. BTC-ETH
tickInterval string (TickInterval) no (defaults to FiveMin) options: OneMin, FiveMin, ThirtyMin, hour, day

Returns

Promise<BittrexResponse<Candle[]>

Example

let response = await client.getMarketCandles('BTC-ETH', 'OneMin');
let marketCandles = response.result;

console.log(marketCandles);

Result:

[{ O: 0.0799,
    H: 0.08,
    L: 0.07988,
    C: 0.08,
    V: 148.09106807,
    T: '2017-09-01T20:08:00',
    BV: 11.83406577 },
  ... ]

Client.getLatestCandle(market: string, tickInterval: TickInterval = 'FiveMin')

Retrieve latest OHLCV and BV (Open, High, Low, Close, Volume, Base Volume)

Parameters

Name Type Required Description
market string yes e.g. BTC-ETH
tickInterval string (TickInterval) no (defaults to FiveMin) options: OneMin, FiveMin, ThirtyMin, hour, day

Returns

Promise<BittrexResponse<Candle[]>

Example

let response = await client.getLatestCandle('BTC-ETH', 'OneMin');
let marketCandles = response.result;

console.log(marketCandles);

Result:

[ { O: 0.070555,
    H: 0.07094,
    L: 0.07055001,
    C: 0.07094,
    V: 12.22247964,
    T: '2017-09-11T18:30:00',
    BV: 0.86240266 } ]

Client.getMarketSummaries()

Retrieve a summary for each market

Parameters

Name Type Required Description
none

Returns

Promise<BittrexResponse<MarketSummary[]>>

Example

let response = await client.getMarketSummaries();
let marketSummaries = response.result;

console.log(marketSummaries);

Result:

[ { MarketName: 'BTC-MCO',
    High: 0.00223017,
    Low: 0.00205001,
    Volume: 196683.6355223,
    Last: 0.00213,
    BaseVolume: 416.9640078,
    TimeStamp: '2017-09-11T18:37:28.14',
    Bid: 0.00213001,
    Ask: 0.00214227,
    OpenBuyOrders: 1025,
    OpenSellOrders: 11446,
    PrevDay: 0.0020872,
    Created: '2017-07-02T00:37:16.957' },
  ... ]

Client.getMarketSummary(market: string)

Retrieve a summary for each market

Parameters

Name Type Required Description
market string yes e.g. BTC-ETH

Returns

Promise<BittrexResponse<MarketSummary[]>>

Example

let response = await client.getMarketSummary('BTC-ETH');
let marketSummaries = response.result;

console.log(marketSummaries);

Result:

[ { MarketName: 'BTC-ETH',
    High: 0.07115187,
    Low: 0.06982622,
    Volume: 43389.09963617,
    Last: 0.070699,
    BaseVolume: 3056.27414511,
    TimeStamp: '2017-09-11T18:39:54.32',
    Bid: 0.07059785,
    Ask: 0.070699,
    OpenBuyOrders: 3569,
    OpenSellOrders: 13823,
    PrevDay: 0.07028021,
    Created: '2015-08-14T09:02:24.817' } ]

Client.getOrderbook(market: string, orderBookType: OrderBookType = 'both')

Retrieve a summary for each market

Parameters

Name Type Required Description
market string yes e.g. BTC-ETH
orderBookType string (OrderBookType) no (defaults to both) options: buy, sell, both

Returns

Promise<BittrexResponse<OrderbookEntry[] | Orderbook>>

'both' returns an orderbook, 'sell' and 'buy' return only a list of quantity-rate pairs.

Example (complete Orderbook)

let response = await client.getOrderbook('BTC-ETH');
let orderbook = response.result;

console.log(orderbook);

Result:

{ buy: 
   [ { Quantity: 0.1, Rate: 0.07059785 },
       ... ],
  sell: 
     [ { Quantity: 1.9251093, Rate: 0.07068 },
       ... ]
}

Example ('buy' orders)

let response = await client.getOrderbook('BTC-ETH', 'buy');
let orderbookentries = response.result;

console.log(orderbookentries);

Result:

[ { Quantity: 0.21277316, Rate: 0.06993263 },
  ... ]

Client.getMarketHistory(market: string)

Retrieve the latest ??? orders for a market

Parameters

Name Type Required Description
market string yes e.g. BTC-ETH

Returns

Promise<BittrexResponse<Trade[]>>

Example

let response = await client.getMarketHistory('BTC-ETH');
let marketHistory = response.result;

console.log(marketHistory);

Result:

[ { Id: 110938880,
    TimeStamp: '2017-09-11T18:43:29.427',
    Quantity: 1.45871041,
    Price: 0.07068,
    Total: 0.10310165,
    FillType: 'PARTIAL_FILL',
    OrderType: 'BUY' },
  { Id: 110938789,
    TimeStamp: '2017-09-11T18:43:10.893',
    Quantity: 0.5179118,
    Price: 0.07050705,
    Total: 0.03651643,
    FillType: 'FILL',
    OrderType: 'SELL' },
  ... ]

Account methods

For the following methods the client needs to be authenticated using client.authenticate(apiCredentials)

Client.buyLimit(market: string, quantity: number, rate: number)

Place limit buy order

Parameters

Name Type Required Description
market string yes e.g. BTC-ETH
quantity number yes e.g. 0.01
rate number yes e.g. 0.07050705

Returns

Promise<BittrexResponse<OrderReference[]>>

Client.sellLimit(market: string, quantity: number, rate: number)

Place limit sell order

Parameters

Name Type Required Description
market string yes e.g. BTC-ETH
quantity number yes e.g. 0.01
rate number yes e.g. 0.07050705

Returns

Promise<BittrexResponse<OrderReference[]>>

Client.cancel(orderId: string)

Cancel an order

Parameters

Name Type Required Description
orderId number yes e.g. 110938880

Returns

Promise<BittrexResponse<OrderReference[]>>

Client.getOpenOrders(market?: string)

Get all open orders for all markets, or for a single market

Parameters

Name Type Required Description
market string no e.g. BTC-ETH

Returns

Promise<BittrexResponse<OpenOrder[]>>

Client.getBalances()

Get all your balances

Parameters

Name Type Required Description
none

Returns

Promise<BittrexResponse<Balance[]>>

Client.getBalance(currency: string)

Get your balance for a single currency

Parameters

Name Type Required Description
currency string yes e.g. BTC

Returns

Promise<BittrexResponse<Balance>>

Client.getWithdrawalHistory(currency?: string)

Get all withdrawals or all withdrawals for a single currency

Parameters

Name Type Required Description
currency string no e.g. BTC

Returns

Promise<BittrexResponse<Withdrawal[]>>

Client.getWithdrawalHistory(currency?: string)

Get all withdrawals or all withdrawals for a single currency

Parameters

Name Type Required Description
currency string no e.g. BTC

Returns

Promise<BittrexResponse<Withdrawal[]>>

Client.getDepositAddress(currency: string)

Get a deposit address for a currency

Parameters

Name Type Required Description
currency string yes e.g. BTC

Returns

Promise<BittrexResponse<DepositAddress>>

Client.getDepositHistory(currency?: string)

Get your deposit history for all currencies or for one currency

Parameters

Name Type Required Description
currency string no e.g. BTC

Returns

Promise<BittrexResponse<Deposit[]>>

Client.getOrderHistory(market?: string)

Get your order history for all markets or for one market

Parameters

Name Type Required Description
market string no e.g. BTC-ETH

Returns

Promise<BittrexResponse<Order[]>>

Client.getOrder(orderId: string)

Get an order by id

Parameters

Name Type Required Description
orderId string yes e.g. 12412412

Returns

Promise<BittrexResponse<OrderSingle[]>>

Client.withdraw(currency: string, quantity: number, address: string, paymentid?: string)

Withdraw

Parameters

Name Type Required Description
currency string yes e.g. BTC
quantity number yes e.g. 0.5
address string yes
paymentid string no An optional description to identify your payment

Returns

Promise<BittrexResponse<OrderSingle[]>>

Contributing:

git clone https://github.com/stijnbuurman/BittrexJS.git
cd BittrexJS
git checkout -b myfeature master
npm install
gulp

Roadmap

  • Implement Bittrex WebSockets API
  • Implement Bittrex API v2
  • Finalize documentation - add examples for authenticated methods
  • Finalize documentation - add examples for error catching
  • Add 'live build' tool
  • Remove inconsistencies
  • Split client in 'simple' and 'raw'
  • Add tests

bittrexjs's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.