Polymarket
Purpose
Read public Polymarket market data with no key and no account: search and list markets, fetch one market, pull price history, snapshot a public order book, and list or fetch events. Reach for this when the user wants prediction-market odds, event discovery, or price context. This connector cannot trade, place orders, or touch positions.
Tooling
All commands go through bin/polymarket.py. No auth, no environment flags:
bashbin/polymarket.py markets --limit 25 # list markets bin/polymarket.py markets --search "bitcoin" # search markets bin/polymarket.py markets --active --order volume24hr # active, sorted by 24h volume bin/polymarket.py market-get --condition-id COND_ID # one market by condition id bin/polymarket.py market-get --slug fed-decision-in-october # one market by slug bin/polymarket.py prices --condition-id COND_ID --interval 1d # price history bin/polymarket.py orderbook --token-id TOKEN_ID # public order-book snapshot bin/polymarket.py events --limit 25 # list events bin/polymarket.py events --slug fed-decision-in-october # one event by slug
Market objects carry outcomes, outcomePrices, and clobTokenIds (the Yes/No token ids, needed for orderbook), plus bestBid, bestAsk, lastTradePrice, spread, and oneDayPriceChange for quick pricing without extra calls.
Auth
- Provider id: none. The Gamma API is public and requires no key.
- This connector never touches the credential helper and never handles a secret. There is nothing to collect and nothing to store.
- Allowed hosts:
gamma-api.polymarket.com,clob.polymarket.com - Status check:
bin/polymarket.py events --limit 1(a successful response proves reachability)
Operating Rules
- Trading is intentionally out of scope. No order placement, no positions, no signed calls ship in this connector. Market data informs; money movement needs a separate, explicit build.
- Order books are public snapshots. The CLI pulls them from the CLOB REST endpoint (
clob.polymarket.com/book), top 10 levels each side. Not a live stream. - The Gamma API is public but still rate-limited; keep request volume modest and reuse results instead of re-polling.
- Two things stayed unverified. The
/markets/slug/{slug}path never appeared in the docs I read, so use--condition-idif it errors. The price-historyintervalvalues (1h,6h,1d,1w,max) come from community docs, not the official reference; the API errors on values it does not support.
Files
- SKILL.md
- bin/polymarket.py
Maturity
Draft: written from Polymarket's public Gamma docs; not yet live-tested end-to-end.


