bitbank (ビットバンク) の公式「API」取得方法!!様々なプログラミングでAPIを活用しよう

編集:
Kasobu 編集部 (Kasobu editorial team)
この記事の編集者
Kasobu 編集部

本サイトに掲載される記事の執筆と管理を行っております。ユーザーの皆様が納得して意思決定を行えるよう、経験豊富なライターや専門家とともに、世界中の情報を網羅的かつ正確に、理解しやすいコンテンツにまとめています。ユーザーの皆様の中には、初めての投資をする方、熟練の投資家の方、企業経営者の方、専門家の方、仮想通貨について学習したい方など、多様なバックグラウンドを持つ方々がいらっしゃると思いますが、仮にどなたであっても、私達の「Kasobu」がお力になれることと存じます。

編集ポリシー
1分で理解する要約
  • APIとはプログラム同士の「接続部分」のこと
  • APIキーを取得することで、他のプログラムからbitbankの情報を取得できる
  • プログラムの知識があれば、自動売買のプログラムの作成も可能

bitbank (ビットバンク) のAPIの取得方法と、APIを活用したプログラムの作成手順について解説します。

この記事を読むことで、bitbankのAPIの取得方法だけでなく、どういった情報をAPIから取得できるのかがわかります

API (Application Programming Interface) とは

API (エーピーアイ) とは、「アプリケーション・プログラミング・インターフェイス」の略称で、「プログラムを別のプログラムから操作する」ときの接続部分を指します

連携させたいプログラムから発行される、英数字の羅列である「APIキー」をもう一方のプログラムへ入力することで、プログラム同士がを連携させることができます。例えば、GoogleカレンダーをWebサイトに表示させたい場合、GoogleのAPIを利用して「googleカレンダー」と「Webサイト」を連携させます。

プログラムに「APIキー」を入力する部分があれば、プログラミングの知識がなくても簡単に連携が可能です。

bitbank (ビットバンク) で利用できる公式API

bitbankでは、APIを利用することで以下のことを行えるようになります。

  • 気配値 (板情報) ・チャートデータ等のパブリック情報の取得
  • 注文や取引履歴の取得
  • 資産の引出しリクエスト等

発行されるAPIキーは「パブリックAPI」と「プライベートAPI (APIシークレット) 」の2種類があります。連携させたいプログラムによって、入力すべきAPIキーは変わります。

パブリックAPI

パブリックAPIは、次のような「一般的に公開されている情報」を取得するときに利用します。

関数

説明

引数

get_ticker

市場価格を取得

pair

get_depth

板情報を取得

pair

get_transactions

最新の全約定履歴を取得または、指定日の全約定履歴を取得

pair/yyyymmdd=None

get_candlestick

指定日のロウソク足データを取得

pair/candle_type/yyyymmdd

bitbankのパブリックAPIを連携することで、bitbankへアクセスしなくてもこれらの情報を他のプログラムから見ることができます。

プライベート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にログインしたりアプリを使ったりしなくても、他のプログラムを通して新規注文し出金させることが可能となります。

bitbank (ビットバンク) のAPI連携で出来ること

APIがあることで「全く別のプログラム同士が連携できるようになる」ため、ユーザーがより便利に使えるようになります。

例えば家計簿アプリ「Money Forward (マネーフォワード) 」では、銀行口座や証券口座、仮想通貨取引所の口座に入っている資産をまとめて管理できますが、これも「API」を活用しています。

従来、銀行は銀行のアプリへログインして残高を確認し、証券会社は証券会社のサイトへログインして資産状況を確認する・・・というように、自分の資産状況を把握するにはいちいち別のアプリを開く必要がありました。

これを、銀行アプリから取得した「APIキー」をMoney Forwardへ入力することで、Money Foward上で銀行残高を確認できるようになります。bitbankも連携できるようになっており、bitbankの「APIキー」を入力することでbitbankの残高がMoney Forward上で確認できます。

いちいちアプリを立ち上げないと利用できなかった機能を、「ひとつのアプリ」から利用できるようになるためユーザーの利便性が上がります。

bitbank (ビットバンク) で利用できるAPI

