公告
撮合引擎变更(计划重启、更新和维护窗口)会在发生之前通过以下渠道公布:Telegram
加入 Polymarket Trading APIs 频道,获取实时公告。
Discord
加入 Polymarket Discord 中的 #trading-apis 频道。
处理 HTTP 425
在重启窗口期间,CLOB API 会对所有订单相关端点返回 HTTP 425(Too Early)。 这表示撮合引擎正在重启,并会很快恢复。 每次重启后,撮合引擎会进入持续 2 分钟的仅挂单模式。在此期间可以取消 订单,新订单必须使用postOnly: true;非仅挂单订单会被拒绝。
推荐的重试策略
1
检测 425
收到 HTTP
425 响应时,撮合引擎正在重启。不要将其视为永久错误。2
退避并重试
等待后使用指数退避重试。从 1–2 秒开始,并在每次重试时增加间隔。
3
处理仅挂单模式
425 响应停止后,引擎已恢复在线,但仍会保持 2 分钟的仅挂单模式。
在此期间,仅接受取消请求和带有 postOnly: true 的订单。代码示例
当撮合引擎返回425 时,重试符合条件的仅挂单限价单:
- TypeScript
- Python
给定一个
SecureClient,在每次退避间隔后再次调用
placeLimitOrder():TypeScript
受限交易模式
在受限交易模式下,POST /order 和 POST /orders 的下单行为会发生变化。
除非交易被完全禁用,否则取消端点仍会接受取消请求。
仅取消模式
在仅取消模式下,新订单会被拒绝,但仍接受取消请求。POST /order 和 POST /orders 返回 503:
仅挂单模式
每次重启后,撮合引擎会进入持续 2 分钟的仅挂单模式。取消请求会被接受, 新订单必须使用postOnly: true。非仅挂单订单会被拒绝。
POST /order 返回 503,并在响应正文和 Retry-After HTTP 标头中提供
重试延迟:
POST /orders 会分别返回错误:
postOnly: true 重新提交符合条件的挂单。
最佳实践
- 订阅公告频道 — 在重启发生前收到通知,以便提前准备
- 妥善处理 425 — 将其视为临时状态而非错误;重试逻辑应自动恢复
- 处理下单时的 503 模式响应 — 仅取消和仅挂单响应要求调整订单流程,而不是盲目重试
- 避免激进重试 — 引擎需要时间重新加载订单簿;快速连续重试不会加快恢复,反而可能在引擎恢复后触发速率限制
- 记录重启事件 — 跟踪客户端遇到 425 的时间,以便与已公告的维护窗口对应