- TypeScript
- Python
0.1.0
- Graduated the SDK to the stable 0.x release line, marked Perps APIs as experimental, and removed deprecated compatibility APIs.
- Added Perps support for reduce-only orders, account stats, cancel-all, TP/SL metadata and placement, batched fill and trade frames, and stricter order request validation.
- Added
conditionIdaliases to CLOB order book, open order, trade, and builder trade models while keepingmarketavailable as a deprecated alias. - Typed CLOB cancellation results with branded
OrderIdvalues forcanceledandnotCanceledkeys.
0.1.0-beta.18
setupTradingApprovalsandprepareTradingApprovalsno longer request approvals for the retired CLOB v1 Neg Risk Adapter.- Streams drop unknown or unreadable WebSocket frames instead of closing the connection. RFQ quoter sessions no longer fail with
TransportErroron an unrecognized frame; a caller waiting on an unreadable acknowledgement fails through its acknowledgement timeout instead. - Removed
RfqKnownInboundMessageSchemafrom@polymarket/bindings; each RFQ inbound message schema declares its own object shape directly.
0.1.0-beta.17
- RFQ quoter sessions now keep running when the server introduces new error codes.
RfqErrorCodeis an open type: known codes are enumerated inRfqKnownErrorCode, and unrecognized codes flow through rejection errors as plain strings. - Deprecated the
RfqErrorCodevalue alias; migrate enum member access:
- Added
ConnectionLostErrorcarrying the WebSocket closecodeandreason. Losing an RFQ session connection now rejects in-flight operations and fails the session iterator with it, instead of ending the event loop silently. Closing the session still ends iteration cleanly. - Streamed market and user events normalize empty-string optional decimal fields (for example a trade’s
feeRateBpsor a price change’sbestBidandbestAsk) tonull. - Batch price reads (
fetchPrices,fetchMidpoints,fetchSpreads) returnTokenId-keyed records of branded decimal strings. - Perps sessions handle fills and trades frames that batch multiple entries.
0.1.0-beta.16
- Added
RESOLVED_PARTIALtoComboPositionStatusso Combo positions that resolve at a fractional payout (for example a voided leg) parse correctly instead of failing validation.
0.1.0-beta.15
- Combo activity now parses the canonical
typefield returned by the Data API, instead of deriving lifecycle actions from legacy fields.
0.1.0-beta.14
- Added SDK pagination for Combo lifecycle activity and server-cursor pagination for Combo positions.
- Added Combo position sync request fields and exposed
outcomeandredeemableon Combo positions. - Branded Combo activity row IDs.
- Breaking beta change: Combo activity and position fields now use
wallet,amount, andpayout; Combo activity rows no longer exposemoduleKind.
0.1.0-beta.13
- Added
listMarketClarificationsfor reading market clarification text with SDK-owned pagination and market, event, state, question, and transaction filters. - Fixed legacy Proxy wallet gasless execution and added live Safe and Proxy wallet coverage.
- Resolve closed markets when preparing market position redemptions.
- Gasless transaction handles now wait for relayer transactions to reach confirmed state before resolving.
0.1.0-beta.12
- Require GTD limit order expirations to be at least 3 minutes in the future.
0.1.0-beta.11
- Support CLOB order tick sizes
0.005and0.0025. - Pagination request cursors now infer the branded pagination cursor type.
0.1.0-beta.10
- Preserve already-deployed legacy UUPS Deposit Wallets when
createSecureClientresolves the default wallet, while new Deposit Wallet deployments use the beacon factory path.
0.1.0-beta.9
- Added
PriceHistoryIntervalandSearchSortexports, preservedgroupItemTitleon normalized markets, and publishedexpectPrivateKeyfrom@polymarket/types.
0.1.0-beta.8
- RFQ quoter sessions now emit typed
tradeevents for confirmed Combos fills. - RFQ rejection errors now expose
errorIdvalues and parseINVALID_SIGNATUREandINTERNAL_ERRORcodes.
0.1.0-beta.7
- Added
parentEventIdtoEventso child events can link back to their parent event. - Added
maxPriceandminPriceprotection fields to market order requests. - Handle legacy multi-outcome markets more safely:
listMarketsskips markets that cannot be represented by the binary market model, andfetchMarketreturns a typed SDK error for unsupported markets. - Normalize empty-string order and activity fields to SDK values: decimal amounts become
"0", missing maker order fee rates becomenull, and missing trade or position market icons becomenull. - Parse Combo trade activity rows with an
isCombodiscriminated union. - Support new Combos RFQ websocket error codes for balance, allowance, and pre-execution reservation failures.
- Broad user websocket subscriptions now omit market filters so all-market streams receive trade events.
- Retry rejected JSON-RPC
eth_callbatches by splitting them into smaller batches.
0.1.0-beta.6
- Point Combos RFQ endpoints at the production domains:
combos-rfq-api.polymarket.com(REST) andcombos-rfq-gateway-quoter.polymarket.com(quoter WebSocket).
0.1.0-beta.5
- Added
listComboMarketsfor fetching the Combo market catalog with typed bindings and SDK-owned pagination. See Combos. - Parse RFQ quote rejections that use the
SUBMISSION_WINDOW_CLOSEDgateway error code.
0.1.0-beta.4
- Added Combos support for multi-leg RFQ positions. See Combos.
- Reject whitespace-only search queries and trim leading or trailing search input.
ConditionIdis now deprecated in favor ofCtfConditionId; existingConditionIdexports remain available as deprecated aliases.
0.1.0-beta.3
Secure client setup now defaults to the Deposit Wallet flowcreateSecureClient can now derive and use the signer’s deterministic Deposit
Wallet when you omit wallet. If you already know which Polymarket wallet you
want to use, keep passing wallet.setupTradingApprovals() now waits internallyYou no longer need to wait on the returned handle. Call the method once before
trading; it is safe to call again if approvals are already set.isGaslessReady() or setupGaslessWallet() in the
normal setup path. Create the secure client, then set up trading approvals.