こんにちは、のちたままです。
CoinCheck,Binanceなど様々な取引所がありますが、APIは共通部分が多いため1つ覚えればほかの取引所でも応用できます。
各取引所のAPIは、詳細は異なれど共通する部分は多いので、様々な取引所APIで使える基本的な知識を紹介しようと思います。
API利用時に使うもの
APIというとしり込みしてしまう部分があるかと思いますが、基本的な部分だけ抜き出すと以下の4つがわかれば十分に扱えます。
・Public APIとPrivate API
・GET
・POST
・DELETE
それでは1つずつ見ていきます。
Public APIとPrivate API
取引所のAPIには大きく2種類あります。
・Public API...取引所の注文情報など、公開されている情報に関するものに使う
・Private API...自分のアカウントに関わるものに使う
Public APIは取引所の注文状況や板情報のように、一般に公開されている情報を参照することができます。
例えば板情報を取得することによって、コインの価格と量を調べることができます。
一方、Private APIは送金手続きや新規注文といった、個人アカウントが関わるもので利用します。
残高や出金手続きも行うことができます。
このようにPublic APIとPrivate APIではできることが異なります。
そのため、Private APIでは「API_KEY」と「SECRET_KEY」という個人情報にあたるものが必要になります。
これが第三者に漏れると悪用されてしまう恐れがあるので注意しましょう。
GET
GETは情報を取得する際に利用するものです。
例えば現在の板情報が欲しい、今日の最高値がいくらなのか知りたいなど、取引所で扱われている価格情報などを取得するのに使います。
例えば、コインチェックでは以下のようにコードを書くと各種最新情報が取得できます。
import requests import pprint base='https://coincheck.com' books='/api/order_books' url=base+books params={ 'pair':'btc_jpy', 'limit':5 } r=requests.get(url,params=params) pprint.pprint(r.json())
実行結果
{'asks': [['6369999.0', '0.005'], ['6370000.0', '0.015'], ['6370623.0', '0.0138'], ['6371038.0', '0.0088'], ['6371337.0', '0.01137']], 'bids': [['6369355.0', '0.00009071'], ['6365710.0', '0.01175'], ['6365702.0', '0.03'], ['6365697.0', '0.025'], ['6365696.0', '0.0569']]}
binanceでは以下のように書くと板情報が取得できます。
import requests import pprint base='https://api.binance.com' book='/api/v3/depth' url=base+book params={ 'symbol':'BTCUSDT', 'limit':'5' } r=requests.get(url,params=params) pprint.pprint(r.json())
実行結果
{'asks': [['57956.78000000', '0.26000000'], ['57957.58000000', '0.01338000'], ['57957.59000000', '0.01859700'], ['57958.14000000', '0.01843000'], ['57959.29000000', '0.20532300']], 'bids': [['57956.77000000', '1.25150300'], ['57950.43000000', '0.74304600'], ['57950.42000000', '0.00344700'], ['57950.39000000', '1.96723800'], ['57950.00000000', '0.02377700']], 'lastUpdateId': 9515843315}
このように、ask(売り)、bid(買い)の情報を見ることができます。
pythonのコードで見るとr=requests.get(url)
というところにgetが入っているのがわかると思います。
このあと紹介するPOST、DELETEも基本的にこのr=requests.get(url)
の部分を変えていくことになります。
POST
POSTは情報を登録(送信)するときに使います。
例えば注文を出す(売り、買い)ときに使われます。
POSTするときには「API_KEY」、「SECRET_KEY」、「パラメータ」が必要になります。
パラメータは「対象のコイン」、「レート」、「取引量」などのことを指します。
大まかにいうと、どのコインをどの価格でどれくらい売買するかを指定することによって、POSTすることができるということです。
DELETE
DELETEは注文のキャンセルに使われます。
指値で入れた注文のキャンセル、送金手続きのキャンセルなど、POSTで登録した内容の取り消しに使われます。
最後に
取引所のAPIは共通している箇所が多いので、上記のことを理解してしまえば多くのAPIを利用することができます。
初めて使うから不安という場合は、CoinCheckのPublic APIから使ってみると勉強になると思います。
自分もこのAPIを使って何かプログラムを書いてみたいと思います。
それでは。
BinanceのAPIに関する資料はこちら
以下のURLからBinanceに登録すると、手数料の5%が戻ってきます。