polymarket-api について
polymarket-apiは、Polymarketの予測市場を利用する開発者向けのスキルです。市場データの取得、更新の購読、注文に使うGamma、CLOB、Data、WebSocketの各インターフェースや認証、オンチェーン決済を解説し、最新ドキュメントと公式SDKの参照を勧めています。
主な機能
- 01市場、イベント、価格メタデータの取得
- 02CLOBでの板情報取得、注文、キャンセル
- 03過去の取引データへのアクセス
- 04板情報と取引更新のリアルタイム購読
- 05EIP-712認証とオンチェーン償還の解説
活用シーン
- 01市場やイベント情報の取得
- 02板を確認して注文やキャンセルを実行
- 03市場データやユーザー注文イベントを購読
- 04決着後に勝ちトークンをオンチェーンで償還
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ agiprolabs/ claude-trading-skills --skill polymarket-apiインストール後、Claude Code で/polymarket-apiを入力して読み込まれたか確認します。
同梱ファイルreferences/clob-and-gamma-apis.mdreferences/settlement-and-ops.md
詳細
Polymarket API
Polymarket は、Polygon メインネット上の予測市場です。各市場は、Conditional Token Framework(CTF)が発行する YES/NO の ERC-1155 トークンのペアで構成され、USDC に対して 1:1 で担保されています。オフチェーンで CLOB マッチングを行い、オンチェーンで決済します。テイカー手数料は無料です。価格は [0.00, 1.00] USDC で、各市場の YES + NO ≈ 1.0 です。
API コードを書く前に、まず最新のドキュメントをお読みください。
- ドキュメント:https://docs.polymarket.com
- 公式 Python SDK:https://github.com/Polymarket/py-clob-client
Polymarket のエンドポイントや認証フローは、予告なく変更されています。EIP-712 の導出、API 認証情報の管理、注文の署名に対応しているため、独自に HTTP を実装するよりも公式の
py-clob-clientSDK を優先してください。SDK で必要な機能が提供されていない場合に限り、独自実装を行ってください。
識別子のモデル
4 種類の異なる ID を扱います。混同すると、クエリが誤ったデータを返しても気づかないことがあります。
| ID | 内容 |
|---|---|
condition_id | 市場のオンチェーンの 16 進数 ID(CTF condition) |
clob_token_ids | YES/NO の ERC-1155 トークン ID のペア(2 要素のリスト) |
token_id | 単一の結果トークン。板情報や WebSocket のクエリに渡します |
event_id | 親グループ(例:「今日の NYC の最高気温」のすべての価格帯) |
クイックスタート
1. 市場を読み取る — Gamma API(認証不要)
import httpx
# CRITICAL: default sort is OLDEST-first — always override or you silently get closed markets
events = httpx.get("https://gamma-api.polymarket.com/events", params={
"tag_id": 103040, # category tag (e.g. weather)
"order": "endDate",
"ascending": "false", # must be string "false", not bool
"closed": "false",
}).json()
# Each event → markets[], each market has:
# condition_id, clob_token_ids (YES/NO pair), question, outcomes, outcomePrices
for event in events:
for mkt in event.get("markets", []):
yes_token, no_token = mkt["clobTokenIds"] # split the pair here
print(mkt["question"], mkt["outcomePrices"])
ページネーション: limit=100&offset=N を指定し、100 ずつ増やします。
2. 板情報と取引 — CLOB API(EIP-712 認証)
uv pip install py-clob-client
import os
from py_clob_client.client import ClobClient
client = ClobClient(
"https://clob.polymarket.com",
chain_id=137, # Polygon mainnet
key=os.environ["POLYMARKET_PRIVATE_KEY"], # wallet private key — env only, NEVER hardcode
signature_type=2, # 2 = Gnosis Safe proxy (Polymarket UI accounts)
# 0 = direct EOA you fully control
)
# Derives API key/secret/passphrase from the wallet signature — call once per session
client.set_api_creds(client.create_or_derive_api_creds())
token_id = "<yes_token_from_clob_token_ids>"
book = client.get_order_book(token_id) # bids/asks for one outcome token
price = client.get_price(token_id, side="BUY")
signature_type=2 は、Polymarket の Web UI が作成するプロキシ/Safe アカウント用です(funder アドレスは Safe です)。自分で直接管理する通常の EOA には signature_type=0 を使用してください。注文へのオンチェーン署名方法は、選択するタイプによって異なるため、最新の SDK ドキュメントをお読みください。
ウォレットの環境変数:POLYMARKET_PRIVATE_KEY、POLYMARKET_FUNDER。キーをコードに直接記述しないでください。
API の概要
| API | ホスト | 認証 | 用途 |
|---|---|---|---|
| Gamma | https://gamma-api.polymarket.com | なし | イベント/市場/condition/価格のメタデータ |
| CLOB | https://clob.polymarket.com | EIP-712 | 板情報、注文の発注/キャンセル |
| Data | https://data-api.polymarket.com | なし | 過去の取引 |
| WebSocket | wss://ws-subscriptions-clob.polymarket.com/ws/ | なし(市場)/JWT(ユーザー) | リアルタイムの板情報と取引ティック |
チェーン:Polygon メインネット chain_id=137。担保:0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 の USDC.e。
WebSocket
# Connect to: wss://ws-subscriptions-clob.polymarket.com/ws/market
# Subscribe message:
{"type": "market", "assets_ids": ["<token_id>", "<token_id2>"]}
イベントタイプ:book(購読時の完全なスナップショット)、price_change(差分更新)、last_trade_price。
ユーザーレベルの注文/約定イベントを受信するには、API 認証情報から生成した JWT を使って /ws/user に接続します。
オンチェーン決済と償還
Polymarket の気象市場は、対象都市圏の**現地時間(夏時間を含む)**における午前 0 時から翌午前 0 時までの Weather Underground の「History」タブに基づいて解決されます。LST(夏時間なし)と NWS CLI を使う Kalshi とは異なります。違いについては kalshi-weather-markets を参照してください。
解決後、勝利トークンは手動でオンチェーン償還する必要があります。
# Call CTF contract redeemPositions() — the SDK or direct web3.py call
# Winnings are NOT auto-swept to your wallet
国際市場での異議申し立ては、UMA optimistic oracle(トークン保有者による投票)にエスカレーションされます。Kalshi の CFTC-CCP 決済とは異なり、これは実際に結果が乖離するリスクです。複数の取引所を比較する際には、この点を考慮してください。
米国の地域制限/KYC 制約
米国居住者は Polymarket の利用をブロックされています。米国 IP アドレスからの API 呼び出しには、通常、許可された管轄区域の SOCKS5 プロキシが必要です(USE_PROXY 環境変数のフラグを使うパターンを採用し、プロキシアドレスをコードに直接記述しないでください)。この制約に加え、オンチェーン資金のロックアップや USDC と USD の交換に伴う摩擦があるため、個人規模で実行可能な Kalshi/Polymarket 裁定取引は限られます。
関連項目
- 複数の取引所に適用できる戦略、ポジションサイズ、バックテストについては、
prediction-market-strategyを参照してください - Kalshi の対応項目(RSA-PSS 認証、REST ホスト、ティッカー、注文スキーマ)については、
kalshi-apiを参照してください - 気象市場の決済の詳細(WU の現地時間+夏時間と Kalshi の LST、KLGA と KNYC の観測所)については、
kalshi-weather-marketsを参照してください
ファイル
参考資料
references/clob-and-gamma-apis.md— API の全容、すべてのエンドポイント、EIP-712 認証の詳細、ページネーション、注文スキーマ、取引パラメーターのデフォルト値references/settlement-and-ops.md— WU/UMA による解決、redeemPositions、真実性の情報源の優先順位(IEM > WU > Open-Meteo)、問題があることが判明している日付、地域/KYC、ホストの分離、2 つの取引所を使うアーキテクチャに関する注記