bitFlyer

bitFlyerのAPIでできること→ほとんど何でもできる

投稿日:2020年12月8日 更新日:

【2020/12/12】 pybitflyer記事へのリンクを更新しました

computer screen monitor

bitFlyerを使っているのだけれど、APIなるもので何かができるらしい

確かにAPIを利用すると、bitFlyerで色々なことができます。本記事では、その「色々なこと」の概要を説明していきます。

結論:APIでほとんど何でもできる

Several white arrows pointing upwards on a wooden wall

少し語弊があるものの、APIを利用すればマニュアル操作でできることは、ほとんど何でもできます。例えば、下記のようなものが実現可能です。

  • 基本
    • 口座残高の確認
    • 仮想通貨の売り買い
  • 応用
    • BOTを作成して24時間、市場に張り付く
    • 独自のシグナルを利用しての売り買い
  • 応用 + 連携
    • 機械学習/AIを利用しての売り買い
    • Twitter等のニュース情報を利用しての売り買い

APIとは

assorted-color abstract painting

込み入った話に入る前に、そもそもAPIが何なのかということを確認しておきましょう。

APIとは”Application Programming Interface”の略で、意訳すると「プログラミング用の接続手段」程度のものです。

最近はREST APIと呼ばれる、Webで使われるAPIを良く見ます。難しく聞こえるかもしれませんが、難しくありません。

bitFlyerのアドレス "https://api.bitflyer.com/v1/""board" を付けた、下記のリンクをクリックしてみてください。

https://api.bitflyer.com/v1/board

下記のような文字列が、表示されたはずです。これは、最新のbitFlyerの板情報 (売値/買値の一覧)を表示しています。

おめでとうございます! これで既に、APIの最初の一歩を踏み出しました。

bitFlyer + APIでできること

ball with number lot

もちろん板情報以外にも、色々な情報を取得することができます。公式ドキュメントを確認すると、下記のものが記載されています。

例えば下記のものも利用可能なのですが、事前に登録が必要です (登録なしで接続できるのであれば、誰でもあなたの口座にアクセスできるということになるので。登録方法については後述します)。



APIの使い方 = プログラミング

ここで気付くのは、APIで表示される情報が見にくいということです。

プログラミングしていきましょう。繰り返しですが、難しくありません。

API利用のために、Google Colab を起動する

こちらのリンクから、Google Colabへアクセスしてください。Google ColabはGoogleが無償で提供している、Pythonというプログラミング言語のプログラミング環境です。

(Googleのアカウントを持っていない方は、例えばこちらの記事を参照してアカウントを作成してください)。

NEW NOTEBOOKをクリックすると、プログラミング画面が開きます。

Google Colab 上で、Python/APIプログラミング

プログラミング画面が表示されたら、下記の赤枠部分に、

このプログラムをコピペしてください。

import requests
requests.get('https://api.bitflyer.com/v1/board').json()

そして再生ボタンをクリックし、プログラムを実行させます。

そうすると、板情報が表示されるかと思います。そうです、いま実行したプログラムは、先程ブラウザで表示させたものをプログラムから表示させるものだったわけです。

これだと見にくいので、プログラムを下記のように変更して、再度実行してみましょう。['asks'][:5]というものが追加されただけです。

import requests
requests.get('https://api.bitflyer.com/v1/board').json()['asks'][:5]

そうすると板情報の中でも、ask (売り手側) の上位5つのみが表示されます。

bid (買い手側)の上位を表示させたい場合は、プログラム中のasksbidsに変更するだけです。

おめでとうございます! いまあなたは、Google Colab 環境上で、プログラミング言語Pythonを利用して、bitFlyerのAPIを利用しています。

bitFlyer資産残高も取得する

person holding white and red card

今度はbitFlyerに登録をして、資産残高もAPIから入手してみましょう。登録と言っても小難しい作業は必要なく、bitFlyerのページから接続用のパスワード (のようなもの) を入手するだけです。

こちらの記事のStep3までを参照しつつ、APIキーAPIシークレットの2つを取得してください。取得できたら今度は、下記のプログラムをGoogle Colabで実行してみてください。

