Skip to main content
還沒有帳號?點擊這裡註冊 Polymarket 並完成入金,才能用錢包私鑰為訂單籤名、實際成交。
法律合規提醒:在使用 Polymarket 服務或 API 前,請確認您所在地區的法律規定。Polymarket 目前不支援比利時、法國、新加坡、泰國、中國大陸等地區,政策可能隨時變化。
所有速率限制均使用 Cloudflare 的節流系統執行。當您超過任何端點的最大配置速率時,請求將被節流而不是立即拒絕。

速率限制工作原理

  • 節流:超過限制的請求會被延遲/排隊,而不是被丟棄
  • 突發允許:某些端點允許短時間內超過持續速率的突發
  • 時間窗口:限制基於滑動時間窗口重置(例如,每 10 秒,每分鐘)

通用速率限制

端點限制說明
通用速率限制15000 請求 / 10秒超過最大配置速率時節流請求
”OK” 端點100 請求 / 10秒超過最大配置速率時節流請求

Data API 速率限制

端點限制說明
Data API50 請求 / 10秒超過最大配置速率時節流請求

GAMMA API 速率限制

端點限制說明
GAMMA API50 請求 / 10秒超過最大配置速率時節流請求

CLOB API 速率限制

通用 CLOB 端點

端點限制說明
CLOB 通用15000 請求 / 10秒超過最大配置速率時節流請求

CLOB 市場數據

端點限制說明
GET /markets100 請求 / 10秒超過最大配置速率時節流請求
GET /book100 請求 / 10秒超過最大配置速率時節流請求
GET /midpoint100 請求 / 10秒超過最大配置速率時節流請求
GET /price100 請求 / 10秒超過最大配置速率時節流請求
GET /spread100 請求 / 10秒超過最大配置速率時節流請求

CLOB 帳本端點

端點限制說明
GET /balances100 請求 / 10秒超過最大配置速率時節流請求

CLOB 市場與定價

端點限制說明
GET /tick-size100 請求 / 10秒超過最大配置速率時節流請求
GET /neg-risk100 請求 / 10秒超過最大配置速率時節流請求

CLOB 認證

端點限制說明
CLOB API Keys100 請求 / 10秒超過最大配置速率時節流請求

CLOB 交易端點

這些是最關鍵的端點,具有更嚴格的限制:
端點限制說明
POST /order3500 請求 / 10秒 (500/秒)突發 - 超過最大配置速率時節流請求
POST /order36000 請求 / 10分鐘 (60/秒)超過最大配置速率時節流請求
DELETE /order3000 請求 / 10秒 (300/秒)突發 - 超過最大配置速率時節流請求
DELETE /order30000 請求 / 10分鐘 (50/秒)超過最大配置速率時節流請求
POST /orders1000 請求 / 10秒 (100/秒)突發 - 超過最大配置速率時節流請求
POST /orders15000 請求 / 10分鐘 (25/秒)超過最大配置速率時節流請求
DELETE /orders1000 請求 / 10秒 (100/秒)突發 - 超過最大配置速率時節流請求
DELETE /orders15000 請求 / 10分鐘 (25/秒)超過最大配置速率時節流請求
DELETE /cancel-all250 請求 / 10秒 (25/秒)突發 - 超過最大配置速率時節流請求
DELETE /cancel-all6000 請求 / 10分鐘 (10/秒)超過最大配置速率時節流請求
DELETE /cancel-market-orders1000 請求 / 10秒 (100/秒)突發 - 超過最大配置速率時節流請求
DELETE /cancel-market-orders1500 請求 / 10分鐘 (25/秒)超過最大配置速率時節流請求

其他 API 速率限制

端點限制說明
RELAYER /submit25 請求 / 1分鐘超過最大配置速率時節流請求
User PNL API200 請求 / 10秒超過最大配置速率時節流請求

最佳實踐

為避免速率限制:
  1. 實施指數退避:如果收到速率限制錯誤,等待後再重試
  2. 批量請求:儘可能使用批量端點(如 POST /orders)而不是多個單獨請求
  3. 使用 WebSocket:對於實時數據,使用 WebSocket 連接而不是輪詢
  4. 緩存數據:緩存不經常變化的數據,如市場信息
  5. 監控使用情況:跟蹤您的 API 使用情況,避免接近限制

處理速率限制錯誤

當您達到速率限制時,API 將返回 HTTP 429 狀態碼。響應將包含以下頭部:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1234567890
示例錯誤處理:
import time
from py_clob_client.exceptions import RateLimitError

def make_request_with_retry(func, max_retries=3):
    for attempt in range(max_retries):
        try:
            return func()
        except RateLimitError as e:
            if attempt == max_retries - 1:
                raise
            wait_time = 2 ** attempt  # 指數退避
            print(f"速率限制,等待 {wait_time} 秒...")
            time.sleep(wait_time)
TypeScript 示例:
async function makeRequestWithRetry(
  func: () => Promise<any>,
  maxRetries: number = 3
): Promise<any> {
  for (let attempt = 0; attempt < maxRetries; attempt++) {
    try {
      return await func();
    } catch (error: any) {
      if (error.response?.status !== 429 || attempt === maxRetries - 1) {
        throw error;
      }
      const waitTime = Math.pow(2, attempt) * 1000;
      console.log(`速率限制,等待 ${waitTime}ms...`);
      await new Promise(resolve => setTimeout(resolve, waitTime));
    }
  }
}

下一步