SDK for the BitoPro API.
npm install bitopro-api-node
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')
There is rate limits applied to each API, please check API documentation for more detail.
Both price and amount are subject to decimal restrictions, please check official settings for more detail.
Checkout the official settings of minimum amount.
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"
}
]
}
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"
}
}
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
}
]
}
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"
}
]
}
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"
}
]
}
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
}
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
}
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
}
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"
}
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.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
). - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
The SDK is available as open source under the terms of the MIT License.