HISTORICAL PARQUET ARCHIVE · V1 API
几行代码,把整天 Polymarket 盘口、成交与链上交割拉回本地。
所有归档均按 UTC 自然日 × 品种 × 周期 × 数据集 切分为高压缩 Parquet 文件。
我们的 API 只有三个只读 GET 端点,不绑架任何私有 SDK——curl、pandas、polars、DuckDB 一行直读。
60 秒上手
在 账户中心 创建一把 API Key(格式如 ck_26b2e758d05d.Gdyk-ZieGdBCeo2yFCj13t51GLzM95zU),放进环境变量即可开始:
export API_KEY="ck_26b2e758d05d.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
export BASE_URL="https://your-domain.example"
1. 看一眼有哪些数据(以及你的订阅窗口)
curl -s "$BASE_URL/v1/meta" \
-H "Authorization: Bearer $API_KEY" | jq
返回示例:
{
"firstDay": "2026-02-23",
"lastDay": "2026-10-24",
"days": 146,
"venues": ["polymarket"],
"assets": ["BTC", "ETH", "SOL", "XRP", "BNB", "DOGE", "HYPE"],
"intervals": ["5m", "15m"],
"datasets": {
"polymarket": [
"book",
"trades",
"activity_trades",
"onchain_fills",
"spot_snapshots",
"twap30s",
"twap60s",
"markets",
"binance_spot"
]
},
"scope": {
"expiresMs": 1795409052124,
"floor": "2026-02-23",
"ceiling": "2026-10-24"
}
}
2. 列出某一天的文件清单
curl -s "$BASE_URL/v1/files?asset=btc&interval=15m&date=2026-10-23" \
-H "Authorization: Bearer $API_KEY" | jq
返回结果里的每个文件对象都自带可直接下载的 url、bytes、rows 与 sha256:
{
"from": "2026-10-23",
"to": "2026-10-23",
"days": 1,
"count": 8,
"bytes": 54128940,
"files": [
{
"date": "2026-10-23",
"name": "BTC-15m-polymarket-book-2026-10-23.parquet",
"venue": "polymarket",
"dataset": "book",
"asset": "BTC",
"interval": "15m",
"bytes": 38412096,
"rows": 214890,
"sha256": "8f9d2a7c1e4b3081a9c2e0f1d7b6a5c4e3f2a1b0c9d8e7f6a5b4c3d2e1f0a9b8",
"url": "https://your-domain.example/v1/dl/2026-10-23/BTC-15m-polymarket-book-2026-10-23.parquet"
},
{
"date": "2026-10-23",
"name": "BTC-15m-polymarket-trades-2026-10-23.parquet",
"venue": "polymarket",
"dataset": "trades",
"asset": "BTC",
"interval": "15m",
"bytes": 4192304,
"rows": 48210,
"sha256": "40f2863235c4fd947dfb05ed30bf56bdbdf981f14cc6c22904c2d6388c1f343d",
"url": "https://your-domain.example/v1/dl/2026-10-23/BTC-15m-polymarket-trades-2026-10-23.parquet"
}
]
}
3. 下载到本地
拿上面任意一条的 url,加 -L 跟随 302 跳转到签名地址即可流式落盘:
curl -L "$BASE_URL/v1/dl/2026-10-23/BTC-15m-polymarket-trades-2026-10-23.parquet" \
-H "Authorization: Bearer $API_KEY" \
-o BTC-15m-polymarket-trades-2026-10-23.parquet
在 Python / Polars / DuckDB 里一行读入
下载端点 /v1/dl/:date/:name 同时支持 ?api_key= 查询参数,因此无需先下载到本地磁盘,就能直接把 URL 交给常用数据分析引擎:
pandas
import os, requests, pandas as pd
KEY = os.environ["API_KEY"]
BASE = "https://your-domain.example"
r = requests.get(
f"{BASE}/v1/files",
params={"asset": "btc", "interval": "15m", "dataset": "trades", "date": "2026-10-23"},
headers={"Authorization": f"Bearer {KEY}"},
)
r.raise_for_status()
for f in r.json()["files"]:
df = pd.read_parquet(f"{f['url']}?api_key={KEY}")
print(f["name"], len(df), df.columns.tolist())
Polars & DuckDB
import polars as pl
import duckdb
url = f"https://your-domain.example/v1/dl/2026-10-23/BTC-15m-polymarket-book-2026-10-23.parquet?api_key={KEY}"
# Polars 直接扫描
df = pl.read_parquet(url)
# DuckDB 直接 SQL 聚合
res = duckdb.sql(f"""
SELECT outcome, COUNT(*) AS snapshots, AVG(spread) AS avg_spread
FROM read_parquet('{url}')
GROUP BY outcome
""").df()
常见任务
拿最新一天的数据
每日归档在 UTC 次日凌晨自动封盘同步。脚本无需硬编码日期,先读 /v1/meta 的 lastDay 再拉列表:
LAST=$(curl -s "$BASE_URL/v1/meta" -H "Authorization: Bearer $API_KEY" | jq -r .lastDay)
curl -s "$BASE_URL/v1/files?date=$LAST&asset=btc" -H "Authorization: Bearer $API_KEY" | jq
批量拉整月数据并校验 SHA-256
列表里的每条文件都带 sha256,配合 sha256sum -c 可以确保网络传输零损坏、断点可重入:
curl -s "$BASE_URL/v1/files?asset=btc&interval=15m&dataset=trades&from=2026-10-01&to=2026-10-23" \
-H "Authorization: Bearer $API_KEY" \
| jq -r '.files[] | "\(.url) \(.name) \(.sha256)"' \
| while read -r url name sha; do
curl -sL "$url" -H "Authorization: Bearer $API_KEY" -o "$name"
echo "$sha $name" | sha256sum -c -
done
把多天拼成一张 DataFrame
files = requests.get(
f"{BASE}/v1/files",
params={"asset": "btc", "interval": "15m", "dataset": "twap60s", "from": "2026-10-01", "to": "2026-10-23"},
headers={"Authorization": f"Bearer {KEY}"},
).json()["files"]
df = pd.concat([pd.read_parquet(f"{f['url']}?api_key={KEY}") for f in files], ignore_index=True)
API 端点参考
所有端点只读、幂等,均使用 GET。支持以下任意一种方式传入 API Key:
- 请求头(推荐):
Authorization: Bearer ck_...或X-API-Key: ck_... - 查询参数(方便交给下载器 / Parquet 引擎):
?api_key=ck_...
/v1/meta返回你当前订阅可访问的起止日期窗口(firstDay / lastDay)、交易所、币种、周期与数据集列表。
/v1/files按条件筛选可下载的日度 Parquet 文件。所有筛选参数均可选,多项用英文逗号分隔,大小写不敏感:
| 参数 | 示例 | 说明 |
|---|---|---|
asset | btc / btc,eth,sol | 标的币种(BTC, ETH, SOL, XRP, BNB, DOGE, HYPE,全市场表为 ALL) |
interval | 15m / 5m,15m | 结算周期(5m, 15m;不分周期的全市场表传 none) |
dataset | book,trades | 数据集名称(见下方字段规格表,如 book, trades, onchain_fills, twap60s, markets) |
date | 2026-10-23 | 单日查询(等价于 from=date&to=date) |
from / to | 2026-10-01 | 起止 UTC 日期(闭区间 YYYY-MM-DD) |
limit / offset | limit=500&offset=0 | 分页参数(默认单次返回最多 500 条,上限 2000 条) |
/v1/dl/:date/:name校验你的订阅权限后,返回 302 Found 跳转到短时有效的签名 Parquet 下载流,并在响应头附带 x-content-sha256。
状态码与错误响应
| 状态码 | 含义 | 响应体示例 |
|---|---|---|
200 | 成功(/v1/meta、/v1/files) | {"firstDay":"2026-02-23", ...} |
302 | 重定向到签名下载直链(/v1/dl/...) | Location: https://... + x-content-sha256 |
400 | 日期或筛选参数格式有误 | {"error":"invalid date parameter (expected YYYY-MM-DD)"} |
401 | 未传 API Key,或 Key 无效 / 已吊销 | {"error":"missing API key"} / {"error":"invalid or expired API key"} |
403 | 请求的日期或品种不在订阅范围内 | {"error":"date outside subscription coverage","floor":"2026-09-01","ceiling":"2026-09-30"} |
404 | 请求的文件或接口不存在 | {"error":"file not found"} |
429 | 请求频率超限(每账户 120 次/分钟) | {"error":"每个账户每分钟最多 120 次 API 请求"} |
字段规格 (Schemas)
标准文件名格式为 {ASSET}-{INTERVAL}-polymarket-{DATASET}-{YYYY-MM-DD}.parquet
(例如 BTC-15m-polymarket-trades-2026-10-23.parquet)。
跨周期全市场链上表与结果表命名为 ALL-polymarket-{DATASET}-{YYYY-MM-DD}.parquet。
所有时间戳统一为 UTC 微秒(timestamp_us)或毫秒整数。
book
Polymarket 全深度盘口快照流(Up / Down 双边挂单档位)
| 字段名 | 类型 | 说明 |
|---|---|---|
timestamp_us | int64 | 本地采集落盘时间戳(UTC 微秒) |
exchange_ts | int64 | Polymarket 撮合引擎事件时间戳(UTC 毫秒) |
slug | string | 市场唯一标识(如 btc-updown-15m-1761177600) |
condition_id | string | CTF 条件合约哈希(0x...) |
outcome | string | 方向结果(Up 或 Down) |
asset_id | string | ERC-1155 结果代币 Token ID |
mid_price / spread | double | 当前最优买卖中间价与买卖价差 |
bids / asks | list<struct<price:double, size:double>> | 买盘与卖盘全深度价格档位数组 |
book_hash | string | 盘口状态校验哈希 |
trades
Polymarket CLOB 实时逐笔成交流
| 字段名 | 类型 | 说明 |
|---|---|---|
timestamp_us | int64 | 采集接收时间戳(UTC 微秒) |
exchange_ts | int64 | 撮合引擎成交时间戳(UTC 毫秒) |
slug / condition_id | string | 市场标识与条件合约哈希 |
outcome / asset_id | string | 成交方向(Up / Down)与 Token ID |
price | double | 成交价格(0.0 ~ 1.0 USDC) |
size | double | 成交份额(Shares) |
side | string | 主动方向(BUY 或 SELL) |
fee_rate_bps | int64 | 手续费基点(bps) |
trade_id | string | 撮合序列成交 ID |
onchain_fills
Polygon 链上 OrderFilled 真实交割明细流
| 字段名 | 类型 | 说明 |
|---|---|---|
timestamp_us | int64 | 监听接收时间戳(UTC 微秒) |
block_number / log_index | int64 | Polygon 区块高度与事件日志索引 |
tx_hash / order_hash | string | 链上交易哈希与订单哈希 |
exchange_contract | string | CTF Exchange 结算合约地址 |
maker / taker | string | 挂单方与吃单方钱包地址 |
maker_asset_id / taker_asset_id | string | 双方交换的资产 ID(0 代表 USDC 抵押品) |
maker_amount_filled / taker_amount_filled | int64 | 链上原始精度(1e6)成交数量與金额 |
fee | int64 | 链上实际扣除的手续费(1e6 精度) |
activity_trades
Polymarket 交易者钱包活动成交流(含交易者地址)
| 字段名 | 类型 | 说明 |
|---|---|---|
timestamp_us / event_ts | int64 | 采集时间戳(微秒)与事件时间戳(秒/毫秒) |
slug / condition_id | string | 市场标识与条件哈希 |
outcome / side | string | 结果方向(Up/Down)与买卖方向(BUY/SELL) |
price / size | double | 成交价格与份额 |
proxy_wallet | string | 交易者 Polymarket Proxy 钱包地址(可用于聪明钱地址追踪) |
transaction_hash | string | 关联的 Polygon 链上交易哈希 |
twap60s / twap30s
Chainlink Data Streams 官方结算价格与 TWAP 流
| 字段名 | 类型 | 说明 |
|---|---|---|
timestamp_us / exchange_ts | int64 | 采集时间戳(微秒)与预言机报告时间戳(毫秒) |
symbol | string | 预言机币种对(如 BTC/USD, ETH/USD) |
price | double | 当前每秒预言机现货价格 |
twap_60s / twap_30s | double | 滚动 60 秒 / 30 秒时间加权平均价格 |
full_accuracy_value | string | Chainlink 1e18 定点全精度原始整数字符串(用于零误差复刻官方结算) |
spot_snapshots & markets & binance_spot
行权价价差快照、市场结算结果表与币安 1 秒现货参考流
| 数据集 | 核心字段 | 研究用途 |
|---|---|---|
spot_snapshots |
timestamp_us, slug, target_price, spot_price, price_diff, up_asset_id, down_asset_id, window_end_ms |
实时对齐每个周期窗口的行权价(Strike Price)与当前标的价格偏离度 |
markets |
slug, condition_id, asset, interval_minutes, window_start_ms, window_end_ms, target_price, close_price, result |
每个 5m/15m 市场的开盘行权价、到期收盘价与官方最终胜负结果(Up / Down) |
binance_spot |
timestamp_us, exchange_ts, symbol, price |
与预测市场同一 UTC 日对齐的币安现货高频参考价,适合计算跨市场领先滞后(Lead-Lag)信号 |