Skip to main content
Polymarket 撮合引擎会因维护和升级而重启。本页面介绍如何检测和处理停机、 重启后的仅挂单时段,以及从哪里提前获知变更。

公告

撮合引擎变更(计划重启、更新和维护窗口)会在发生之前通过以下渠道公布:

Telegram

加入 Polymarket Trading APIs 频道,获取实时公告。

Discord

加入 Polymarket Discord 中的 #trading-apis 频道。
公告通常包括变更内容计划时间预计停机窗口。在条件允许时, 目标是提前约 2 天通知。

处理 HTTP 425

在重启窗口期间,CLOB API 会对所有订单相关端点返回 HTTP 425(Too Early)。 这表示撮合引擎正在重启,并会很快恢复。 每次重启后,撮合引擎会进入持续 2 分钟的仅挂单模式。在此期间可以取消 订单,新订单必须使用 postOnly: true;非仅挂单订单会被拒绝。

推荐的重试策略

1

检测 425

收到 HTTP 425 响应时,撮合引擎正在重启。不要将其视为永久错误。
2

退避并重试

等待后使用指数退避重试。从 1–2 秒开始,并在每次重试时增加间隔。
3

处理仅挂单模式

425 响应停止后,引擎已恢复在线,但仍会保持 2 分钟的仅挂单模式。 在此期间,仅接受取消请求和带有 postOnly: true 的订单。

代码示例

当撮合引擎返回 425 时,重试符合条件的仅挂单限价单:
给定一个 SecureClient,在每次退避间隔后再次调用 placeLimitOrder()
TypeScript

受限交易模式

在受限交易模式下,POST /orderPOST /orders 的下单行为会发生变化。 除非交易被完全禁用,否则取消端点仍会接受取消请求。

仅取消模式

在仅取消模式下,新订单会被拒绝,但仍接受取消请求。 POST /orderPOST /orders 返回 503

仅挂单模式

每次重启后,撮合引擎会进入持续 2 分钟的仅挂单模式。取消请求会被接受, 新订单必须使用 postOnly: true。非仅挂单订单会被拒绝。 POST /order 返回 503,并在响应正文和 Retry-After HTTP 标头中提供 重试延迟:
对于批次中的非仅挂单订单,POST /orders 会分别返回错误:
收到任一种受限模式响应时,不要原样重试同一笔非仅挂单订单。请取消现有订单, 在提供延迟时等待后重试,或使用 postOnly: true 重新提交符合条件的挂单。

最佳实践

  • 订阅公告频道 — 在重启发生前收到通知,以便提前准备
  • 妥善处理 425 — 将其视为临时状态而非错误;重试逻辑应自动恢复
  • 处理下单时的 503 模式响应 — 仅取消和仅挂单响应要求调整订单流程,而不是盲目重试
  • 避免激进重试 — 引擎需要时间重新加载订单簿;快速连续重试不会加快恢复,反而可能在引擎恢复后触发速率限制
  • 记录重启事件 — 跟踪客户端遇到 425 的时间,以便与已公告的维护窗口对应