【改名】ストックドッグ

金融系の会社で働くSEが株やPython、その他諸々について書いています。システムトレードもやってるよ!

HTTP Public APIを使ってみよう

【開発環境】

bitFlyer Lightningが提供しているAPIは大きく2つに分類することができます。

  • HTTP Public API
  • HTTP Private API

この2つは、認証が必要かどうか、というところでわかれています。

例えば、板情報やマーケットで何の商品を扱っているか、などは特別な認証がなくても取得することができます。

逆に、新規注文やあるいは資産残高を取得するにはアカウントから情報を取得してくる必要があります。

そのため、APIを使用する際に認証が必要です。

認証が必要ないのがHTTP Public API、認証が必要ないのがHTTP Private APIとなります。


今回は、HTTP Public APIを使っていくので認証は必要ありません。

なので、ここではAPI keyもAPI secretも使いませんよ!

マーケットの一覧を取得

Pythonの requestsというライブラリを使います。

pipでインストールできたはずです。

pip install requests

これはその名の通り、リクエストを送るためのライブラリとなっています。

Pythonにはリクエストを送ることができるライブラリにurllibというものもあります。

しかし、こちらはあまり使い勝手がよくありません。


使い勝手がよくないので、使いやすいように改良されたのがrequestsです。

とても簡単に扱うことができるので、これを使っていきます。

基本的に行っていることは、前回の...

curl https://api.bitflyer.jp/v1/getmarkets

あるいは...

GET https://api.bitflyer.jp/v1/getmarkets

やっていることは同じです。

このcurlやGETの部分をrequestsでやっているだけです。


マーケット一覧を取得するコードはこんな感じ。

import requests

def get_market_api():
	#エンドポイントURL
	endpoint = "https://api.bitflyer.jp"

	#欲しい情報
	path = "/v1/getmarkets"

	#完成するURL
	print(endpoint + path)

	#リクエストを送って、レスポンスを受け取っている
	response = requests.get(endpoint + path)
	print(response)
	
	#読める形にする
	response = response.text

	return response

response = get_market_api()
print(response)


上を実行すると、レスポンスはこんな感じになっていると成功。

#送り先のURL
https://api.bitflyer.jp/v1/getmarkets

#200が出れば、正常に処理されましたよ、という意味
#しかし、これでは中身はわからない
<Response [200]>

#こちらがレスポンスの中身
[{"product_code":"BTC_JPY"},{"product_code":"FX_BTC_JPY"},{"product_code":"ETH_BTC"},{"product_code":"BCH_BTC"},{"product_code":"BTCJPY15SEP2017"},{"product_code":"BTCJPY22SEP2017","alias":"BTCJPY_MAT1WK"},{"product_code":"BTCJPY29SEP2017","alias":"BTCJPY_MAT2WK"}]
https://api.bitflyer.jp/v1/getboard

板情報を取得してみる

import requests


def get_board_api():
	#エンドポイントURL
	endpoint = "https://api.bitflyer.jp"

	#欲しい情報
	path = "/v1/getboard"

	#完成するURL
	print(endpoint + path)

	#リクエストを送って、レスポンスを受け取っている
	response = requests.get(endpoint + path)
	print(response)
	
	#読める形にする
	response = response.text

	return response

response = get_market_api()
print(response)

response = get_board_api()
print(response)

板情報のレスポンスは長いので割愛。

以上がHTTP Public APIの使い方でした

他にも取得できる情報はあるので、コードのpathの部分を変えながら使ってみてください。

次回は、HTTP Private APIを使ってみます。

システムトレードやろうよ 〜目次〜

www.stockdog.work