- Changelog: add Apr 21 update (Relayer API POST /submit change) - Changelog: add Apr 17 CLOB V2 migration announcement (April 28 go-live) - Changelog: add Apr 13 bridge API update - Changelog: add Apr 10 keyset pagination update - Changelog: add Apr 9 closed markets default update - Changelog: add Mar 31 REST API fee fields update - Changelog: add Mar 30 Fee Structure V2 update
14 KiB
Documentation Index
Fetch the complete documentation index at: https://docs.polymarket.com/llms.txt Use this file to discover all available pages before exploring further.
Polymarket Changelog
* **Faster `POST /submit` responses**: The Relayer's `POST /submit` endpoint now returns immediately with just `{ transactionID, state: "STATE_NEW" }`. The `transactionHash` field has been removed from the submit response to improve performance. * **How to get the hash**: Poll [`GET /transaction`](/api-reference/relayer/get-a-transaction-by-id) with the returned `transactionID` to retrieve the onchain `transactionHash` once the transaction has been broadcast. Polymarket is shipping a coordinated upgrade: **new Exchange contracts, a rewritten CLOB backend, and a new collateral token (pUSD)**.Welcome to the Polymarket Changelog. Here you will find any important changes to Polymarket, including but not limited to CLOB, API, UI and Mobile Applications.
Exchange upgrades go live April 28, 2026 at ~11:00 UTC with ~1 hour of downtime. All integrations must migrate to the V2 SDK before the cutover — there will be no backward compatibility after go-live.
Full walkthrough: Migrating to CLOB V2. Follow Discord, Telegram, and status.polymarket.com for the exact start time.
Test against V2 now: point your client at https://clob-v2.polymarket.com. On April 28, V2 takes over https://clob.polymarket.com, so no base-URL change is needed after the cutover.
What's changing
- New Exchange contracts (CTF Exchange V2 + Neg Risk CTF Exchange V2)
- pUSD replaces USDC.e as the collateral token (standard ERC-20 on Polygon, backed by USDC, backing enforced onchain)
- Order struct:
nonce,feeRateBps,takerremoved —timestamp(ms),metadata,builderadded - Fees are now set at match time — no more
feeRateBpson orders - Builder attribution is native via
builderCodeon orders (no morebuilder-signing-sdk) - EIP-712 Exchange domain version bumps from
"1"to"2"(ClobAuth stays at"1")
What you need to do
- Install the V2 SDK —
@polymarket/clob-client-v2orpy-clob-client-v2— and remove the legacyclob-client/py-clob-clientpackages - Update constructor from positional args to options object; rename
chainId→chain - Remove
feeRateBps,nonce, andtakerfrom your order creation code - If you're a builder, copy your code from Settings → Builder and attach it to orders
- If you sign orders without the SDK, update the
verifyingContractand the signed Order fields — see For API users - Plan for all open orders to be wiped at cutover
During the window: Trading will be paused for ~1 hour on April 28 starting around 11:00 UTC. The SDK's hot-swap mechanism will auto-refresh the client when V2 goes live — no manual action needed if you're on the latest SDK.
* **Support contact**: Added a link to [our Bridge API provider's support](https://intercom.help/funxyz/en/articles/10732578-contact-us) (Fun.xyz) for failed, stuck, or compliance-held bridge transactions. See [Deposit Status](/trading/bridge/status). * **New endpoints**: Added `GET /markets/keyset` and `GET /events/keyset` for cursor-based pagination, replacing offset-based `GET /markets` and `GET /events`. * **How it works**: These use an opaque `after_cursor`/`next_cursor` token instead of `offset`, providing stable and efficient paging through large result sets. Same filters, same response shape per item — the only differences are the wrapper response (`{ "markets": [...], "next_cursor": "..." }`) and the rejection of `offset`. * **Migration**: The existing `GET /markets` and `GET /events` endpoints remain available but will be deprecated in a future release. New integrations should use the keyset variants. * **`closed` default change**: The `closed` query parameter on `GET /markets` now defaults to `false`. Closed markets are excluded from results unless you explicitly pass `closed=true`. * **Fee calculation source**: Fees should now be calculated using the `feeSchedule` object within a market. * **New fee categories**: Fees now apply to Crypto, Sports, Finance, Politics, Economics, Culture, Weather, Tech, Mentions, and Other / General markets with updated rates per category. Geopolitical and world events markets remain fee-free. * **Updated documentation**: [Fees](/trading/fees) and [Maker Rebates Program](/market-makers/maker-rebates). * **March Madness Liquidity Rewards**: Adding \$2M+ in liquidity rewards to both live and pregame markets. * **How it works**: Liquidity rewards are payments for placing competitive bids. Rewards are paid out based on the size of your orders, how close they are to the midpoint, and how consistently they are quoted relative to other liquidity providers. Orders must be active on the book for a minimum of **3.5 seconds** to be eligible.Daily reward rates for markets (subject to change):
48 hours before GameStartTime:
- $7.5k for full game ML market
- $500 for 5 other markets (most recently created full game spread, most recently created full game total, 1st half ML, most recently created 1st half spread, most recently created 1st half total)
From game live to game completion (note: rewards are expressed in daily rates):
- $60k for full game ML
- $4k for most recently created full game spread and most recently created full game total
From game live to halftime (note: rewards are expressed in daily rates):
-
$8k for 1st half ML, most recently created 1st half spread, most recently created 1st half total
-
Markets: Browse March Madness markets
-
More details: Liquidity Rewards documentation
- FAK will fill as many shares as possible immediately at your specified price, and any remaining unfilled portion will be canceled.
- Unlike FOK, which requires the entire order to fill instantly or be canceled, FAK is more flexible and aims to capture partial fills if possible.
- CLOB - /books (website) (300req - 10s / Throttle requests over the maximum configured rate)
- CLOB - /books (50 req - 10s / Throttle requests over the maximum configured rate)
- CLOB - /price (100req - 10s / Throttle requests over the maximum configured rate)
- CLOB markets/0x (50req / 10s - Throttle requests over the maximum configured rate)
- CLOB POST /order - 500 every 10s (50/s) - (BURST) - Throttle requests over the maximum configured rate
- CLOB POST /order - 3000 every 10 minutes (5/s) - Throttle requests over the maximum configured rate
- CLOB DELETE /order - 500 every 10s (50/s) - (BURST) - Throttle requests over the maximum configured rate
- DELETE /order - 3000 every 10 minutes (5/s) - Throttle requests over the maximum configured rate