在加密货币交易中,实时价格是决策的核心依据,币安(Binance)作为全球最大的加密货币交易所之一,提供了功能强大的API接口,让开发者、交易者及研究者能够高效获取市场数据,本文将详细介绍如何通过币安API查询价格,涵盖基础用法、代码示例及注意事项。
币安API简介
币安API分为REST API和WebSocket API两种类型,REST API适合一次性请求获取数据(如当前价格、历史K线),而WebSocket API则支持实时推送数据,适合高频交易或动态监控场景,对于价格查询,REST API已能满足多数需求,且使用门槛较低。
通过REST API查询当前价格
币安的/api/v3/ticker/price接口可获取指定交易对的最新价格,无需API Key即可调用,以下是关键参数与调用逻辑:
- 接口地址:
https://api.binance.com/api/v3/ticker/price - 核心参数:
symbol:交易对名称,例如BTCUSDT(比特币/USDT)、ETHBTC(以太币/比特币),需区分大小写。- 若不传
symbol,将返回所有交易对的价格数据,数据量较大。
示例代码(Python)
使用requests库调用接口,查询BTCUSDT的当前价格:
import requests
url = "https://api.binance.com/api/v3/ticker/price"
params = {"symbol": "BTCUSDT"}
try:
response = requests.get(url, params=params)
data = response.json()
print(f"交易对: {data['symbol']}, 当前价格: {data['price']} USDT")
except Exception as e:
print(f"请求失败: {e}")
执行结果示例:
交易对: BTCUSDT, 当前价格: 43250.10 USDT
批量查询与价格精度
若需同时查询多个交易对价格,可通过symbols参数(需JSON格式传入)实现,例如查询BTCUSDT、ETHUSDT和ADAUSDT:
params = {
"symbols": '["BTCUSDT", "ETHUSDT", "ADAUSDT"]'
}
response = requests.get(url, params=params)
data = response.json()
for item in data:
print(f"{item['symbol']}: {item['price']}")
输出结果:
BTCUSDT: 43250.10
ETHUSDT: 2280.50
ADAUSDT: 0.5820
需注意,币安API返回的价格为字符串类型,部分交易对价格精度较高(如某些山寨币),需转换为浮点数时处理精度问题。
高级用法:获取24小时价格变动
若需结合价格分析趋势,可调用/api/v3/ticker/24hr接口,获取指定交易对的24小时最高价、最低价、成交量及涨跌幅:
url_24hr = "https://api.binance.com/api/v3/ticker/24hr"
params = {"symbol": "BTCUSDT"}
response = requests.get(url_24hr, params=params)
data = response.json()
print(f"24小时最高价: {data['highPrice']} USDT")
print(f"24小时最低价: {data['lowPrice']} USDT")
print(f"涨跌幅: {float(data['priceChangePercent']):.2f}%")
注意事项
- 请求频率限制:币安API对未认证请求的频率限制为每1200次/分钟,超频将返回
429 Too Many Requests