Kalshi orderbook data is unavailable between March 12 08:00 UTC and March 14 18:10 UTC due to an upstream Kalshi API format change. Data before and after this window is unaffected.
The order_filled event on the trades channel now includes four new fields:
Field
Type
Description
outcome_index
number | null
0 = first outcome (Yes/Over/Up), 1 = second outcome (No/Under/Down)
complement_token_id
string | null
Token ID of the opposite outcome for the same condition
complement_token_label
string | null
Label of the opposite outcome (e.g. “No”, “Under”, “Down”)
is_neg_risk
boolean | null
true for neg-risk markets, false for standard CTF markets
All fields are additive and nullable (null when condition metadata is unavailable) - existing clients are unaffected. Only order_filled events are changed; fee_refund, activity, and lifecycle events are unchanged.
The GET /v2/polymarket/markets endpoint now supports a token_id query parameter. Pass one or more token IDs (up to 50) to look up markets by either side’s token ID.
Batch wallet profiles - fetch up to 20 wallet profiles in a single request
Pass a comma-separated list of addresses via the addresses query parameter. Returns the same WalletProfileResponse data as the single wallet endpoint. Wallets not found are omitted from the response.
Total PnL (realized + unrealized - net fees) is now available across all analytics, leaderboard, smart money, and wallet endpoints. Filter, sort, and view total PnL alongside realized PnL for a complete picture of wallet performance.
Rolling total PnL accuracy timeline - Rolling windows need time to accumulate full data:
All-time total PnL: accurate immediately (February 10, 2026)
1-day rolling total PnL: fully accurate starting February 11, 2026
7-day rolling total PnL: fully accurate starting February 17, 2026
30-day rolling total PnL: fully accurate starting March 12, 2026
min_realized_pnl threshold increased from 1,000to5,000
GET /v2/binance/candles/{symbol}
start_time and end_time are now optional (were required)
PositionDetails
Added total_shares_bought field (total shares ever purchased, preserved after redemption); shares now described as current holdings (0 for closed positions)
WalletProfileResponse
Added total_pnl (realized + unrealized - net fees) and unrealized_pnl fields
We’re introducing API v2 - a major update with 14 new endpoints, improved pagination, and expanded analytics capabilities. v1 remains fully supported; switch between versions using the dropdown in the docs sidebar.Base path: All v2 endpoints live under /v2/ (e.g., https://api.predexon.com/v2/polymarket/markets).
New Endpoints
Binance Data
Real-time and historical Binance book ticker data for backtesting crypto up/down markets.
Smart Money Analytics
Track where profitable wallets are trading, filter by PnL/win rate, and discover alpha.
Wallet Intelligence
Full wallet profiles, trading style classification, market exposure, and similar wallet discovery.
Enhanced Market Data
Events grouping, crypto up/down markets, and per-period volume charts.
Category
Endpoint
Description
Binance
GET /v2/binance/ticks/{symbol}
Raw book ticker data at microsecond granularity
Binance
GET /v2/binance/candles/{symbol}
OHLCV candles derived from book ticker mid-prices (1s to 1d intervals)
Smart Money
GET /v2/polymarket/markets/smart-activity
Markets ranked by smart wallet activity
Smart Money
GET /v2/polymarket/market/{condition_id}/smart-money
Smart money positioning for a specific market
Analytics
GET /v2/polymarket/leaderboard
Global wallet leaderboard with 22 filter/sort parameters
Analytics
GET /v2/polymarket/leaderboard/market/{condition_id}
Per-market leaderboard
Analytics
GET /v2/polymarket/cohorts/stats
Aggregate stats for wallet cohorts
Analytics
GET /v2/polymarket/wallets/filter
Filter wallets by market participation and performance
Wallets
GET /v2/polymarket/wallet/{wallet}
Full wallet profile with metrics across all time windows
Wallets
GET /v2/polymarket/wallet/{wallet}/markets
Markets a wallet has traded
Wallets
GET /v2/polymarket/wallet/{wallet}/similar
Find wallets with similar trading patterns
Markets
GET /v2/polymarket/events
List events with grouped markets
Markets
GET /v2/polymarket/crypto-updown
Crypto up/down prediction markets
Markets
GET /v2/polymarket/volume-chart/{condition_id}
Per-period volume breakdown for a market
WebSocket Updates
WebSocket API
Major improvements to the WebSocket API with new event types, refined plan tiers, and better connection management.
New: Fee refund eventsThe trades channel (orders) now delivers two event types: order_filled and fee_refund. Fee refund events allow precise net fee calculations by tracking Polymarket’s maker rebate program. Correlate refunds to trades via order_hash.Plan tiers restructured (Free/Pro/Desk → Free/Dev/Pro/Enterprise)
Limit
Free
Dev
Pro
Enterprise
WebSocket access
No
Yes
Yes
Yes
Subscriptions per connection
-
10
100
Custom
Items per subscription
-
10
500
Custom
Total items
-
100
50,000
Custom
Wildcard
-
No
2 per channel
Yes
Priority routing
-
No
No
Yes
Wildcard rules updated
Wildcard connections are now tracked per-channel (e.g. a wildcard on orders does not count against activity)
A wildcard connection cannot mix wildcard and regular subscriptions on the same channel
Pro plan allows 2 wildcard connections per channel
Filter restrictions by channel
market_slugs filter is now only available on the trades (orders) channel
users filter is not available on the lifecycle channel
All channels support condition_ids and wildcard ["*"]
New error code:RATE_LIMIT - returned when a client is sending messages too fastKeepalive documentation: Server pings every 30s, 60s pong timeout, 2-minute idle timeout for zero subscriptions, and buffer overflow protections (1 MB drop threshold, 4 MB disconnect)
Breaking Changes (v1 → v2)
These changes only affect v2 endpoints. v1 endpoints remain unchanged.
Path parameter renamed:{wallet_address} → {wallet}All wallet-related endpoints now use {wallet} instead of {wallet_address}:
/v2/polymarket/wallet/pnl/{wallet}
/v2/polymarket/wallet/positions/{wallet}
/v2/dflow/wallet/pnl/{wallet}
/v2/dflow/wallet/positions/{wallet}
Pagination: offset → cursor-basedSeveral endpoints have switched from offset pagination to cursor-based pagination_key for better performance on large datasets:
Candlesticks Response Structure ChangedThe /v1/polymarket/candlesticks/{condition_id} endpoint response structure has been updated:Before: Nested array of [candlestick_data_array, token_metadata] tuples
After: Flat structure with condition_id at root and candlesticks as a direct array of candlestick objects