在加密市场瞬息万变的环境下,秒级更新的 历史币价 成为投资者、策略研究者与 DApp 开发者的硬需求。本篇聚焦能覆盖主流与铭文资产的开放 API,手把手演示如何用 链上信息查询 接口获取不同时间粒度的币价数据,实现高速调用的同时降低服务器压力。
支持币种与链:从主链到热门铭文
该接口立足“多链合一”的设计,不仅可用于 ETH、BTC 主链币,还原生支持:
- BRC-20( ordi 等)
- Runes(840000:2 等)
- ARC-20、SRC-20
- Fractal Bitcoin 上的 FBRC-20
一句话总结:只要 token 对应的 chainIndex 与格则达成书写规则,就能查询其历史币价。
请求路径与环境准备
GET https://web3.okx.com/api/v5/wallet/token/historical-price调用方式极其轻量:仅需 chainIndex 作为必填参数即可发起首次查询。所有参数使用 query string 而不是 JSON body,方便 curl、Postman 及浏览器直调。
6 大关键参数与业务含义
| 参数 | 必填 | 示例值 | 场景化解释 |
|---|---|---|---|
| chainIndex | ✅ | 1 (Ethereum) | 用链的唯一标识锁定资产源头,避免重名放大风险。 |
| tokenAddress | ❌ | "0xa0b…" / "btc-brc20-ordi" | 主链币留空字符串;铭文代币用合约地址或规定格式。 |
| limit | ❌ | 200 | 一次性拉到最大 200 条,适合批量回测。 |
| cursor | ❌ | MTY5… | 分页游标,自由续传,避免 429 限制。 |
| begin / end | ❌ | 1717200000000 | Unix 毫秒时间戳,用 1d 可快速抓整月数据。 |
| period | ❌ | 1h / 5m | 从高精度到日线,可自由配策略粒度。 |
锚文本激发点击
💡 注意:铭文 ID 书写格式必须密合官方规则,否则返回空数组;为此本指南在下方准备常见错误对照表,节省时间。
实战:三种典型调用 Case
查询 BTC 主币 7 日日线数据
GET https://web3.okx.com/api/v5/wallet/token/historical-price ?chainIndex=0 &tokenAddress= &period=1d &limit=7抓取 ORDI (BRC-20) 最近 24h 15min 粒度
GET …tokenAddress=btc-brc20-ordi&period=30m&limit=48回测某 ERC-20 代币过去 3 个月走势
- begin=
1719792000000(2024-07-01 00:00:00) end=
1722470399000(2024-08-01 00:00:00)GET …tokenAddress=0xTokenAddr&period=1h&limit=200&cursor=分页由于 1h * 200 条仅 8 天,可配合 cursor 做循环抓取,十行 Python 即可。
- begin=
响应格式详解与字段征信
一次成功 Response 结构:
{
"code": 0,
"msg": "",
"data": [
{
"prices": [
{ "time": "1717276800000", "price": "26451.132100000000000000" },
{ "time": "1717363200000", "price": "26890.550500000000000000" }
],
"cursor": "eyJ..."
}
]
}字段拆解:
time— 整分钟对齐,本地可直接 new Date() 转换。price— 18 位精度的 美元单位,Are.na 类可视化库无缝支持。cursor— 下一次分页的依据,逻辑类似 Twitter v2 分页。
疑难杂症 FAQ
Q1:limit 设置 200 条就超时 504?
A:高峰期链路拥堵,把 period 从 1m 调至 5m 或 1h 即轻松缓解。
Q2:返回 prices 列表为空但参数都写好?
A:90% 情况是 tokenAddress 拼写缺层级。例如 btc-runesMain-840000:2 不能错写成 btc-runes-840000:2。
Q3:如何获取 GMT 标准时区下的日开盘、收盘?
A:使用 period=1d 可自动对齐 UTC 0 点和币价快照,仅需再 GROUP BY DATE()。
SEO 关键词总结(已在正文自然融入)
- 历史币价
- 区块链 API
- 链上信息查询
- Web3 数据接口
- 铭文币价历史
- 代币历史数据抓取
Python 批量下载脚本示范
import requests, time
url = "https://web3.okx.com/api/v5/wallet/token/historical-price"
params = {
"chainIndex": "0",
"tokenAddress": "btc-brc20-ordi",
"period": "1h",
"limit": 200,
"cursor": None,
}
all_prices = []
while True:
r = requests.get(url, params=params).json()
data = r["data"][0]
all_prices.extend(data["prices"])
if not data["cursor"]:
break
params["cursor"] = data["cursor"]
time.sleep(0.1) # 礼貌节流八行即可落地一个可扩展的历史币价 ETL 线性脚本,后续可存 Mongo、DuckDB 或直接 Pandas 做因子归因。
如果数据量大到抓狂?
👉 教你用极低成本横向扩展开源脚本,一键跑 B 级 K 线数据入库。