(下記プログラム中のAPIキーとAPIシークレットはダミーです。自分のものに差し替えて試してみてください)

import requests, datetime, hmac, hashlib

api_key = 'X9kddu898dCCkmedf0pd0f'
api_secret = 'RWCcdkfixk802edUU98O1L5pvxk9TO04U8DF9qiKdix9'

timestamp = str(datetime.datetime.today())
message= timestamp + 'GET' + '/v1/me/getbalance'
signature = hmac.new(bytearray(api_secret.encode('utf-8')), message.encode('utf-8'), digestmod=hashlib.sha256).hexdigest()

headers = {'ACCESS-KEY' : api_key,
           'ACCESS-TIMESTAMP' : timestamp,
           'ACCESS-SIGN' : signature,
           'Content-Type' : 'application/json'
          }

requests.get('https://api.bitflyer.com/v1/me/getbalance', headers=headers).json()

下記のように、資産残高が表示されるはずです。パスワード (APIキー/シークレット) を利用する関係上、暗号化等の操作を行う必要があり、プログラムが少し長くなっています。

今回のプログラミングは、ここまでです。Google Colabのタブは、そのまま閉じてしまって大丈夫です。

まとめ:bitFlyerのAPI利用方法

pen on white lined paper selective focus photography

bitFlyerのAPIを、Google Colab / Python 環境上で利用する方法について触れました。また、APIの中身を見るだけであれば、ブラウザからもアクセスできるということも述べました。

本記事で触れていることは、APIでできることの最初の一歩でしかありません。もっと突っ込んだ使い方について、これからどんどん記事を追加していきます。



補足説明

少し脱線となるため記事本文中では触れていなかった事項について、簡単に補足します。

APIの危険性

本記事にも記載した通り、APIキー/APIシークレットはパスワードのような働きをします。そのためこの情報が漏れれば、漏れた情報を元にbitFlyer口座内のお金を全て抜かれる可能性もあります。

APIだから特別危険というよりも、普段パスワードを厳重に扱うのと同じように、APIキー/APIシークレットも管理していただければと思います。

API制限

APIを使い過ぎるとbitFlyerのサーバーに負担をかけるため、利用回数に制限があります。bitFlyerの公式ドキュメントによれば、5分間で500回のAPI呼び出し制限があります。

実際に利用した感覚として、スキャルピングでもしない限りこの制限回数を超えることはありません。スキャルピングを利用する場合は、少し工夫が必要かもしれません。

pybitflyer

pybitflyerという、Pythonのライブラリ (無償) があります。これを利用することで、比較的簡単にプログラムすることができるようになります。

本記事ではAPIの説明のために触れませんでしたが、私も普段はpybitflyerを利用しています。これの利用方法についても、記事を追加していきます。

マネーフォワード (APIキー/APIシークレット)

マネーフォワードという、家計簿アプリがあります。このアプリ内でbitFlyerのAPIキーとAPIシークレットを登録/連携することで、アプリで見れるbitFlyer資産残高が自動でアップデートされます。マネーフォワード内部で、上記のAPIを利用していると考えて、ほぼ間違いありません。

(逆に、自分が使いやすいようなbitFlyer資産管理プログラムを自作することも可能です)

追記 (2020/12/12)

pybitflyerについての記事を作成しました。ぜひ確認してみてください。



-bitFlyer
-, , , , , , ,

執筆者:


  1. […] (pybitflyerは、裏側ではbitFlyerのAPIというものを利用しています。APIについては、過去記事を参照してください) […]

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です



関連記事

no image

pybitflyerで簡単自動売買

pybitflyerなるものを使えば、bitFlyerの取引を自動化できる? pybitflyerを使うことで、bitFlyerの取引を自動化することができます。 本記事ではpybitflyerを導入 …

プロフィール

タクマ
−−−−−−−−

東南アジア(ミャンマー&フィリピン)でNW系システムインテグレーターとして6年ほど駐在していました。本を1500冊以上読んだり、プログラミングをしたりしています。嫁さんはタイ人で、タイ在住です。
ーー
Twitter (@tkm_nkmr)
ーー
Twitterまとめのまとめ
YouTube Find!
SNS Trends

−−−−−−−−