Skip to main content
June 20, 2026
Removed

Dflow endpoints removed

The Dflow venue is deprecated. The three Data API endpoints below have been removed and now return 404. The corresponding MCP tools have been removed as well.
EndpointMCP tool
GET /v2/dflow/tradesget_dflow_trades
GET /v2/dflow/wallet/positions/{wallet}get_dflow_positions
GET /v2/dflow/wallet/pnl/{wallet}get_dflow_pnl
If you were depending on Dflow data, reach out at team@predexon.com so we can scope a replacement path.
May 29, 2026
NewChanged

New endpoints

Wallet Builder Fees

GET /v2/polymarket/builders/wallet/{wallet}. Total builder fees a wallet has paid over a rolling window or an exact start_time/end_time range, with a per-builder breakdown and optional builder_code filter. Each fill is scored at the rate in effect at the time it filled.

Position Top Holders

GET /v2/polymarket/position/{token_id}/top-holders. Largest holders of a single token (one outcome side), ranked by position size, with cursor pagination.

Polymarket Discovery & Taxonomy

Seven new endpoints for browsing and navigating Polymarket — categories, tags, series, and a unified search. These power navigation surfaces and autocomplete on top of the markets and events data.

Unified Search

GET /v2/polymarket/search. One query across markets, events, and tags, grouped by type.

Categories

GET /v2/polymarket/categories. Top-level categories with market counts, volume, and liquidity.

Tags

GET /v2/polymarket/tags, GET /v2/polymarket/tag/{slug}, and GET /v2/polymarket/tag/{slug}/subtags. Curated tags with rolled-up volume/liquidity metrics, single-tag detail, and ranked child subtags.

Series

GET /v2/polymarket/series and GET /v2/polymarket/series/{slug}. Recurring market groupings (daily/weekly/monthly) plus a series’ events. The crypto up/down feature is just a named series.

Improvements

GET /v2/polymarket/events (keyset) gained optional include_markets (nest each event’s markets inline, capped by markets_per_event) plus min_open_interest and min_volume filters to return only liquid events. Events also now include an all-time trade count (trades_all_time).Per-tag and per-category open interest has been removed from the categories and tags endpoints — a tag/category-wide OI sum was unreliable. Rank by volume (total_volume_usd, rolling_metrics) and liquidity_usd instead. Both surfaces also gained trades_all_time.

Behavioral changes

A few request defaults and constraints changed. Set parameters explicitly if you were relying on the previous defaults.
EndpointParameterBeforeNow
GET /v2/markets, GET /v2/markets/listingsstatusno default (all statuses)defaults to open — also accepts closed, resolved, all
GET /v2/markets, GET /v2/markets/listingslimitdefault 20default 50 (max 200)
GET /v2/markets, GET /v2/markets/listingssearchany lengthmust be 3–200 characters
GET /v2/polymarket/wallet/positions/{wallet}include_closeddefault truedefault false — pass include_closed=true for closed/zero-balance positions
Pagination shape change on the Polymarket offset list endpoints. GET /v2/polymarket/markets and GET /v2/polymarket/events now return pagination: { has_more, limit, count, pagination_key } — the offset and total fields have been removed. Migrate to the cursor-based List Markets / List Events flow using pagination_key.
May 20, 2026
NewBeta

Canonical Markets API

Four new venue-agnostic endpoints exposing Predexon’s canonical outcome graph. These are the data layer the Order Router quotes against and the entry point for any cross-venue workflow.

List Canonical Markets

GET /v2/markets. Cross-venue canonical market containers with outcome-level predexon_ids.

Canonical Venue Listings

GET /v2/markets/listings. Flatten canonical markets into venue-native executable listings (token IDs, condition IDs, Kalshi tickers, market slugs).

Resolve a Canonical Outcome

GET /v2/outcomes/{predexon_id}. Resolve one canonical outcome ID to its full venue-equivalent listings.

Search Across Venues

GET /v2/markets/search. Keyword search returning interleaved results across Polymarket, Kalshi, Limitless, Opinion, and Predict.fun.
All four canonical endpoints are free and unlimited on every plan. Category and league filters supported. Cursor-based pagination.

Order Router

New: Route a single order across every venue

One canonical outcome, one order, every venue. The router quotes across Polymarket, Predict.fun, Opinion, Limitless, and Hyperliquid, splits the order fee-aware, and dispatches each leg to its matching venue.
Endpoints:The router uses Predexon’s canonical outcome graph to identify equivalent markets across venues. See the Order Router guide for the full flow.

