GET通过 Slug 获取价格历史
使用市场 slug 检索特定结果的历史价格数据。此端点专为 WebSocket 信号设计,WebSocket 使用基于 slug 的频道名称(market:{slug}:price)。
请求
GET /v1/markets/slug/:slug/prices-history
路径参数
| 参数 | 类型 | 必填 | 描述 |
|---|
slug | string | 是 | 市场 URL slug(例如 will-btc-hit-100k) |
查询参数
| 参数 | 类型 | 必填 | 默认值 | 描述 |
|---|
outcomeId | string | 是 | — | 获取价格历史的结果 ID |
startTs | number | 否 | 1周前 | 开始 Unix 时间戳(秒) |
endTs | number | 否 | 当前时间 | 结束 Unix 时间戳(秒) |
fidelity | number | 否 | 1 | 数据精度(分钟)。值越大数据点越少。 |
响应
{
"history": [
{ "t": 1710000000, "p": 0.67 },
{ "t": 1710000300, "p": 0.68 },
{ "t": 1710000600, "p": 0.665 }
]
}
响应字段
| 字段 | 类型 | 描述 |
|---|
history | array | 价格点数组 |
history[].t | number | Unix 时间戳(秒) |
history[].p | number | 该间隔的收盘价(0-1) |
WebSocket 集成
此端点设计用于在 market:{slug}:price 频道收到 WebSocket 信号后调用:
// 1. 订阅 WebSocket 频道
socket.emit('join', { channel: 'market:will-btc-hit-100k:price' });
// 2. 收到信号后,使用相同的 slug 获取更新数据
socket.on('market:will-btc-hit-100k:price', async (data) => {
const response = await fetch('/v1/markets/slug/will-btc-hit-100k/prices-history?outcomeId=outcome-uuid-1');
const priceHistory = await response.json();
});
错误
| 状态码 | 描述 |
|---|
400 | 缺少 outcomeId 或结果不属于此市场 |
404 | 未找到市场或结果 |
示例
最近24小时,5分钟精度
curl "https://api.conviction.bet/v1/markets/slug/will-btc-hit-100k/prices-history?outcomeId=outcome-uuid-1&startTs=1709913600&endTs=1710000000&fidelity=5"
最近一周,默认精度
curl "https://api.conviction.bet/v1/markets/slug/will-btc-hit-100k/prices-history?outcomeId=outcome-uuid-1"