ビットバンクのAPI使い方例と初心者向けチュートリアル
ビットバンクは、日本国内で広く利用されている仮想通貨取引所の一つです。その特徴の一つに、豊富なAPI機能が挙げられます。APIを利用することで、自動売買プログラムの開発や、取引データの分析など、様々な用途に活用できます。本チュートリアルでは、ビットバンクのAPIの基本的な使い方から、具体的な使用例までを、初心者の方にも分かりやすく解説します。
1. APIの概要
ビットバンクのAPIは、RESTful APIとして提供されています。RESTful APIとは、HTTPメソッド(GET, POST, PUT, DELETEなど)を用いて、リソース(取引情報、口座情報など)を操作するAPIのことです。ビットバンクのAPIを利用するには、APIキーの取得と、APIの利用規約への同意が必要です。
1.1 APIキーの取得
ビットバンクのAPIキーは、取引所のウェブサイトから取得できます。ログイン後、「API」のページにアクセスし、APIキーの作成を申請してください。APIキーは、公開鍵と秘密鍵のペアで構成されています。秘密鍵は厳重に管理し、絶対に他人に漏洩しないように注意してください。
1.2 APIの利用規約
ビットバンクのAPIを利用する際には、APIの利用規約に同意する必要があります。利用規約には、APIの利用制限や、禁止事項などが記載されています。利用規約をよく読み、遵守するようにしてください。
2. APIの認証
ビットバンクのAPIを利用する際には、APIキーによる認証が必要です。認証には、以下の2つの方法があります。
2.1 HMAC認証
HMAC認証は、秘密鍵を用いて、リクエストの署名を作成する方法です。署名は、リクエストの改ざんを検知するために使用されます。HMAC認証を行うには、リクエストのHTTPヘッダーに、署名を含む情報を追加する必要があります。
2.2 APIキー認証
APIキー認証は、APIキーをリクエストのHTTPヘッダーに含める方法です。APIキー認証は、HMAC認証よりも簡便ですが、セキュリティ面ではHMAC認証に劣ります。
3. APIのエンドポイント
ビットバンクのAPIは、様々なエンドポイントを提供しています。以下に、主なエンドポイントを紹介します。
3.1 取引情報の取得
取引情報を取得するには、/v1/tradesエンドポイントを使用します。このエンドポイントは、指定された取引ペアの取引履歴を返します。パラメータとして、取引ペア、開始時間、終了時間などを指定できます。
3.2 板情報の取得
板情報を取得するには、/v1/orderbookエンドポイントを使用します。このエンドポイントは、指定された取引ペアの板情報を返します。パラメータとして、取引ペア、表示件数などを指定できます。
3.3 ティック情報の取得
ティック情報を取得するには、/v1/tickerエンドポイントを使用します。このエンドポイントは、指定された取引ペアの最新のティック情報を返します。ティック情報には、始値、高値、安値、終値、出来高などが含まれます。
3.4 口座情報の取得
口座情報を取得するには、/v1/accountsエンドポイントを使用します。このエンドポイントは、APIキーに対応する口座の情報を返します。口座情報には、残高、ロックされた残高などが含まれます。
3.5 注文の発注
注文を発注するには、/v1/ordersエンドポイントを使用します。このエンドポイントは、指定された取引ペア、注文の種類、数量、価格などのパラメータに基づいて、注文を発注します。
3.6 注文のキャンセル
注文をキャンセルするには、/v1/orders/{order_id}/cancelエンドポイントを使用します。このエンドポイントは、指定された注文IDに基づいて、注文をキャンセルします。
4. APIの使い方例
以下に、ビットバンクのAPIの使い方例をいくつか紹介します。
4.1 最新のビットコイン価格を取得する
以下のコードは、ビットバンクのAPIを用いて、最新のビットコイン価格を取得する例です。
import requests
api_url = "https://api.bitbank.cc/v1/ticker"
params = {"pair": "btc_jpy"}
response = requests.get(api_url, params=params)
if response.status_code == 200:
data = response.json()
price = data["data"]["last"]
print(f"現在のビットコイン価格: {price}円")
else:
print(f"エラーが発生しました: {response.status_code}")
4.2 取引履歴を取得する
以下のコードは、ビットバンクのAPIを用いて、ビットコインの取引履歴を取得する例です。
import requests
api_url = "https://api.bitbank.cc/v1/trades"
params = {"pair": "btc_jpy", "count": 10}
response = requests.get(api_url, params=params)
if response.status_code == 200:
data = response.json()
trades = data["data"]["trades"]
for trade in trades:
print(f"取引日時: {trade["time"]}, 価格: {trade["price"]}, 数量: {trade["amount"]}, 取引種類: {trade["side"]}")
else:
print(f"エラーが発生しました: {response.status_code}")
4.3 注文を発注する
以下のコードは、ビットバンクのAPIを用いて、ビットコインの買い注文を発注する例です。このコードは、HMAC認証を使用しています。
import requests
import hmac
import hashlib
import time
api_url = "https://api.bitbank.cc/v1/orders"
api_key = "YOUR_API_KEY"
secret_key = "YOUR_SECRET_KEY"
pair = "btc_jpy"
side = "buy"
amount = 0.01
price = 1000000
nonce = str(int(time.time()))
message = nonce + pair + side + str(amount) + str(price)
signature = hmac.new(secret_key.encode('utf-8'), message.encode('utf-8'), hashlib.sha256).hexdigest()
headers = {
"Content-Type": "application/json",
"X-BB-APIKEY": api_key,
"X-BB-SIGNATURE": signature
}
data = {
"pair": pair,
"side": side,
"amount": amount,
"price": price
}
response = requests.post(api_url, headers=headers, json=data)
if response.status_code == 200:
print("注文が正常に発注されました")
else:
print(f"エラーが発生しました: {response.status_code}, {response.text}")
5. 注意点
ビットバンクのAPIを利用する際には、以下の点に注意してください。
- APIキーの管理を厳重に行い、絶対に他人に漏洩しないようにしてください。
- APIの利用規約をよく読み、遵守するようにしてください。
- APIの利用制限を超えないように注意してください。
- APIのレスポンスを適切に処理し、エラーが発生した場合には、適切なエラー処理を行ってください。
まとめ
本チュートリアルでは、ビットバンクのAPIの基本的な使い方から、具体的な使用例までを解説しました。APIを利用することで、自動売買プログラムの開発や、取引データの分析など、様々な用途に活用できます。APIキーの管理や、利用規約の遵守など、注意点も守りながら、ビットバンクのAPIを有効活用してください。APIのドキュメントを参考に、さらに高度な機能も試してみてください。