APIは「プログラム同士をつなぐもの」ということはご理解いただけたと思います。では、その「APIキー」を入力する「器」であるプログラムは、どのようにして作られるのでしょうか?

実は、bitbankではプログラム開発者向けに、汎用性の高いプログラムコードの「まとまり」をライブラリに公開しています。プログラミングコードを記述するための言語は様々ありますが、bitbankでは以下の4種類のプログラミング言語のライブラリを公開しています。

  • node.js
  • Java
  • Python (パイソン)
  • Ruby

「node.js」とは?

node.jpは、サーバーサイドのJavaScript言語です。JavaScript自体はブラウザ上で動きWebページに動きを加えるために使われますが、その動作環境の多くはクライアントでした。これを、サーバーサイドでも同じ言語で書けるとしたのがnode.jpです。

node.jpの用途は、Webサービスやスマホアプリ、IoT製品です。

「Java」とは?

Javaは、OS環境に依存しないことが特徴のプログラミング言語です。つまり、WindowsやMac、iOS、Linuxなどの異なる環境下でも動作します。

Webサービスやスマホアプリ、家電製品、IoT製品などに使われます。

「Python」とは?

Python (パイソン) は、人工知能 (AI) や深層学習に使われるプログラミング言語です。文法がシンプルで書きやすいことが特徴です。YouTubeやインスタグラム、EvernoteはPythonから作成されています。

「Ruby」とは?

Ruby (ルビー) とは、Webサービスに活用されているプログラミング言語です。フレームワークのRuby on Railsがあるため、アプリの作成工数を少なく開発できることが特徴です。食べログやクックパッドはRubyで開発されています。

bitbank (ビットバンク) からAPIキーとシークレットキーを取得する方法

bitbankからAPIキーを発行する手順は、次の2ステップです。

STEP1

APIキーを発行する

STEP2

APIキーを確認する

STEP1 APIキーを発行する

bitbankへログイン後、①左のメニューから「API」をクリックし、②本画面に表示された「APIキーの発行」ボタンを押しましょう。

そうすると、「ラベル名」と「権限の種類」、「二段階認証コード」を入力する画面に変わります。

「ラベル名」には、何の用途で取得するのかを記入するとよいでしょう。例えば、Money Forwardに使うのであれば、「Money Forward」と入力します。

「権限の種類」については、APIを入力するアプリでどの権限のAPIが必要か明記されているはずです。利用するアプリの説明をご確認ください。

二段階認証コード」を入力し、「確認する」をクリックしましょう。そして「発行する」ボタンをクリックしてください。

STEP2 APIキーを確認する

発行された「APIキー」を確認するには、次の手順を踏む必要があります。

API発行の画面で、確認したいAPIの取得日時をチェックし、「確認ボタン」を押してください。

「二段階認証コード」を入力する画面が表示されますので、コードを入力し、「確認する」ボタンを押しましょう。そうすると、「APIキー」が表示されます。

シークレットキーは、「表示」ボタンを押して確認してください。

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

Pythonを使ってAPI経由で情報を取得する手順は、次のとおりです。

STEP1

bitbankのAPIを取得

STEP2

pythonをインストール

STEP3

Anacondaをインストール

STEP4

エディターをインストール

STEP5

bitbankの公式ライブラリをインストール

STEP6

エディターでコードを入力

STEP1 bitbankのAPIを取得

前の章で解説した手順に従い、bitbankからAPIを取得しましょう。

STEP2 Pythonをインストール

Python公式サイトへアクセスし、Pythonをダウンロードしましょう。
ダウンロードするときは、コツが必要なのでPython3のインストール - python.jp>を見ながら行ってください。

STEP3 Anacondaをインストール

ディストリビューション「Anaconda」をインストールしますAnaconda Distributionのページからダウンロードできます。

STEP4 エディターをインストール

ソースプログラムを編集するためのエディターをインストールします。これは、お好みのものを入れていただいてOKです。

STEP5 bitbankの公式ライブラリをインストール

bitbankの公式ライブラリをインストールします。Windowsの方はコマンドプロンプト、Macの方はターミナルを立ち上げ、下記のコードを入力してください。

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

STEP6 エディターを立ち上げてプログラムを入力