Unified Transfers

New: One endpoint for every fund movement

POST /api/accounts/{accountId}/transfers replaces separate deposit and withdraw flows. One verb covers movement between the deposit wallet, venue trading wallets, and external addresses.
  • POST /api/accounts/{accountId}/transfers/quote. Project route and fees before committing.
  • POST /api/accounts/{accountId}/transfers. Execute the transfer.
  • GET /api/accounts/{accountId}/transfers. List transfers with status.
  • GET /api/accounts/{accountId}/transfers/{transferId}. Status of a single transfer.
Beta. Router and Transfers endpoints are marked beta. Existing per-venue order endpoints (POST /api/accounts/{accountId}/orders) continue to work unchanged.

Other improvements

  • $1 bridge minimum documented on Across-routed deposits.
  • Router 4xx errors moved from 502 to 400 in the OpenAPI spec to match shipped behavior.
  • Deposit-wallet behavior synced with deployed router.
May 18, 2026
Breaking ChangeImprovement

Connected Wallets: Async Compute + Larger Clusters

The Connected Wallets endpoint now returns either 200 or 202 depending on cache state - clients must handle both.
Behavior change. Hub-wallet clusters can take 60–180 seconds to compute, far beyond any HTTP timeout. On a cache miss, stale cache (>24h), or recompute=true, the endpoint now returns 202 Accepted with a Retry-After header and a {status, retry_after_seconds, reason, message} body. Background BFS runs out-of-band; the next call after Retry-After returns 200 from cache.
reason values on 202: miss, stale, forced, another_pod_computing (cross-pod Redis lock).Other changes:
  • limit upper bound bumped 200 → 1000. Up to 1000 siblings persisted per seed.
  • Cluster cache TTL is now 24 hours.
  • min_hops is now described as 1 = direct neighbor (previously 0 = direct).
  • Richer evidence documentation: hops, bidirectional, direct_flow, shared_peers, same_signer, same_x_username, shared_first_funder, is_verified_trader, class.
See the recommended client polling pattern in the docs.
May 17, 2026
NewImprovement

Polymarket V2 Builder Analytics

Four new endpoints exposing Polymarket V2 builder-attribution data - leaderboards, per-builder summaries, top markets per builder, and bucketed time-series.

Leaderboard

Ranked list of builders by attributed volume or fee revenue over 24h / 7d / 30d / all.

Builder Stats

Summary metrics for a single builder plus its full (taker_bps, maker_bps) rate history.

Builder Markets

Top markets attributed to a builder, ranked by volume.

Builder Timeseries

Bucketed (day or hour) volume and fee revenue for charting.
V2-only. V1 fills, the zero-sentinel builder, and reversed (sign != 1) rows are excluded. The leaderboard’s sort_by=fee is useful when looking at revenue-earning builders, since the highest-volume builders often charge 0 bps.

List Markets: end_after / end_before Filters

GET /v2/polymarket/markets now accepts two new optional Unix-timestamp (seconds) query parameters - end_after and end_before - to filter markets by end_time. Useful for listing markets that close in a specific window (e.g. “this week’s resolutions”).
May 9, 2026
NewImprovement

Cross-Platform Matching: Predict and Opinion Support

Find Matching Markets and Get Matched Pairs now include Predict.fun and Opinion canonical equivalents alongside Polymarket, Kalshi, and Limitless.Changes:
  • /v2/matching-markets: accepts Predict and Opinion identifiers (market_id, condition_id, or token_id) and returns exact canonical equivalents when available.
  • /v2/matching-markets/pairs: returns PREDICT and OPINION venue blocks by default when canonical equivalents exist.
  • venue filtering now supports polymarket, kalshi, limitless, predict, and opinion.
Predict.fun and Opinion matching is powered by the canonical matching graph. Existing Polymarket, Kalshi, and Limitless response fields remain backward-compatible.
May 7, 2026
NewPerformance

Polymarket Markets: Keyset Pagination

New Endpoint: GET /v2/polymarket/markets/keyset

List Polymarket markets with the same filters and sort options as /v2/polymarket/markets, but use cursor-based pagination_key instead of offset.
Use List Markets (Keyset Pagination) for large backfills and deep pagination. The existing offset endpoint remains unchanged.

