Polymarket CLOB API
Order books, prices and order placement on Polymarket's matching engine.
by Polymarket
Last updated
What it is
The trading half of Polymarket, and the only place its prices actually come from. The CLOB API at clob.polymarket.com serves the order book for an outcome token, the best bid and ask, the midpoint, the spread and the last traded price, in single and batch form — and then, behind authentication, takes orders, cancels them and reports your open ones.
The split from the Gamma API is not cosmetic. Reading a book here takes nothing at all; placing an order takes a wallet, a signed message, derived credentials, a per-request HMAC signature and collateral on Polygon. Those are two different products with two different sets of preconditions, which is why they are two cards.
Real-time comes as two WebSocket channels: a public market channel carrying book snapshots, price changes, last trade prices and tick-size changes, and an authenticated user channel carrying your own orders and fills.
Availability
Trading is blocked in the United States on this platform. Polymarket's international site says so in its own words and offers a US visitor view-only mode, directing them to Polymarket US — a separate entity operating as a CFTC-designated contract market, with its own app and its own API. The footer states plainly that the international platform is not regulated by the CFTC.
Everywhere else, availability is a wallet question rather than a signup question. There is no KYC step in the documented flow: control of a Polygon address, a signature, and collateral are the whole of it. That also means there is no account to be refused, and no support desk that reviewed your case — the geoblock sits in front of the web app, not in front of the endpoint.
For a developer this is the sharp edge worth knowing before you build: the read endpoints will answer you from anywhere, so a successful call proves nothing about whether you may trade what you just read.
Pricing
The API is free. The trades are not.
Polymarket charges takers only, and the fee is a curve rather than a rate: fee = shares × feeRate × price × (1 − price). The rate depends on the market's category — 0.07 for crypto, 0.05 for sports, economics, culture, weather and the general bucket, 0.04 for finance, politics, mentions and tech, and zero on geopolitical and world-event markets. Because of the price × (1 − price) term, the fee in dollars peaks at 50 cents and falls symmetrically toward both ends: on a 100-share crypto trade Polymarket's own table shows $1.75 at 50 cents and 33 cents at 5 cents or 95 cents. Makers pay nothing and are rebated a share of taker fees daily.
This card's figure is that general 0.05 rate expressed at its worst point — 1.25% of a dollar of payout on a fill at 50 cents. Read the category table before budgeting, because the spread between crypto and a geopolitical market is the whole fee.
Deposits and withdrawals carry no Polymarket fee, though the docs note that intermediaries may charge their own.
Markets & resolution
Resolution is the UMA optimistic oracle, not Polymarket's judgement. Anyone may propose an outcome against a bond of roughly 750 pUSD; there is a two-hour challenge window; a dispute triggers a second proposal round, and a second dispute escalates to a UMA token-holder vote after a debate period of 24 to 48 hours. Polymarket's published timeline is about two hours undisputed and four to six days disputed.
Three consequences for code:
- A market that stops trading has not paid. Redemption happens after resolution, through the collateral adapter, and returns pUSD.
- A UMA vote can return "Unknown", in which case the market resolves 50/50 and both tokens redeem at 50 cents.
- Rules can be clarified after trading starts, through an on-chain bulletin board entry that voters are expected to weigh. The clarification cannot change the intent of the question, but it can change which real-world result counts.
Integrations
REST plus two WebSocket channels, with unified TypeScript and Python SDKs published by Polymarket and an OpenAPI description linked from the docs. Authentication is two layers: an EIP-712 ClobAuth message signed by the wallet (L1) to create or derive API credentials, then HMAC-SHA256 request signing with a key, secret and passphrase (L2). The signed payload is timestamp plus method plus path plus the exact body bytes, which is the usual place an implementation goes wrong.
Price history is not here. It sits on Polymarket's Data API, keyed by token ID, with bucket widths from 60 seconds upward — and the docs are explicit that only coarse buckets cover the full history, while finer ones return the last 30 days.
Limitations
- No US trading on this platform, whatever the endpoint will answer.
- No published rate limits. The builder tiers say Standard and Highest and leave it there.
- No test environment. There is no sandbox or testnet for the production CLOB; rehearsal means small live orders.
- Fees are a formula with a per-category coefficient, so a single number on any comparison page — including this one — is an approximation.
- The matching engine restarts. Polymarket documents maintenance windows and a post-restart post-only mode, which a naive bot will read as rejected orders.
- No historical order book. You can reconstruct prices from the history endpoint, but the depth that produced them is not retained.
Alternatives
For discovery and market metadata against the same venue, use the Polymarket Gamma API — it is the other half of the same integration and needs none of the signing above. If the trading side has to be a US-regulated exchange with identity verification and a published rate-limit table, that is the Kalshi API. For an on-chain book with maker rebates and a much shorter market lifespan, see the Limitless API.
Specs
- Interfaces
- API, websocket, Python
- Export
- JSON
- Available in
- Global
- KYC required
- No
- Market subjects
- Politics, Sports, Crypto, Macro, Culture, Business
- Resolved by
- Each market carries its own rules and named source; the outcome is proposed to the UMA optimistic oracle and, if contested, decided by a UMA token-holder vote.
- Maker fee
- None
- Platforms
- Library
- AI features
- None
- Capabilities
- Order book, Automation, Live trading, Portfolio tracking
- Pricing verified
- Availability verified
- Economics verified
- Markets verified
Also from Polymarket
Background
How this part of the sector works, rather than which product to pick.
- Where weather data comes from and what you may do with it — Observations, model output and archives are three products with three licences. The forecast is the cheap half; a clean observation history is not.
- Why the same contract costs two different prices on two venues — Two venues quoting one outcome are quoting two contracts. What the gap between the prices is made of - rules, fallbacks, fees, collateral, exits, eligibility.
- What a trade actually costs on a prediction market — Venues publish trading fees in four incompatible units, so 3.00% on one can be cheaper than 1.75% on another. How to convert them, and what else takes a cut.
Also worth comparing
- Futuur API — One question, two order books — play money and real money, selected per request.
- Limitless API — REST and WebSocket for markets, books, candles and trading on Base.
- Kalshi API — REST, WebSocket and FIX access to a CFTC-regulated event exchange.
- Manifold API — Every read is keyless, the server is MIT-licensed, and the currency is play money.
- Adjacent — Prediction-market indices and reference rates, with Kalshi on the tier you can test.
- Apify prediction-market scrapers — A store of third-party actors that normalize Kalshi and Polymarket into one row shape.
Named as a replacement for
FAQ
Can I read Polymarket order books without an account?
Yes. The book, price, midpoint, spread and last-trade endpoints answer unauthenticated requests, and a call to the sampling-markets endpoint returned live book data on 19 September 2026 with no credentials. Authentication starts at order placement and at anything account-scoped.
What does it take to place an order through the CLOB API?
A Polygon wallet, an EIP-712 signature that proves you control it, API credentials derived from that signature, an HMAC-SHA256 signature on every request, and a pUSD balance. There is no identity check anywhere in that chain, and no US trading.
What is pUSD?
Polymarket's collateral token — an ERC-20 on Polygon, six decimals, backed by USDC and wrapped and unwrapped through onramp and offramp contracts. Every trade settles in it, and winning outcome tokens redeem into it at one dollar each.
How much does a fill cost on Polymarket?
Takers pay a fee computed as shares times a per-category rate times price times one minus price. The rate is 0.04 for politics, 0.05 for sports and most other categories, 0.07 for crypto and zero on geopolitical markets. Makers are never charged.