bitbank(ビットバンク)の公式APIの始め方(Python用コード)のイメージ画像

bitbank(ビットバンク)の公式APIの始め方(Python用コード)

  • 公開日:2018/07/18
  • 更新日:2018/10/19
  • 投稿者:n bit

Pythonを使ってbitbank(ビットバンク)のAPIを利用する方法を解説します。bitbankではAPIを利用することで通常使用することのできないオーダーなども使うことができますのでbitbankをメイン取引所として利用する方はAPIも使えるようになっておくと便利です。

  • Python
  • ブロックチェーン
  • 仮想通貨
  • 取引所
  • bitbank

この記事は約 分で読めます。(文字)

bitbank(ビットバンク)の公式APIとは

仮想通貨の取引所の多くではAPI機能が用意されています。日本国内で人気の仮想通貨取引所ビットバンクでもAPIがあり、APIを利用することで取引所の利用をより便利にすることができます。

ビットバンクのAPIとは

APIと聞くとプログラムと身構えてしまう方も多いかもしれませんが、API自体は慣れてしまえばそんなに難しいものではありません。基本的には決まったURLでアクセスすることで指定のデータを取得することができます。

イメージとしては取得したいデータだけが置かれているホームページだと捉えておいても大丈夫です。取得したいデータが置かれているページのURLを直接入力してアクセスしているような感じです。

ビットバンクのAPIには大きく2種類のAPIが用意されています。1つは『パブリックAPI』、そしてもう一つは『プライベートAPI』です。1つ目のパブリックAPIは誰でもアクセスできるAPIです。もう一方の『プライベートAPI』はアクセスするために専用のAPIキーやシークレットが必要となります。

『プライベートAPI』を利用する場合は専用APIキーとシークレットを暗号化する必要がありますが、そのような細かな手続きに関してはビットバンクが公式に専用のライブラリを用意してくれているため、ライブラリをインストールしておけば全て自動でやってくれます。

ビットバンクAPIを使うと何ができるの

ビットバンクのAPIを使うことで具体的にどのようなことができるようになるのか見ていきましょう。


パブリックAPIの機能

パブリックAPIで利用することができる機能の一覧は下記の通りです。今は説明の列を流し読み程度で充分です。パブリックAPIを利用するとこのようなことが遠隔で利用できます。

関数説明引数
get_ticker市場価格を取得pair
get_depth板情報を取得pair
get_transactions最新の全約定履歴を取得
または、
指定日の全約定履歴を取得
pair, yyyymmdd=None
get_candlestick指定日のロウソク足データを取得pair, candle_type, yyyymmdd

プライベートAPIの機能

プライベートAPIで利用することができる機能の一覧は下記の通りです。

関数説明引数
get_asset資産の一覧を取得
get_ordersオーダー情報を取得pair, order_id
get_active_ordersアクティブなオーダー情報を取得pair, options=None
orderオーダーを入れるpair, price, amount, side, order_type
cancel_orderオーダーをキャンセルするpair, order_id
cancel_orders複数のオーダーをキャンセルするpair, order_ids
get_orders_info複数のオーダー情報を取得pair, order_ids
get_trade_history約定履歴を取得pair, order_count
get_withdraw_account出金アカウントを取得asset
request_withdraw出金をリクエストasset, uuid, amount, token

別のページで解説しますが、ビットバンクのオーダーの中にはロスカット向きの注文がありません。通常はチャートを追いかけながら手動で購入や利確、損切りなどを行う必要があり結構不便です。これらの問題もこのプライベートAPIの機能を活用することでクリアすることができます。

bitbankでAPIを使った損切り(ストップ成行)注文の入れ方は下記のページで解説しています。

Pythonを使ったbitbank(ビットバンク)公式APIの連携方法

それでは具体的にビットバンクの公式APIの連携方法を解説していきます。APIをコントロールするにはプログラミング言語が必要となりますがここではPythonを使って進めていきます。

ビットバンクからAPIキーとシークレットの取得

プライベートAPI利用時に必要となるAPIキーとシークレットを最初に取得します。ビットバンクにログインしたら左メニューの『API』をクリックしてください。

bitbank API メニュー

ログイン方法は下記のページで解説しています。

APIのページが表示されますので『APIキーの発行』のボタンをクリックします。

bitbank API キーの発行

APIキー発行画面が表示されます。それぞれの項目に必要な情報を入力して『確認する』ボタンをクリックします。

bitbank API キーの発行画面

  • ラベル:任意
  • 権限:参照、取引、出金(付与する権限を増やすほどリスクが高くなります)

設定内容に問題がなければ『発行する』ボタンをクリックします。

bitbank API キーの発行確定

以下の画面が表示されれば設定完了です。

bitbank API キーの発行完了

次に発行されたAPIキーとシークレットを表示させます。先ほど作成したAPIのラベル行にある『確認』ボタンをクリックします。

bitbank API 発行キーの確認

認証コードを入力し『確認する』ボタンをクリックしてください。

bitbank API 認証コードの入力

APIキーとシークレットが表示されますのでどこかにコピーしておいてください。シークレットに関しては下側の『表示』ボタンをクリックすることで表示されます。

bitbank API 発行キーの表示

これでAPIキーとシークレットの取得作業が完了です。

公式のビットバンクAPIライブラリーのインストール

APIキーとシークレットの取得が完了したら、次はビットバンクが用意してくれている公式ライブラリーのインストールです。ターミナルウインドウを起動し下記のコマンド入力してください。この1行だけでライブラリーのインストールは完了です。

