
How to Build a Polymarket Trading Bot in Python (2026)
Build a Polymarket trading bot in Python: wallet setup, py-clob-client, market data, order placement, and a working strategy skeleton.
Polymarket's order book is fully programmatic — everything you can do in the UI, a bot can do through the CLOB API. This tutorial walks through the whole stack: wallet setup, the py-clob-client SDK, reading markets, placing orders, and a strategy skeleton you can extend. At the end, we'll cover the one thing most bot tutorials skip: where your edge actually comes from.
Not financial advice. Trading bots can lose money quickly. Test with small amounts, and always verify market resolution criteria before trading.
What You'll Need
- Python 3.9+
- A Polygon wallet (its private key) funded with USDC on Polygon plus a small amount of POL for gas
- The official Polymarket Python client:
pip install py-clob-client
Unlike reading market data (which needs no auth at all), trading on Polymarket requires wallet-based authentication — orders are signed with your key and settle on-chain.
Step 1: Connect and Derive API Credentials
Polymarket's CLOB uses two auth layers: your wallet key (L1) signs a message to derive API credentials (L2) used for order endpoints.
from py_clob_client.client import ClobClient
HOST = "https://clob.polymarket.com"
PRIVATE_KEY = "0x..." # your wallet key — use env vars, never hardcode
CHAIN_ID = 137 # Polygon mainnet
client = ClobClient(HOST, key=PRIVATE_KEY, chain_id=CHAIN_ID)
client.set_api_creds(client.create_or_derive_api_creds())
Step 2: Find a Market to Trade
Use the Gamma API to discover markets, then grab the CLOB token IDs:
import json, requests
events = requests.get(
"https://gamma-api.polymarket.com/events",
params={"limit": 5, "active": "true", "closed": "false", "order": "volume", "ascending": "false"},
).json()
market = events[0]["markets"][0]
token_ids = json.loads(market["clobTokenIds"]) # [yes_token, no_token]
yes_token = token_ids[0]
print(market["question"], "| Yes token:", yes_token)
Step 3: Read the Order Book
book = client.get_order_book(yes_token)
best_bid = float(book.bids[0].price) if book.bids else None
best_ask = float(book.asks[0].price) if book.asks else None
print(f"Best bid: {best_bid} | Best ask: {best_ask}")
Step 4: Place (and Cancel) an Order
from py_clob_client.clob_types import OrderArgs
from py_clob_client.order_builder.constants import BUY
order = client.create_order(OrderArgs(
price=0.45, # 45¢
size=10.0, # 10 shares
side=BUY,
token_id=yes_token,
))
resp = client.post_order(order)
print(resp)
# client.cancel(order_id=resp["orderID"]) # cancel anytime
A limit buy at 45¢ on a Yes token pays out $1 per share if the market resolves Yes. That's the whole game: buy probability cheap, sell it dear.
Step 5: The Strategy Loop
Every trading bot reduces to the same skeleton:
import time
def get_signal(market) -> str:
"""Return 'buy', 'sell', or 'hold'. This is where your edge lives."""
...
while True:
for market in watchlist:
signal = get_signal(market)
if signal == "buy" and within_risk_limits(market):
place_order(market)
time.sleep(POLL_INTERVAL) # or use WebSockets and react to events
Non-negotiable risk controls before you run anything live: a max position size per market, a max total exposure, a kill switch, and logging for every decision. Polymarket also enforces rate limits, so prefer WebSocket streams over tight polling loops.
Where Does the Edge Come From?
This is the part most tutorials hand-wave. A bot that only sees Polymarket has no reference point — it knows the price, but not whether the price is wrong. The most reliable signals in prediction markets come from comparing venues:
- Cross-platform price gaps. If Kalshi has the same event at 52¢ and Polymarket at 46¢, one of them is mispriced — or you've found an arbitrage.
- Smart money flow. Wallets with strong track records moving size is information.
- Speed on news. Prices adjust at different rates on different platforms.
Building that yourself means integrating Kalshi (RSA-signed requests), PredictIt, ProphetX, and others, then solving entity resolution — matching presidential-2028 to PRES-2028-DEM across naming schemes, at scale.
Or you make one call:
import requests
resp = requests.get(
"https://prediction.com/api/v2/search",
params={"q": "presidential election"},
headers={"X-API-Key": "YOUR_API_KEY"},
)
# One response: the same event's price on Polymarket, Kalshi, PredictIt, ProphetX & more
The Prediction HuntPrediction.com API handles the multi-platform plumbing — 6 platforms, automatic event matching, plus WebSocket channels for prices, smart-money alerts, and cross-platform arbitrage signals. There are ready-to-run starter scripts, including an arb alert bot, and the free tier (1,000 req/month) is enough to prototype a signal layer.
Common Pitfalls
clobTokenIdsandoutcomePricesare JSON strings, not arrays. Parse them.- Insufficient allowances. Your wallet must approve USDC spending for the exchange contracts before orders will post.
- Ignoring resolution criteria. Two "identical" markets can resolve differently. Read the rules.
- Testing in production. Start with tiny size. There is no Polymarket paper-trading environment (Kalshi has one; Prediction HuntPrediction.com also offers a paper portfolio).
FAQ
Is running a Polymarket bot allowed? Programmatic trading via the official CLOB API is supported — that's what the API is for. Check Polymarket's terms and your local regulations regarding platform access.
Do I need an API key? No separate key — credentials are derived from your wallet's private key via py-clob-client.
Can I backtest? Yes — pull historical prices from the CLOB /prices-history endpoint or use a historical data source covering multiple platforms.
Give your bot eyes on every platform. Get a free Prediction HuntPrediction.com API key and stream cross-platform prices, smart money, and arb alerts into your strategy.
Build with this data
Automate your strategies, create arb bots, or build your own dashboard. Free tier includes 1,000 requests/mo across all prediction market platforms.
Free Trading Tools
View allCompare fees across Kalshi, Polymarket & PredictIt.
Find fair probabilities with the overround removed.
See if a trade has positive EV before you enter.
Convert American, decimal & implied probability.
Combined odds and payouts for multi-leg bets.
Your real take-home after fees and taxes.
Related Posts

Best Crypto Prediction Markets in 2026
Where to trade bitcoin and crypto event contracts in 2026: Polymarket, Kalshi, Limitless, and Myriad compared on regulation, liquidity, and product depth.
4 min readRead
Prediction Market Indices: How Event Contract Indexes Work
What a prediction market index is, how Kalshi's political power index works, where equity index perps fit in, and whether a prediction market ETF exists yet.
4 min readRead
What Are Perpetual Futures? Perps Explained for US Traders
Perpetual futures explained: how perps work, what funding rates are, and how Kalshi brought regulated crypto perps to US traders in 2026.
4 min readRead