STEP4でインストールしたエディターを立ち上げ、プログラムコードを入力ください。公式ライブラリをインポートをするため、1行目には必ず下記をご入力下さい。

import python_bitbankcc

全体のソースコード

下記のプログラムをエディターにコピペしましょう。

'-------------ご自身が取得したAPIキー-------'にはAPIキーを、'------ご自身が取得したシークレットキー------'にはAPIシークレットキーを入力します。

「ファイル名をつけて保存」をクリックし、「 (任意の名前) .py」と入力します。そしてターミナルを立ち上げ、「python (任意の名前).py」と入力しましょう。

そうすると、リップルの価格と自分の資産状況のデータが返ってきます。通貨のペアについては、適宜変更してください。

[blockquote url='https://dot-blog.jp/news/bitbank-api-beginners-haw-to/' title='bitbank(ビットバンク)の公式APIの始め方(Python用コード)']#bitbankのライブラリをインポート
import python_bitbankcc

#パブリックAPIの設定
class BitBankPubAPI:

#パブリックAPI情報の取得
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

#プライベートAPIの設定
class BitBankPrvAPI:

#プライベートAPIキーの情報取得
def init(self):
API_KEY = '-------------ご自身が取得したAPIキー-------'
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('xrp_jpy') #取引通貨ペアの設定
print(ticker['sell']) #レスポンスの設定


asset_dict = prv_set.get_asset()#プライベート情報取得コマンド
print(asset_dict['assets'])#ウォレット情報取引コマンド

if name == 'main':
main()

[/blockquote]

パブリックAPIで取得

相場価格を取得するプログラムコードです。

[blockquote url='https://ohmycrypto.news/articles/147' title='bitbank(ビットバンク)で取得できる「API」とは? pythonを使った利用方法を解説!']#bitbankのライブラリをインポート
import python_bitbankcc

#パブリックAPIの設定
class BitBankPubAPI:

#パブリックAPI情報の取得
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
[/blockquote]

プライベートAPIで取得

自分の資産情報を取得するプログラムコードです。 '-------------ご自身が取得したAPIキー-------'にはAPIキーを、'------ご自身が取得したシークレットキー------'にはAPIシークレットキーを入力します。

[blockquote url='https://ohmycrypto.news/articles/147' title='bitbank(ビットバンク)で取得できる「API」とは? pythonを使った利用方法を解説!']#プライベートAPIの設定
class BitBankPrvAPI:

#プライベートAPIキーの情報取得
def init(self):
API_KEY = '-------------ご自身が取得したAPIキー-------'
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
[/blockquote]

bitbank (ビットバンク) のAPIでプログラムを作ってみる (Ruby)

Rubyを使用してプログラムを作る手順は、次のとおりです。

STEP1

bitbankのAPIを取得

STEP2

Herokuアカウントを取得

STEP3

Rubyをインストール

STEP4

ターミナルで入力

STEP5

Herokuへデプロイする

STEP6

bitbankの公式ライブラリをインストール

STEP7

プログラムコードを入力

STEP8

Herokuへデプロイする

STEP1 bitbankのAPIを取得

bitbankのAPIキーを取得しておきましょう。

STEP2 Herokuアカウントを取得

クラウド開発プラットフォームHerokuの準備の手順は、次のとおりです。

項目

項目

項目

項目

項目

項目

項目

項目

1,000円など , (カンマ) を入れたいときはダブルクオーテーションを使用します"

[table type='row']
STEP1,Herokuへアカウント登録、メール認証
STEP2,Gitのインストール
STEP3,Heroku CLIのインストール
[/table]

STEP3 Rubyをインストール

RubyinstrallerでRubyのダウンロードしてインストールしてください。

STEP4 ターミナルで入力

Windowsではコマンドプロンプト、Macではターミナルを開いてコマンドを打ち込みます。
[blockquote url='https://sakagami3.com/entry/2018/01/20/191618#bitbankAPI-2' title='bitbank API でビットコイン(仮想通貨)の自動売買を行うシステムトレードプログラムを書いてみた | さかめも']$ heroku login

Rails をインストール。
$ gem install rails --no-ri --no-rdoc

Rails アプリケーションを作成。
$ rails new myapp --database=postgresql