Polymarket Events: Keyset Pagination

New Endpoint: GET /v2/polymarket/events/keyset

List Polymarket events with the same filters and sort options as /v2/polymarket/events, but use cursor-based pagination_key instead of offset.
Use List Events (Keyset Pagination) for large event crawls. The existing offset endpoint remains unchanged.
May 7, 2026
FixData Quality

Limitless: CLOB Open Interest

Limitless CLOB markets now return open_interest_usd: null instead of 0 because Limitless does not currently expose CLOB open interest through the indexed market API. AMM market open interest remains available.See Limitless Markets for the field note.
May 5, 2026
New

Trading API: Hyperliquid (HIP-4) Support

New Venue: Hyperliquid

Trade Hyperliquid HIP-4 prediction markets through the Predexon Trading API. Limit and market orders, full position lifecycle, and managed wallet provisioning - same shape as Polymarket, Predict, Opinion, and Limitless.
Trading
  • New venue: "hyperliquid" accepted on every /api/accounts/* endpoint (place order, cancel, positions, balance, redeem, withdraw, enable).
  • Markets are identified by assetId in the market bag - a single integer that pins down a specific HIP-4 outcome side. See Place Order for the per-venue identification table.
  • $10 minimum order notional (size × price ≥ 10) - applies to all orders. Smaller orders are rejected.
  • Market BUY takes size (not amount) - fills as many shares as possible at the best ask up to the requested quantity.
Funding
  • Bridge USDC to your Hyperliquid wallet via Across. Select Hyperliquid (HyperCore) as the destination chain. Funds arrive as USDH (HL’s USDC-pegged stablecoin) in your trading balance in ~1-2 minutes; /balance returns asset: "usdh".
Withdrawals
  • Deliver USDC on Arbitrum to any address. 10minimumwithdrawal.A10 minimum withdrawal.** A **1 USDC fee is deducted before delivery - recipient receives amount - 1. Settlement takes ~3-4 minutes.
Available now for any API key. No allowlist - call POST /api/accounts/{accountId}/enable {"venue": "hyperliquid"} to provision a wallet.
April 30, 2026
NewImprovement

WebSocket: Crypto Prices Channel

New Channel: crypto_prices (Chainlink Data Streams)

Real-time crypto price ticks relayed from Chainlink Data Streams. Subscribe with platform: "chainlink", type: "crypto" and a feeds filter - wildcard supported. See Crypto Prices.
Supported feeds: BTC/USD, ETH/USD, SOL/USD, XRP/USD, BNB/USD, DOGE/USD, HYPE/USD.
{
  "action": "subscribe",
  "platform": "chainlink",
  "version": 1,
  "type": "crypto",
  "filters": { "feeds": ["BTC/USD", "ETH/USD"] }
}
Each tick is a price_feed event with price, bid, ask, and observed_at (Unix seconds). One event per upstream observation - no batching. Plan limits and wildcard rules are the same as the existing channels.

WebSocket: Explicit role on order_filled

Every order_filled event on the trades channel now carries a role field - "maker" or "taker" - telling you which OrderFilled emission you’re looking at:
  • role: "maker" - per-maker fill (one per maker matched in the tx). taker is the real taker user address. This is what you want by default.
  • role: "taker" - synthetic taker-aggregate emission (one per matchOrders tx, summing across all makers). taker equals the exchange contract address.
Don’t sum volume across both roles - the taker-aggregate row covers the same shares as the per-maker rows. Filter on role === "maker" for maker-attribution counts, or role === "taker" for one-row-per-taker-action dashboards. Previously consumers had to derive this implicitly by checking taker against the five exchange contract addresses; now it’s a first-class field.
The field is fully additive - existing clients ignore it unchanged.
April 30, 2026
NewImprovement

Connected Wallets Endpoint

New Endpoint: GET /v2/polymarket/wallet/{address}/cluster

Discover sibling wallets behind a seed address via the on-chain transfer graph (USDC, pUSD, CTF) plus identity-proof signals - shared signer, shared X username, shared first funder. Each sibling carries a confidence score (0–100); the default min_confidence=70 returns strong-evidence links only.
Use this to surface likely-related accounts behind a single operator - alt wallets, hot/cold splits, multi-account farming patterns. Results are cached; pass recompute=true to force a fresh BFS. Requires Dev or Pro tier.

Trades: V2 Exchange Fields

Every row in the /v2/polymarket/trades response now carries Polymarket exchange version metadata:
  • exchange_version - 1 (V1 CTF/NegRiskCTF) or 2 (V2).
  • builder - V2 builder attribution tag (bytes32 hex). Empty for V1 fills or V2 fills with no builder.
  • metadata - V2 opaque metadata tag (bytes32 hex). Empty for V1 fills or V2 fills with no metadata.
The endpoint also accepts a new builder query parameter to filter fills attributed to a specific builder tag.
April 25, 2026
NewImprovement

Cross-Platform Matching: Limitless Support

Find Matching Markets and Get Matched Pairs now cover Limitless alongside Polymarket and Kalshi.Changes:
  • /v2/matching-markets: new limitless_slug query param - pass a Limitless slug to find equivalent markets on Polymarket or Kalshi.
  • /v2/matching-markets/pairs: new venue filter - restrict results to a specific venue pairing.
  • MatchedPair schema: kalshi block is now optional, and a new optional limitless block (using LimitlessPairInfo) is included when a Limitless equivalent exists.
Existing clients reading pair.kalshi directly should null-check before access - pairs without a Kalshi equivalent will omit the field.
April 24, 2026
NewImprovement

Per-Token Candlesticks

New Endpoint: GET /v2/polymarket/candlesticks/token/{token_id}

Fetch raw OHLCV candles for a single outcome token. Unlike the condition-level endpoint, prices are not normalized - NO-token prices stay as NO prices, and volume reflects only that token’s trades.
Use this when you need to chart each side of a binary market separately, or when you only have a token ID. Same intervals, same auto mode, same response shape - the response now also includes a top-level token_id (and condition_id becomes optional, set only on the condition-level endpoint).

Activity: CONVERT Events + NegRisk Fields

The activity endpoint now returns CONVERT events alongside SPLIT, MERGE, and REDEEM - these are NegRisk position conversions (sell NO on a subset of conditions, buy YES on the remainder).New fields on the Activity schema:
  • neg_risk_market_id - NegRisk parent market identifier (32-byte hex, matches Gamma’s Event.negRiskMarketID). Populated only on CONVERT rows.
  • index_set - NegRisk indexSet bitmask (decimal string) of which outcomes were involved. Populated only on CONVERT rows.
  • market_id is now nullable - it’s null on CONVERT rows.
On CONVERT rows, condition_id is an empty string and market_id is null - filtering by either will not match conversion rows. Use neg_risk_market_id instead. Conversions are a market-level operation, not a per-outcome one.
April 21, 2026
NewImprovement

WebSocket: Conversion Events & Pending Trade Gating

New conversion event type on the activity channelV2 NegRisk “No” position conversions are now streamed as a new conversion event on the activity channel. Includes neg_risk_event_id (NegRiskAdapter marketId) and index_set (uint256 bitmap of converted question indices). See Activity Events.
Two things to be aware of - neither affects most clients:
  • ActivityAlert.condition_id is null only for the new conversion event type. Clients with strict typed generators (condition_id: string) should widen to string | null if they want to consume conversion events. Clients that filter by event_type in {"split", "merge", "redeem"} are unaffected.
  • Pending trade events (filters.status: "all" or "pending") are now gated to Dev+ plans. Free-tier clients that don’t request pending (default "confirmed") continue to work unchanged.
April 20, 2026
Improvement

WebSocket: Token IDs on condition_prepared

The condition_prepared lifecycle event now includes derived token IDs for binary markets (outcome_slot_count === 2) in the tokens array. Previously clients had to query Gamma or CLOB after receiving the event - now token IDs are available immediately from the WebSocket payload.
  • Binary markets: tokens: [{ token_id, label: "Yes" }, { token_id, label: "No" }] - derived from condition_id + is_neg_risk using the CTF Gnosis formula.
  • Non-binary markets: tokens: null (unchanged).
  • Labels are placeholders - resolve canonical outcome labels from Gamma/CLOB if needed.
April 19, 2026
NewImprovement

WebSocket: Polymarket V2 Support

The WebSocket service now handles Polymarket V2 contracts alongside V1. Fully backwards-compatible - existing clients require zero code changes. See the V2 Migration Guide for details.Additive changes:
  • New version field (1 or 2) on trade, activity, and lifecycle events
  • New builder and metadata fields on V2 order_filled events
  • New collateral channel for pUSD deposit/withdrawal events (polyusd_wrapped / polyusd_unwrapped)
  • New condition_prepared event type on the lifecycle channel (covers V1 + V2 market creation)
Breaking for token discovery: V2 exchanges no longer emit TokenRegistered. Clients using token_registered as a “new market” signal should switch to condition_prepared to cover both V1 and V2 markets.
April 12, 2026
Improvement

Candlesticks: New Intervals & Auto Mode

The candlestick endpoint now supports 5-minute and 15-minute intervals, plus an auto mode (interval=0) that picks the best interval based on your time range. Auto is now the default.The response also includes first_trade_ts and last_trade_ts fields - the timestamps of the first and last trades in the market.
IntervalValueMax Range
Auto0 (default)Best fit for your range
1m17 days
5m57 days
15m1530 days
1h6030 days
1d1440Unlimited (all-time)
April 7, 2026
Improvement

Universal Predexon IDs on All List Market Endpoints

predexon_id is now included in outcome objects across all five list market endpoints: Polymarket, Kalshi, Opinion, Limitless, and Predict.Fun. All five endpoints also support a predexon_id query parameter to filter markets by outcome ID.A Predexon ID is a stable, deterministic identifier for each tradeable outcome (px- followed by a 12-character base32 hash), consistent across all venues.
April 6, 2026
NewDeprecatedImprovement

Wallet Positions: Per-Position Net Fees

New Field: net_fees_usd

The PositionDetails schema now includes net_fees_usd - net taker fees charged for each individual position (charged minus refunded, in USD). Previously, fee data was only available at the wallet summary level.

fees_refunded Deprecated

The fees_refunded field now always returns 0 across all schemas. Refunds are already netted into fees_paid, making the separate field redundant.
SchemaField
PositionsSummaryfees_refunded
AllTimeMetricsfees_refunded
WindowMetricsfees_refunded
CohortStatsavg_fees_refunded, total_fees_refunded
WalletPnLResponsefees_refunded

Candlesticks: All-Time Range for Daily Interval

The 1d candlestick interval no longer has a range limit. Omit start_time and end_time to fetch the full history.
IntervalMax Range
1m7 days
1h30 days
1dUnlimited (all-time)
April 4, 2026
New

WebSocket: Oracle Channel

New Channel: oracle

Real-time UMA oracle resolution events for Polymarket markets - proposals, settlements, disputes, and resets.
  • Subscribe by condition_ids or market_slugs. Wildcard (["*"]) supported.
  • Event types: proposal, settled, dispute, reset.
  • Enrichment fields: title, market_slug, image, outcomes, tokens, is_neg_risk.
April 3, 2026
New

WebSocket: Orderbook Channel

New Channel: orderbook

Real-time L2 orderbook data from Polymarket’s CLOB - snapshots, price changes, and last trades.
  • Subscribe by token_ids, condition_ids, or market_slugs. Wildcard (["*"]) supported.
  • Targeted subscriptions deliver individual events. Wildcard delivers 250ms batched events with price-level conflation.
  • Event types: book_snapshot, price_change, last_trade, tick_size_change, snapshots_done, event_batch, resync.
March 28, 2026
New

New Endpoints: Opinion, Limitless, Predict.Fun Markets

Opinion

List Opinion markets with filtering, sorting, and event grouping.

Limitless

List Limitless markets with filtering, sorting, and trade type filter.

Predict.Fun

List Predict.Fun markets with filtering, sorting, and event grouping.
All three support status filtering, text search, cursor pagination, and platform-specific filters.
March 23, 2026
Improvement

Smart Activity: Market Status Filter

GET /v2/polymarket/markets/smart-activity now supports an optional status query parameter.
ValueDescription
openCurrently tradable markets only
closedResolved/settled markets only
(omitted)All markets (default)
March 15, 2026
New

New Endpoints: Cross-Platform Orderbooks

Limitless

Historical orderbook snapshots for Limitless.

Opinion

Historical orderbook snapshots for Opinion.

Predict.Fun

Historical orderbook snapshots for Predict.Fun.
All return YES-side orderbook data with cursor pagination. Timestamps in milliseconds.
Kalshi data gap: Orderbook data unavailable between March 12 08:00 UTC and March 14 18:10 UTC due to an upstream API format change.
March 7, 2026
New

WebSocket: Pending Trades Channel

New Channel: pending-trades

Detect trade events from the Polygon mempool 3–5 seconds before on-chain confirmation.
February 20, 2026
Improvement

WebSocket: New Trade Event Fields

The order_filled event on the trades channel now includes four new fields:
FieldTypeDescription
outcome_indexnumber | null0 = first outcome (Yes/Over/Up), 1 = second (No/Under/Down)
complement_token_idstring | nullToken ID of the opposite outcome
complement_token_labelstring | nullLabel of the opposite outcome
is_neg_riskboolean | nulltrue for neg-risk markets
All fields are additive and nullable - existing clients are unaffected.
February 18, 2026
Improvement

List Markets: Token ID Filter

GET /v2/polymarket/markets now supports a token_id query parameter (up to 50 IDs).

Crypto Up/Down: 5-Minute Timeframe

GET /v2/polymarket/crypto-updown now supports 5m as a timeframe filter.
February 17, 2026
New

New Endpoint: Batch Wallet Profiles

Batch Wallet Profiles

GET /v2/polymarket/wallets/profiles - fetch up to 20 wallet profiles in a single request via comma-separated addresses.
February 10, 2026
NewImprovement

Total PnL & Rolling Window Metrics

Total PnL

Total PnL (realized + unrealized - net fees) is now available across all analytics, leaderboard, smart money, and wallet endpoints.
Rolling total PnL accuracy timeline:
  • All-time: accurate immediately (February 10, 2026)
  • 1-day rolling: fully accurate February 11, 2026
  • 7-day rolling: fully accurate February 17, 2026
  • 30-day rolling: fully accurate March 12, 2026
EndpointNew Parameters
GET /v2/polymarket/leaderboardmin_total_pnl, max_total_pnl, max_volume, max_trades, max_roi, max_profit_factor, max_win_rate, max_avg_trade_usd, max_wallet_age_days
GET /v2/polymarket/leaderboard/market/{condition_id}min_total_pnl, max_total_pnl, max_trades, max_volume
GET /v2/polymarket/wallets/filtermin_total_pnl, max_total_pnl
GET /v2/polymarket/markets/smart-activitymin_total_pnl
GET /v2/polymarket/market/{condition_id}/smart-moneymin_total_pnl
SchemaChange
WindowMetricsAdded total_pnl field
LeaderboardEntryAdded total_pnl and first_trade_at; total_pnl available as sort option
SmartActivityMarketAdded smart_total_pnl; available as sort option
SmartMoneyPositioningAdded total_smart_total_pnl
GET /v2/polymarket/positionsDefault sort changed from desc to asc
February 8, 2026
New

New Endpoints

Bulk Positions

Bulk position fetching with block/timestamp filtering and cursor pagination.

Wallet Volume Chart

Per-wallet volume chart with BUY/SELL breakdown by period.

Top Holders

Top holders for a market ranked by position size.
SchemaChange
GET /v2/polymarket/markets/smart-activitymin_realized_pnl threshold increased 1K1K → 5K
GET /v2/binance/candles/{symbol}start_time and end_time now optional
PositionDetailsAdded total_shares_bought field
WalletProfileResponseAdded total_pnl and unrealized_pnl fields
February 4, 2026
NewBreaking Change

API v2 Launch

API v2

14 new endpoints, improved pagination, and expanded analytics. v1 remains fully supported.
Base path: /v2/ (e.g., https://api.predexon.com/v2/polymarket/markets)

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.
CategoryEndpointDescription
BinanceGET /v2/binance/ticks/{symbol}Raw book ticker data at microsecond granularity
BinanceGET /v2/binance/candles/{symbol}OHLCV candles from book ticker mid-prices (1s–1d)
Smart MoneyGET /v2/polymarket/markets/smart-activityMarkets ranked by smart wallet activity
Smart MoneyGET /v2/polymarket/market/{condition_id}/smart-moneySmart money positioning for a market
AnalyticsGET /v2/polymarket/leaderboardGlobal wallet leaderboard (22 filter/sort params)
AnalyticsGET /v2/polymarket/leaderboard/market/{condition_id}Per-market leaderboard
AnalyticsGET /v2/polymarket/cohorts/statsAggregate stats for wallet cohorts
AnalyticsGET /v2/polymarket/wallets/filterFilter wallets by market participation and performance
WalletsGET /v2/polymarket/wallet/{wallet}Full wallet profile with metrics across all windows
WalletsGET /v2/polymarket/wallet/{wallet}/marketsMarkets a wallet has traded
WalletsGET /v2/polymarket/wallet/{wallet}/similarFind wallets with similar trading patterns
MarketsGET /v2/polymarket/eventsList events with grouped markets
MarketsGET /v2/polymarket/crypto-updownCrypto up/down prediction markets
MarketsGET /v2/polymarket/volume-chart/{condition_id}Per-period volume breakdown
Fee refund events - the trades channel now delivers order_filled and fee_refund event types. Correlate refunds to trades via order_hash.Plan tiers restructured (Free/Pro/Desk → Free/Dev/Pro/Enterprise):
LimitFreeDevProEnterprise
WebSocket accessNoYesYesYes
Subscriptions / connection-10100Custom
Items / subscription-10500Custom
Total items-10050,000Custom
Wildcard-No2 / channelYes
Priority routing-NoNoYes
Wildcard rules: tracked per-channel, cannot mix wildcard and regular subs on same channel, Pro allows 2 wildcard connections per channel.Filter restrictions: market_slugs only on trades channel, users not on lifecycle channel. All channels support condition_ids and ["*"].New error code: RATE_LIMIT. Keepalive: 30s ping, 60s pong timeout, 2min idle timeout, 1MB drop / 4MB disconnect buffer limits.
These changes only affect v2 endpoints. v1 endpoints remain unchanged.
Path parameter renamed: {wallet_address}{wallet} on all wallet endpoints.Pagination: switched from offset to cursor-based pagination_key:
EndpointChange
/v2/polymarket/tradesoffsetpagination_key
/v2/dflow/tradesoffsetpagination_key
/v2/kalshi/marketsoffsetpagination_key
/v2/kalshi/tradesoffsetpagination_key
Parameter renames: userwallet on /v2/polymarket/trades and /v2/polymarket/activity.Removed parameters: token_id from /v2/polymarket/markets (use condition_id), match_type from /v2/matching-markets/pairs.
EndpointNew Parameters
/v2/polymarket/marketsmin_volume_1d, min_volume_7d, min_volume_30d, min_trades_1d, min_trades_7d, min_trades_30d
/v2/polymarket/tradesmin_total, wallet
/v2/polymarket/activitysort_by, wallet
January 19, 2026
Improvement

Matching Markets: Enhanced Filtering

New query parameters and response fields for cross-platform market matching.
ChangeDetails
New query paramspolymarket_condition_id, polymarket_market_id, match_type (exact, related, all)
New response fieldscondition_id, market_id for Polymarket markets
Pairs endpointNow includes match_type field per pair
January 16, 2026
New

Trading API

Trading API

Place orders, view positions, check balances, and redeem resolved positions on Polymarket and Kalshi.
  • POST /api/users/{userId}/orders - Place buy or sell orders
  • GET /api/users/{userId}/positions - Get current positions with PnL
  • GET /api/users/{userId}/balance - Get available balances
  • POST /api/users/{userId}/redeem - Redeem resolved positions
January 15, 2026
Improvement

Schema Updates

EndpointChange
/v1/kalshi/marketsAdded yes_subtitle and no_subtitle fields
/v1/dflow/wallet/positions/{wallet_address}Added yes_subtitle, no_subtitle, market_title, outcome, status, total_cost_basis, total_qty_bought, total_qty_sold, first_trade_at, last_trade_at
January 13, 2026
NewBreaking Change

Dflow Support

New Platform: Dflow

Three new endpoints for the Dflow prediction market platform.
  • GET /v1/dflow/trades - Trade history for a wallet
  • GET /v1/dflow/wallet/positions/{wallet_address} - Positions with cost basis and PnL
  • GET /v1/dflow/wallet/pnl/{wallet_address} - Realized PnL history

Breaking Change: Candlesticks Response

The /v1/polymarket/candlesticks/{condition_id} response structure changed from nested [data, metadata] tuples to a flat structure:
{
  "condition_id": "0x1234...",
  "candlesticks": [
    {
      "end_period_ts": 1704070800,
      "price": { "open": 0.55, "high": 0.57, ... },
      "volume": 125000.50,
      "trades_count": 847
    }
  ]
}
Schema updates: CandlestickData now fully typed, CandlesticksResponse has condition_id field, new PriceData schema with dollar-formatted strings.