Skip to content

Official nodejs SDK for the Bitopro(幣託) cryptocurrency exchange.

Notifications You must be signed in to change notification settings

bitoex/bitopro-api-node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bitopro-api-node

npm version

SDK for the BitoPro API.

Bitopro official API document

Installation

npm install bitopro-api-node

Getting started

Create BitoPro client. Pass api keys only if you are going to do authenticated calls. You can create an api key here.

const BitoPro = require('bitopro-api-node')
const bitopro = new BitoPro('your_api_key', 'your_api_secret', 'your_email')

Limitations

Rate Limit

There is rate limits applied to each API, please check API documentation for more detail.

Precisions

Both price and amount are subject to decimal restrictions, please check official settings for more detail.

Minimum order amount

Checkout the official settings of minimum amount.

Public REST Endpoints

getOrderBook

let getOrderBook = async () => {
  try {
    let book = await bitopro.getOrderBook('btc_twd')
    console.log(book)
  } catch (e) {
    console.log(e)
  }
}

getOrderBook()
Output
{
  "bids": [
    {
      "price": "180500",
      "amount": "0.12817687",
      "count": 1,
      "total": "0.12817687"
    },
    {
      "price": "180010",
      "amount": "0.32292",
      "count": 2,
      "total": "0.45109687"
    },
    {
      "price": "180000",
      "amount": "0.24236",
      "count": 3,
      "total": "0.69345687"
    }
  ],
  "asks": [
    {
      "price": "180599",
      "amount": "0.00326056",
      "count": 1,
      "total": "0.00326056"
    },
    {
      "price": "180600",
      "amount": "0.04202575",
      "count": 1,
      "total": "0.04528631"
    }
  ]
}

getTickers

let getTickers = async () => {
  try {
    // all tickers
    let tickers = await bitopro.getTickers()
    console.log(tickers)

    // single ticker
    let ticker = await bitopro.getTickers('btc_twd')
    console.log(ticker)
  } catch (e) {
    console.log(e)
  }
}

getTickers()
Output
// all tickers
{
  "data": [
    {
      "pair": "xem_btc",
      "lastPrice": "0.00000098",
      "isBuyer": false,
      "priceChange24hr": "0",
      "volume24hr": "0.00000000",
      "high24hr": "0.00000098",
      "low24hr": "0.00000098"
    },
    {
      "pair": "bch_eth",
      "lastPrice": "0.60010000",
      "isBuyer": false,
      "priceChange24hr": "0",
      "volume24hr": "0.00000000",
      "high24hr": "0.60010000",
      "low24hr": "0.60010000"
    },
    {
      "pair": "eth_usdt",
      "lastPrice": "179.22000000",
      "isBuyer": true,
      "priceChange24hr": "10.85",
      "volume24hr": "925.14654180",
      "high24hr": "182.30000000",
      "low24hr": "159.94000000"
    }
  ]
}

// single ticker
{
  "data": {
    "pair": "xem_eth",
    "lastPrice": "0.00010800",
    "isBuyer": false,
    "priceChange24hr": "0",
    "volume24hr": "0.00000000",
    "high24hr": "0.00010800",
    "low24hr": "0.00010800"
  }
}

getTrades

let getTrades = async () => {
  try {
    let trades = await bitopro.getTrades('btc_twd')
    console.log(trades)
  } catch (e) {
    console.log(e)
  }
}

getTrades()
Output
{
  "data": [
    {
      "timestamp": 1557203407,
      "price": "180500.00000000",
      "amount": "0.07717687",
      "isBuyer": false
    },
    {
      "timestamp": 1557203187,
      "price": "180500.00000000",
      "amount": "0.05100000",
      "isBuyer": false
    },
    {
      "timestamp": 1557203053,
      "price": "180500.00000000",
      "amount": "0.01860000",
      "isBuyer": false
    },
    {
      "timestamp": 1557202804,
      "price": "180500.00000000",
      "amount": "0.04781533",
      "isBuyer": false
    },
    {
      "timestamp": 1557202804,
      "price": "180500.00000000",
      "amount": "0.06000000",
      "isBuyer": false
    }
  ]
}

Authenticated REST Endpoints

getAccountBalances

let getAccountBalances = async () => {
  try {
    let balances = await bitopro.getAccountBalances()
    console.log(balances)
  } catch (e) {
    console.log(e)
  }
}

getAccountBalances()
Output
{
  "data": [
    {
      "amount": "10001",
      "available": "1.0",
      "currency": "bito",
      "stake": "10000"
    },
    {
      "amount": "0.0",
      "available": "1.0",
      "currency": "btc",
      "stake": "0"
    },
    {
      "amount": "3.0",
      "available": "0.01",
      "currency": "eth",
      "stake": "0"
    },
    {
      "amount": "30000",
      "available": "2500",
      "currency": "twd",
      "stake": "0"
    }
  ]
}