アプリケーションのディレクトリに移動。
$ cd myapp

Gem をインストール。
$ bundle install[/blockquote]

STEP5 Herokuへデプロイする

空のアプリケーションをHerokuへデプロイします。

[blockquote url='https://sakagami3.com/entry/2018/01/20/191618#bitbankAPI-2' title='bitbank API でビットコイン(仮想通貨)の自動売買を行うシステムトレードプログラムを書いてみた | さかめも']git でアプリケーションを管理させる。

$ git init
$ git add .
$ git commit -m "init"

Heroku 上でアプリケーションを新しく作成。
$ heroku create

Heroku へデプロイ。
$ git push heroku master

いちおうマイグレーションも実行しておく。
$ heroku run rake db:migrate
[/blockquote]

STEP6 bitbank (ビットバンク) の公式ライブラリをインストール

bitbankのRuby用のライブラリをインストールします。以下のコードを実行しましょう。

gem install ruby_bitbankcc

その後は、次のことを実行してください。

[blockquote url='https://sakagami3.com/entry/2018/01/20/191618#bitbankAPI-2' title='bitbank API でビットコイン(仮想通貨)の自動売買を行うシステムトレードプログラムを書いてみた | さかめも']追加した gem をインストール。
bundle install

orders タスクを追加。
rails g task orders[/blockquote]

STEP7 プログラムを入力

プログラムコードを入力ください。

STEP8 Herokuへデプロイ

作成したプログラムをデプロイします。

git push heroku master

買い注文を入れるプログラム

下記のプログラムの「アクセスキー」と「シークレットアクセスキー」に、bitbankで取得したAPIキーを入力しましょう。

[blockquote url='https://sakagami3.com/entry/2018/01/20/191618#bitbankAPI-2' title='bitbank API でビットコイン(仮想通貨)の自動売買を行うシステムトレードプログラムを書いてみた | さかめも']namespace :orders do
desc "50,000円で0.01BTCの買い注文を入れる"
task :buy => :environment do
bbcc = Bitbankcc.new("アクセスキー", "シークレットアクセスキー")
response = bbcc.create_order('btc_jpy', "0.01", 50000, 'buy', 'limit')
result = JSON.parse(response)

if result['success'] == 1
puts "完了!"
end
end
end
[/blockquote]

売り注文を入れるプログラム

売り注文についても同様に、「アクセスキー」と「シークレットアクセスキー」に取得したAPIキーを入力します。
[blockquote url='https://sakagami3.com/entry/2018/01/20/191618#bitbankAPI-2' title='bitbank API でビットコイン(仮想通貨)の自動売買を行うシステムトレードプログラムを書いてみた | さかめも']namespace :orders do
desc "60,000円で0.01BTCの売り注文を入れる"
task :sell => :environment do
bbcc = Bitbankcc.new("アクセスキー", "シークレットアクセスキー")
response = bbcc.create_order('btc_jpy', "0.01", 60000, 'sell', 'limit')
result = JSON.parse(response)

if result['success'] == 1
puts "完了!"
end
end
end
[/blockquote]

注文を確認するプログラム

現在注文中の内容を確認するためのコードです。

[blockquote url='https://sakagami3.com/entry/2018/01/20/191618#bitbankAPI-2' title='bitbank API でビットコイン(仮想通貨)の自動売買を行うシステムトレードプログラムを書いてみた | さかめも']namespace :orders do
desc "現在 入っている注文を確認する"
task :check => :environment do
bbcc = Bitbankcc.new("アクセスキー", "シークレットアクセスキー")
response = bbcc.read_active_orders('btc_jpy')
result = JSON.parse(response)

result["data"]["orders"].each do |order|
puts "#{order['order_id']} - #{order['price']} / #{order['side']}"
end
end
end
[/blockquote]

bitbank (ビットバンク) の取引履歴APIの制限

2017年12月、bitbankはサーバーへの負荷が高まったとして、一時的に取引履歴のAPIを制限したと発表しました。

そのときに制限された内容は、次の2点です。

期間指定 (開始日・終了日) を伴う取引履歴の検索
取引履歴APIの呼び出し

今後も負荷が高まるとAPIが制限される可能性があります。