批量操作
通过单次批量操作处理多个API请求。减少高达90%的API调用,提升批量数据获取与分析性能。
概述
批量操作允许您在单个HTTP请求中发送多个API请求。这减少了API调用次数,降低了延迟,非常适合批量数据获取、监控多交易对或执行批量分析。每个批次最多可发送100个请求。
批量请求格式
向/v1/batch发送POST请求,附带请求对象数组:
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):
"""批量获取多交易对的鲸鱼持仓"""
# 构建批量请求
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个交易对
symbols = ["BTCUSDT", "ETHUSDT", "SOLUSDT", "XRPUSDT", "ADAUSDT"]
positions = batch_fetch_whale_positions("sk_live_abc123xyz789", symbols)
print(f"已获取{len(positions)}个交易对的持仓数据")
批量操作的优势
减少API调用
单次批量发送100个请求 = 1次API调用而非100次。为高频集成场景大幅节省配额。
提升性能
单次HTTP往返请求替代100次。降低延迟,加速批量数据获取。
原子性操作
批次内所有请求统一处理。确保批量操作不会出现部分失败。
简化错误处理
在整体处理批次的同时,可单独检查每个请求的响应状态。
应用场景
监控多交易对: 单次批量请求获取50个交易对的鲸鱼持仓。
每日报告: 单次批量收集所有相关数据(资金费率、持仓量、爆仓数据)。
组合分析: 高效分析跨多交易对及交易所的持仓情况。
Webhook处理: 将多个Webhook事件批量打包为单次API调用进行分析。