bitfinexcom / bitfinex-api-node

BITFINEX NodeJS trading API - Bitcoin, Litecoin, and Ether exchange
https://www.bitfinex.com/
MIT License
462 stars 213 forks source link

get all currencies and ticker data for all pairs #85

Closed slidenerd closed 7 years ago

slidenerd commented 7 years ago

How do I go about getting all the currency pairs on bitfinex and the ticker data for each one through websockets. The code below only does BTC USD, I would like it to be dynamic where it queries all the available pairs at any given time and then queries each.

bws.on('open', () => {
  bws.subscribeTicker('BTCUSD')
})

Thank you for your answer in advance

slidenerd commented 7 years ago

Quick Update

Does this give data from all the pairs?


bws.on('open', () => {
  bws.subscribeTicker()
})

bws.on('orderbook', (pair, book) => {
  console.log('Order book:', book)
})

bws.on('trade', (pair, trade) => {
  console.log('Trade:', trade)
})

bws.on('ticker', (pair, data) => {
  console.log('Ticker:', pair, data)
})
nedievas commented 7 years ago

Hi, @slidenerd. Please try it and you'll see.

First you have to do function which will check available pairs via REST get_symbols. Then make a function which will put pairs into 'BTCUSD' place on a separate subscribeTicker lines.

slidenerd commented 7 years ago

Works pretty well, incase someone else in the future is stuck with the issue, here's the code


const bws = new BFX(API_KEY, API_SECRET, opts).ws

bws.on('open', () => {
  request.get('https://api.bitfinex.com/v1/symbols', { json: true }, (error, response, body) => {
    for (let pair of body) {
      bws.subscribeTicker(pair)
    }
  })

})

bws.on('orderbook', (pair, book) => {
  console.log('Order book:', book)
})

bws.on('trade', (pair, trade) => {
  console.log('Trade:', trade)
})

bws.on('ticker', (pair, data) => {
  console.log('Ticker:', pair, data)
})

bws.on('error', console.error)

@nedievas thanks for the help

FernandoVezzali commented 6 years ago

For the API v1 the endpoint https://api.bitfinex.com/v1/symbols works prectly. I noticed that the version 2 of the API doesn't have any endpoint for listing symbols. I tried hit the https://api.bitfinex.com/v2/symbols and I got "Cannot GET /api/v2/symbols" as a response.

personalityson commented 6 years ago

There is no way without submitting a full list of symbols, because the API is ill-designed... Literally the only exchange that does it. Why? Because idiots

enriquepiatti commented 5 years ago

API V2 use this URL:
https://api.bitfinex.com/v2/conf/pub:list:pair:exchange