Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

bitopro-api-node

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bitopro-api-node

BitoPro node.js SDK.

  • 1.0.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
3
decreased by-57.14%
Maintainers
1
Weekly downloads
 
Created
Source

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')

Rate Limit

TypesRate Limit
Public API600 requests per minute per IP
Authenticated API600 requests per minute per IP/600 requests per minute per user

Precisions

Price precision

The tick size of all pairs is 0.00000001, which means you can trade all pairs only for prices that are a multiple of 0.00000001. For example, you could place a buy BTC/TWD order at price 180,070.12345678. but you will fail to open an order at price 180,070.123456789.

Amount precision

The same as price precision but you should be aware the minimum order amount.

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.

Keywords

FAQs

Package last updated on 09 May 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc