数据下载接口文档

三个接口共用一把 bearer key,全是 GET,限流方式相同,也都没有分页——要收窄结果用筛选参数。

GET /v1/meta — 看看能拿什么

返回的维度已经按你的档位收窄了——买 Polymarket 档就看不到 Predict.fun 的东西。两个平台的币种也不一样,以返回的 assets 为准。assets 与 intervals 里只有真实取值;filterTokens.appliesTo 列出哪些维度存在「为空」的文件,这些维度可以用 none 取。

{
  "firstDay": "2026-06-06", "lastDay": "2026-08-12", "days": 68,
  "venues":    ["polymarket"],
  "assets":    ["BNB","BTC","DOGE","ETH","HYPE","SOL","XRP"],
  "intervals": ["1s","1m","3m","5m","15m","30m","1h","2h","4h","6h","8h","12h","1d","3d","1w","1mo"],
  "datasets":  { "prices": "…", "book": "…", "klines": "…" },
  "filterTokens": { "noValue": "none", "appliesTo": ["asset","interval"] }
}

GET /v1/files — 按条件找文件

返回的每个文件都自带 url,直接拿去下载即可。

筛选参数(都可选)
assetbtc / eth / … 逗号分隔可多选,如 asset=btc,eth
datasetprices / twap30s / twap60s / book / orderbook / best_bid_ask / price_change / last_trade_price / tick_size_change / markets / klines。book 是 Polymarket 的全深度、orderbook 是 Predict.fun 的;best_bid_ask 是未限流的盘口顶部,只有价格没有挂单量
intervalPolymarket 市场用 5m、15m;Predict.fun 另有 1h、1d。K 线用 1m、1h、1d 等。结算流(prices / twap30s / twap60s)本身没有周期,要用 none 取
none任何筛选都可以用 none 表示「这个维度为空」。interval=5m,none 就是「5m 的市场数据 + 全部无周期数据集」;不写 none 时,interval=5m 只给按 5m 切片的文件
venuepolymarket / predict
date只要某一天,等价于 from=to=该日
from / to日期范围,一次最多 92 天。都不填则取最新一天

按数据集展开的说明: Polymarket 盘口数据 · Chainlink 结算价数据 · Predict.fun 历史数据 · 与其他服务商的对比

{
  "from": "2026-08-12", "to": "2026-08-12", "days": 1,
  "count": 1, "bytes": 1655751,
  "files": [{
    "date":     "2026-08-12",
    "name":     "BTCUSD-prices-2026-08-12.csv.gz",
    "asset":    "BTC",
    "dataset":  "prices",
    "interval": null,
    "bytes":    1655751,
    "sha256":   "a8b4f866772578e4…",
    "url":      "https://outcometick.com/v1/dl/2026-08-12/BTCUSD-prices-2026-08-12.csv.gz"
  }]
}

GET /v1/dl/:date/:name — 下载一个文件

返回 302,跳到对象存储的短时效链接(15 分钟内有效)。用 curl -L 或任何会自动跟随跳转的客户端。

遇到问题

401先看响应体,两种含义完全不同。missing API key:请求根本没带凭证——头名必须是 Authorization,值必须以 Bearer 开头(写成 apikey:、X-API-Key:,或者只写 key 漏掉 Bearer,都会落到这里)。invalid or expired API key:key 不对、已吊销,或订阅过期了。别把前者当成后者——那种情况下换多少把新 key 都一样。
403响应里是 date outside subscription coverage 或 from is outside your coverage:这天超出了你的订阅范围。响应里的 floor 就是你能取到的最早日期,ceiling 是最晚——不用自己算档位窗口,以它们为准。
404响应里是 file not found in your scope:要么这天没有这个文件,要么它不属于你的档位(比如 Polymarket 档去取 Predict.fun 的文件)。先用 /v1/files 看看这天到底有什么。
200 但 files 是空数组筛选条件太窄或拼错了。去掉几个条件再试,或者用 /v1/meta 看看有哪些合法取值。常见一种:加了 interval 之后 prices / twap30s / twap60s 全没了——它们没有周期,要写成 interval=5m,none。
429请求太密,退避后重试即可。
5xx临时故障,重试是安全的。

上面没覆盖到你的情况? 来售后群问(Telegram)