バッチ操作
複数のAPIリクエストを単一のバッチ操作で処理。APIコールを最大90%削減し、大量データ取得と分析のパフォーマンスを向上。
概要
バッチ操作では、複数のAPIリクエストを単一のHTTPリクエストで送信できます。これによりAPIコール回数が減り、レイテンシが改善され、大量データ取得、複数銘柄の監視、バッチ分析に最適です。1バッチあたり最大100リクエストまで送信可能。
バッチリクエスト形式
リクエストオブジェクトの配列をPOST /v1/batchに送信:
JSON
{
"requests": [
{
"id": "req_1",
"method": "GET",
"path": "/v1/whales/events?symbol=BTCUSDT"
},
{
"id": "req_2",
"method": "GET",
"path": "/v1/whales/events?symbol=ETHUSDT"
},
{
"id": "req_3",
"method": "GET",
"path": "/v1/funding-rates?symbol=BTCUSDT"
}
]
}
バッチレスポンス形式
すべてのレスポンスがリクエストIDで索引付けされた単一のバッチレスポンスオブジェクトで返されます:
JSON
{
"success": true,
"responses": {
"req_1": {
"status": 200,
"data": {
"total": 42,
"positions": [...]
}
},
"req_2": {
"status": 200,
"data": {
"total": 28,
"positions": [...]
}
},
"req_3": {
"status": 200,
"data": {...}
}
},
"timestamp": "2026-03-21T14:35:22Z"
}
コード例
Python: 複数銘柄のクジラポジションをバッチ取得
Python
import requests
def batch_fetch_whale_positions(api_key, symbols):
"""複数銘柄のクジラポジションを1バッチで取得"""
# バッチリクエストを構築
requests_list = []
for i, symbol in enumerate(symbols):
requests_list.append({
"id": f"req_{i+1}",
"method": "GET",
"path": f"/v1/whales/events?symbol={symbol}&limit=50"
})
# バッチリクエストを送信
response = requests.post(
"https://api.smartmoneyapi.com/v1/batch",
headers={
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
},
json={"requests": requests_list}
)
batch_response = response.json()
# レスポンスを処理
results = {}
for symbol, response in zip(symbols, batch_response["responses"].values()):
if response["status"] == 200:
results[symbol] = response["data"]["positions"]
return results
# 使用例: 5銘柄を1バッチで取得
symbols = ["BTCUSDT", "ETHUSDT", "SOLUSDT", "XRPUSDT", "ADAUSDT"]
positions = batch_fetch_whale_positions("sk_live_abc123xyz789", symbols)
print(f"{len(positions)}銘柄のポジションを取得しました")
バッチ操作のメリット
APIコール削減
100リクエストを1バッチで送信 = 100回ではなく1回のAPIコール。高頻度連携での大幅なクォータ節約。
パフォーマンス向上
100回のHTTP往復ではなく単一リクエスト。バッチ操作でのレイテンシ低減とデータ取得高速化。
アトミックトランザクション
バッチ内の全リクエストがまとめて処理。バッチ操作間での部分的な失敗なし。
エラーハンドリングの簡素化
バッチを単位として扱いながら、各リクエストのレスポンスステータスを個別に処理。
ユースケース
複数取引ペアの監視: 50銘柄のクジラポジションを1バッチリクエストで取得。
日次レポート作成: 関連データ(資金調達レート、未決済建玉、清算)を単一バッチで収集。
ポートフォリオ分析: 複数銘柄・取引所にわたるポジションを効率的に分析。
ウェブフック処理: 複数のウェブフックイベントを分析用に単一APIコールにバッチ処理。