如何使用 Polymarket API:开发者完整指南 (2026)
利用 Polymarket 的 REST 和 WebSocket API 构建预测市场应用
开始使用 Hypereal AI 构建
通过单个 API 访问 Kling、Flux、Sora、Veo 等模型。免费额度即可起步,可扩展至千万级。
无需信用卡 • 10 万+ 开发者 • 企业级服务
如何使用 Polymarket API:完整开发者指南 (2026)
Polymarket 是全球最大的预测市场平台,允许用户对现实世界事件的结果进行交易。无论您是想构建仪表板、自动化交易策略,还是将市场数据引入您的应用程序,Polymarket API 都能为您提供对平台一切功能的编程访问权限。
本指南将演示 Polymarket API 的完整设置流程,从身份验证到完成第一笔交易,并提供 Python 和 JavaScript 的示例代码。
Polymarket API 概览
Polymarket 提供两个主要的 API:
| API | 用途 | 身份验证 | 速率限制 |
|---|---|---|---|
| CLOB API | 交易、下单、市场数据 | API key + secret | 100 次请求/分钟 |
| Gamma API | 公开市场数据、事件、元数据 | 无 (公开) | 300 次请求/分钟 |
CLOB (Central Limit Order Book) API 是进行交易所需的接口。Gamma API 是一个只读的 REST API,用于获取市场信息、事件详情和历史数据,无需身份验证。
第 1 步:获取您的 Polymarket API Key
要使用 CLOB API,您需要一个与您的 Polymarket 钱包绑定的 API key。
- 访问 polymarket.com 并连接您的钱包或创建账户。
- 导航至账户设置并找到 API 部分。
- 生成新的 API key 和 secret。请安全保存这些信息——您将无法再次看到 secret。
对于 Gamma API,不需要身份验证。您可以立即开始发起请求。
第 2 步:使用 Gamma API 获取市场数据
Gamma API 是最简单的入门方式。它返回有关所有活跃市场的结构化数据。
列出所有活跃市场
import requests
# 从 Polymarket Gamma API 获取活跃市场
response = requests.get(
"https://gamma-api.polymarket.com/markets",
params={
"active": "true",
"limit": 10,
"order": "volume24hr",
"ascending": "false"
}
)
markets = response.json()
for market in markets:
print(f"问题: {market['question']}")
print(f"交易量 (24h): ${market.get('volume24hr', 0):,.2f}")
print(f"流动性: ${market.get('liquidity', 0):,.2f}")
print("---")
// Node.js / fetch 示例
const response = await fetch(
"https://gamma-api.polymarket.com/markets?" +
new URLSearchParams({
active: "true",
limit: "10",
order: "volume24hr",
ascending: "false"
})
);
const markets = await response.json();
markets.forEach(market => {
console.log(`问题: ${market.question}`);
console.log(`交易量 (24h): $${Number(market.volume24hr || 0).toLocaleString()}`);
console.log(`流动性: $${Number(market.liquidity || 0).toLocaleString()}`);
console.log("---");
});
通过 ID 获取特定市场
import requests
market_id = "0x1234..." # 替换为实际的 condition ID
response = requests.get(
f"https://gamma-api.polymarket.com/markets/{market_id}"
)
market = response.json()
print(f"问题: {market['question']}")
print(f"描述: {market['description']}")
print(f"结束日期: {market['endDate']}")
通过关键词搜索市场
import requests
response = requests.get(
"https://gamma-api.polymarket.com/markets",
params={
"tag": "politics",
"active": "true",
"limit": 5
}
)
markets = response.json()
for m in markets:
print(f"{m['question']} — 交易量: ${m.get('volume24hr', 0):,.0f}")
第 3 步:连接到 CLOB API 进行交易
CLOB API 允许您下单和管理订单。它需要使用您的 API 凭据进行加密身份验证。
安装 Python 客户端
pip install py-clob-client
初始化客户端
from py_clob_client.client import ClobClient
from py_clob_client.clob_types import ApiCreds
# 您的凭据
host = "https://clob.polymarket.com"
chain_id = 137 # Polygon 主网
private_key = "0xYOUR_PRIVATE_KEY"
# 初始化客户端
client = ClobClient(
host,
key=private_key,
chain_id=chain_id
)
# 派生 API 凭据
api_creds = client.create_or_derive_api_creds()
client.set_api_creds(api_creds)
print("已连接到 Polymarket CLOB API")
获取订单簿数据
# 获取特定市场的订单簿
token_id = "71321045..." # 特定结果的 token ID
order_book = client.get_order_book(token_id)
print("买单 (Bids):")
for bid in order_book.bids[:5]:
print(f" 价格: {bid.price} | 数量: {bid.size}")
print("卖单 (Asks):")
for ask in order_book.asks[:5]:
print(f" 价格: {ask.price} | 数量: {ask.size}")
发布限价单
from py_clob_client.order_builder.constants import BUY
# 创建并签署限价单
order_args = {
"token_id": "71321045...",
"price": 0.55, # USDC 价格 (0.55 = 55 分 = 55% 概率)
"size": 100, # 份数
"side": BUY,
"fee_rate_bps": 0, # 以基点计的费率
}
signed_order = client.create_and_post_order(order_args)
print(f"订单已发布: {signed_order}")
取消订单
# 取消特定订单
order_id = "0xABC123..."
result = client.cancel(order_id)
print(f"订单已取消: {result}")
# 取消所有未成交订单
result = client.cancel_all()
print(f"所有订单已取消: {result}")
第 4 步:使用 WebSocket 流式传输实时数据
Polymarket 提供 WebSocket 连接,用于实时价格更新和订单簿变更。
import asyncio
import websockets
import json
async def stream_market_data():
uri = "wss://ws-subscriptions-clob.polymarket.com/ws/market"
async with websockets.connect(uri) as ws:
# 订阅一个市场
subscribe_msg = {
"type": "subscribe",
"market": "71321045...", # Token ID
"channel": "price"
}
await ws.send(json.dumps(subscribe_msg))
print("已订阅价格更新")
async for message in ws:
data = json.loads(message)
print(f"价格更新: {data}")
asyncio.run(stream_market_data())
第 5 步:构建简单的市场仪表板
这是一个实用的示例,获取顶级市场并将其显示在格式化的表格中。
import requests
from tabulate import tabulate
def get_top_markets(limit=10):
response = requests.get(
"https://gamma-api.polymarket.com/markets",
params={
"active": "true",
"limit": limit,
"order": "volume24hr",
"ascending": "false"
}
)
return response.json()
def format_market_table(markets):
rows = []
for m in markets:
rows.append([
m["question"][:60],
f"${float(m.get('volume24hr', 0)):,.0f}",
f"${float(m.get('liquidity', 0)):,.0f}",
m.get("endDate", "N/A")[:10]
])
headers = ["市场", "24h 交易量", "流动性", "结束日期"]
return tabulate(rows, headers=headers, tablefmt="grid")
markets = get_top_markets()
print(format_market_table(markets))
Polymarket API 速率限制与最佳实践
| 端点 | 速率限制 | 建议间隔 |
|---|---|---|
| Gamma API (公开) | 300 次/分钟 | 请求间距 200ms |
| CLOB REST API | 100 次/分钟 | 请求间距 600ms |
| WebSocket | 无硬性限制 | 每 30 秒发送一次心跳 (heartbeat ping) |
| 订单发布 | 10 单/秒 | 尽可能使用批量处理 |
最佳实践
- 缓存市场数据。 市场元数据不会频繁更改。请在本地缓存并在每 5-10 分钟刷新一次。
- 使用 WebSocket 获取实时数据。 轮询 REST API 会浪费速率限制额度。使用 WebSocket 订阅来获取实时价格推送。
- 妥善处理 429 错误。 当达到速率限制时,实施指数退避算法 (exponential backoff)。
- 将 API key 存储在环境变量中。 永远不要在代码中硬编码私钥或 API secret。
import os
# 从环境变量加载
api_key = os.environ.get("POLYMARKET_API_KEY")
api_secret = os.environ.get("POLYMARKET_API_SECRET")
private_key = os.environ.get("POLYMARKET_PRIVATE_KEY")
常见 API 响应代码
| 代码 | 含义 | 采取措施 |
|---|---|---|
| 200 | 成功 | 处理响应 |
| 400 | 错误请求 | 检查参数 |
| 401 | 未授权 | 验证 API 凭据 |
| 404 | 未找到 | 检查市场/订单 ID |
| 429 | 触发速率限制 | 退避并重试 |
| 500 | 服务器错误 | 延迟后重试 |
常见问题解答
Polymarket API 是免费的吗? 是的。Gamma API 完全免费,无需身份验证。CLOB API 也是免费使用的,但进行交易需要一个注资过的 Polymarket 账户。
Polymarket 使用的是哪种区块链? Polymarket 在 Polygon(链 ID 137)上运行。您需要 Polygon 上的 USDC 进行交易。
我可以使用 API 运行自动交易机器人吗? 可以。CLOB API 专为编程交易设计。许多用户都在运行自动化策略。请注意关于市场操纵的服务条款。
是否有沙盒或测试网? Polymarket 偶尔会为开发者提供测试网环境。请查看他们的 Discord 和官方文档以获取最新信息。
支持哪些编程语言?
官方客户端库是 Python 版 (py-clob-client)。REST 和 WebSocket API 可用于任何支持 HTTP 请求的语言。
总结
Polymarket API 是目前最易访问的预测市场 API 之一。公开的 Gamma API 无需任何设置即可读取市场数据,而 CLOB API 通过 Python 客户端支持为您提供完整的交易能力。
如果您正在构建整合预测市场数据的 AI 驱动型应用程序或生成式媒体,免费试用 Hypereal AI —— 35 个积分,无需信用卡。它为图像、视频和头像生成提供简单的 API,能够与数据驱动型应用程序完美配合。
相关文章
Download Hypereal Agent
Run a local AI media workspace for image generation, video prompts, model selection, credit tracking, and saved artifacts.


