Bitopro
This is an Ruby wrapper for the Bitopro exchange APIs.
- Bitopro
- Limitations
- Rate Limit
- Precisions
- Minimum order amount
- Installation
- Setup
- Usage
- Public REST Endpoints
- getOrderBook
- getTickers
- getTrades
- Authenticated REST Endpoints
- getAccountBalances
- getOrderHistory
- getOrders
- createOrder
- cancelOrder
- getOrder
- Public REST Endpoints
- Contributing
- License
- Limitations
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.
Installation
Add this line to your application's Gemfile:
gem 'bitopro'
And then execute:
$ bundle
Or install it yourself as:
$ gem install bitopro
Setup
Set account credentials if you want use authentication API endpoint.
Bitopro.configure do |config|
config.email = "your_email"
config.key = "your_key"
config.secret = "your_secret"
end
Usage
require "bitopro"
client = Bitopro::Client.new
Public REST Endpoints
getOrderBook
client.order_book("btc_twd")
{
"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
client.tickers("eth_btc")
{
"data": [
{
"high24hr": "0.03252800",
"isBuyer": false,
"lastPrice": "0.03252800",
"low24hr": "0.03252800",
"pair": "eth_btc",
"priceChange24hr": "0",
"volume24hr": "0.00000000"
},
{
"high24hr": "541.00000000",
"isBuyer": false,
"lastPrice": "541.00000000",
"low24hr": "541.00000000",
"pair": "btg_twd",
"priceChange24hr": "0",
"volume24hr": "0.00000000"
}
]
}
getTrades
client.recent_trades("btc_twd")
{
"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
client.account_balance
{
"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
client.order_history
{
"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
client.order_list(pair: "btc_twd", page: 1, active: false)
{
"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
client.create_order(pair: "btc_twd", action: "buy", amount: "0.235", price: "1", type: "limit")
{
"action": "buy",
"amount": "0.235",
"orderId": "11233456",
"price": "1.0",
"timestamp": 1504262258000
}
cancelOrder
client.cancel_order(pair: "btc_twd", order_id: "12234566")
{
"action": "buy",
"amount": 2.3,
"orderId": "12234566",
"price": 1.2,
"timestamp": 1504262258000
}
getOrder
client.get_order(pair: "btc_twd", order_id: "123")
{
"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-ruby. 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
We're using RSpec for testing. Run the test suite with rake spec
. Tests for pull requests are appreciated but not required. (If you don't include a test, we'll write one before merging.)
License
The gem is available as open source under the terms of the MIT License.