$ pip install git+https://github.com/bitbankinc/python-bitbankcc.git

Cloud9でのビットバンク公式APIライブラリーのインストールコマンド

AWSのCloud9にビットバンク公式APIライブラリーをインストールする場合は以下のコマンドで実行できます。

$ sudo pip-3.6 install git+https://github.com/bitbankinc/python-bitbankcc.git

Pythonで公式ライブラリをインポートして利用する

先ほどインストールした公式ライブラリをPythonのコード内で利用するには最初にインポートする必要があります。インポートのためのコードは下記の1行です。APIのコードを書く前にこちらの1行を追記しておきましょう。

import python_bitbankcc

bitbank(ビットバンク)公式APIのPython基本コード

ビットバンク公式のAPIをPythonで利用する準備が整いましたので実際にPythonからAPI経由でデータを取得してみましょう。

パブリックAPIを利用して現在の相場の価格情報を、プライベートAPIを利用して現在の自分の資産状況を取得してみます。基本的なコードは以下のようになります。

import python_bitbankcc


class BitBankPubAPI:

def __init__(self):
self.pub = python_bitbankcc.public()

def get_ticker(self, pair):
try:
value = self.pub.get_ticker(pair)
return value
except Exception as e:
print(e)
return None

class BitBankPrvAPI:

def __init__(self):
API_KEY = 'BITBANK_API_KEY'
API_SECRET = 'BITBANK_API_SECRET'
self.prv = python_bitbankcc.private(API_KEY, API_SECRET)

def get_asset(self):
try:
value = self.prv.get_asset()
return value
except Exception as e:
print(e)
return None

def main():
pub_set = BitBankPubAPI()
prv_set = BitBankPrvAPI()

ticker = pub_set.get_ticker('btc_jpy')
print(ticker['last'])

asset_dict = prv_set.get_asset()
print(asset_dict['assets'])

if __name__ == '__main__':
main()

パブリックAPIを利用して現在の相場の価格情報

相場価格取得用のメインコードは下記の部分です。

class BitBankPubAPI:


def __init__(self):
self.pub = python_bitbankcc.public()

def get_ticker(self, pair):
try:
value = self.pub.get_ticker(pair)
return value
except Exception as e:
print(e)
return None

こちらの関数をメイン関数内で呼び出して結果をprint関数で出力しています。

def main():

pub_set = BitBankPubAPI()

ticker = pub_set.get_ticker('btc_jpy')
print(ticker['last'])

if __name__ == '__main__':
main()

出力結果

以下のように指定した通貨ペアの価格情報が返されます。

{

"success": 0,
"data": {
"sell": 売り注文の最安値,
"buy": 買い注文の最安値,
"high": 過去24時間以内の最高値,
"low": 過去24時間以内の最安値,
"last": 最終の価格,
"vol": 過去24時間の出来高,
"timestamp": 日時
}
}

プライベートAPIを利用して現在の自分の資産状況を取得

資産状況を取得するメインコードは下記の部分です。

class BitBankPrvAPI:


def __init__(self):
API_KEY = 'BITBANK_API_KEY'
API_SECRET = 'BITBANK_API_SECRET'
self.prv = python_bitbankcc.private(API_KEY, API_SECRET)

def get_asset(self):
try:
value = self.prv.get_asset()
return value
except Exception as e:
print(e)
return None

先ほどビットバンクから取得したAPIキーとシークレットを下記の部分に記述してください。

        API_KEY = 'BITBANK_API_KEY'

API_SECRET = 'BITBANK_API_SECRET'
  • BITBANK_API_KEY:APIキーに打ち替える
  • BITBANK_API_SECRET:シークレットに打ち替える

こちらも価格情報と同じようにメイン関数内で呼び出して結果をprint関数で出力しています。

def main():

prv_set = BitBankPrvAPI()

asset_dict = prv_set.get_asset()
print(asset_dict['assets'])

if __name__ == '__main__':
main()

出力結果

出力結果は以下のようになります。すべての資産の値が個別に返されます。

{

"success": 0,
"data": {
"assets": [
{
"asset": 通貨ペア,
"amount_precision": 小数点の表示精度,
"onhand_amount": 全ての数量,
"locked_amount": 注文等でロックされている数量,
"free_amount": 利用可能な数量,
"withdrawal_fee": 引き出し手数料
}
]
}
}

今日のdot

ビットバンクのAPIでは、今回示したコードを元に下記の表のような機能を用意することができます。必要な機能をPyhonコードで用意して手動トレードのミスや負担を軽減しましょう。

またビットバンク用のbotを作成することも可能です。

パブリックAPIの機能

関数説明引数
get_ticker市場価格を取得pair
get_depth板情報を取得pair
get_transactions最新の全約定履歴を取得
または、
指定日の全約定履歴を取得
pair, yyyymmdd=None
get_candlestick指定日のロウソク足データを取得pair, candle_type, yyyymmdd

プライベートAPIの機能

関数説明引数
get_asset資産の一覧を取得
get_ordersオーダー情報を取得pair, order_id
get_active_ordersアクティブなオーダー情報を取得pair, options=None
orderオーダーを入れるpair, price, amount, side, order_type
cancel_orderオーダーをキャンセルするpair, order_id
cancel_orders複数のオーダーをキャンセルするpair, order_ids
get_orders_info複数のオーダー情報を取得pair, order_ids
get_trade_history約定履歴を取得pair, order_count
get_withdraw_account出金アカウントを取得asset
request_withdraw出金をリクエストasset, uuid, amount, token