getOrderHistory

let getOrderHistory = async () => {
  try {
    let history = await bitopro.getOrderHistory()
    console.log(history)
  } catch (e) {
    console.log(e)
  }
}

getOrderHistory()
Output
{
  "data": [
    {
      "action": "buy",
      "avgExecutionPrice": "100000.00000000",
      "bitoFee": "0.00000000",
      "executedAmount": "1.00000000",
      "fee": "0.00100000",
      "feeSymbol": "BTC",
      "id": "123",
      "originalAmount": "1.00000000",
      "pair": "btc_twd",
      "price": "100000.00000000",
      "remainingAmount": "0.00000000",
      "status": 2,
      "timestamp": 1508753757000,
      "type": "limit"
    },
    {
      "action": "buy",
      "avgExecutionPrice": "100000.00000000",
      "bitoFee": "0.00000000",
      "executedAmount": "1.00000000",
      "fee": "0.00200000",
      "feeSymbol": "BTC",
      "id": "456",
      "originalAmount": "1.00000000",
      "pair": "btc_twd",
      "price": "100000.00000000",
      "remainingAmount": "0.00000000",
      "status": 2,
      "timestamp": 1508753787000,
      "type": "limit"
    }
  ]
}

getOrders

let getOrders = async () => {
  try {
    // only fetch active orders
    let orders = await bitopro.getOrders('bito_twd')
    console.log(orders)

    // include history orders
    orders = await bitopro.getOrders('bito_twd', false)
    console.log(orders)

    // with page parameter
    orders = await bitopro.getOrders('bito_twd', false, 1)
    console.log(orders)
  } catch (e) {
    console.log(e)
  }
}

getOrders()
Output
{
  "data": [
    {
      "action": "buy",
      "avgExecutionPrice": "100000.00000000",
      "bitoFee": "0.00000000",
      "executedAmount": "1.00000000",
      "fee": "0.00100000",
      "feeSymbol": "BTC",
      "id": "123",
      "originalAmount": "1.00000000",
      "pair": "btc_twd",
      "price": "100000.00000000",
      "remainingAmount": "0.00000000",
      "status": 2,
      "timestamp": 1508753757000,
      "type": "limit"
    },
    {
      "action": "buy",
      "avgExecutionPrice": "100000.00000000",
      "bitoFee": "0.00000000",
      "executedAmount": "1.00000000",
      "fee": "0.00200000",
      "feeSymbol": "BTC",
      "id": "456",
      "originalAmount": "1.00000000",
      "pair": "btc_twd",
      "price": "100000.00000000",
      "remainingAmount": "0.00000000",
      "status": 2,
      "timestamp": 1508753787000,
      "type": "limit"
    }
  ],
  "page": 1,
  "totalPages": 10
}

createOrder

let createOrder = async () => {
  try {
    let order = {
      pair: 'btc_twd',
      action: 'buy',
      amount: '250',
      price: '0.000075', // no need for market orders
      timestamp: Date.now(),
      type: 'limit' // 'market' for market orders
    }
    let result = await bitopro.createOrder(order)
    console.log(result)
  } catch (e) {
    console.log(e)
  }
}

createOrder()
Output
{
  "action": "buy",
  "amount": "0.235",
  "orderId": "11233456",
  "price": "1.0",
  "timestamp": 1504262258000
}

cancelOrder

let cancelOrder = async () => {
  try {
    let orderID = 123456
    let result = await bitopro.cancelOrder('btc_twd', orderID)
    console.log(result)
  } catch (e) {
    console.log(e)
  }
}

cancelOrder()
Output
{
  "action": "buy",
  "amount": 2.3,
  "orderId": "12234566",
  "price": 1.2,
  "timestamp": 1504262258000
}

getOrder

let getOrder = async () => {
  try {
    let orderID = 123
    let result = await bitopro.getOrder('btc_twd', orderID)
    console.log(result)
  } catch (e) {
    console.log(e)
  }
}

getOrder()
Output
{
  "action": "sell",
  "avgExecutionPrice": "112000.00000000",
  "bitoFee": "103.70370360",
  "executedAmount": "1.00000000",
  "fee": "0.00000000",
  "feeSymbol": "TWD",
  "id": "123",
  "originalAmount": "1.00000000",
  "pair": "btc_twd",
  "price": "112000.00000000",
  "remainingAmount": "0.00000000",
  "status": 2,
  "timestamp": 1508753757000,
  "type": "limit"
}

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/bitoex/bitopro-api-node and this project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature).
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

License

The SDK is available as open source under the terms of the MIT License.

About

Official nodejs SDK for the Bitopro(幣託) cryptocurrency exchange.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •