Dflow endpoints removed
The Dflow venue is deprecated. The three Data API endpoints below have been removed and now return404. The corresponding MCP tools have been removed as well.| Endpoint | MCP tool |
|---|---|
GET /v2/dflow/trades | get_dflow_trades |
GET /v2/dflow/wallet/positions/{wallet} | get_dflow_positions |
GET /v2/dflow/wallet/pnl/{wallet} | get_dflow_pnl |
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.| Endpoint | Parameter | Before | Now |
|---|---|---|---|
GET /v2/markets, GET /v2/markets/listings | status | no default (all statuses) | defaults to open — also accepts closed, resolved, all |
GET /v2/markets, GET /v2/markets/listings | limit | default 20 | default 50 (max 200) |
GET /v2/markets, GET /v2/markets/listings | search | any length | must be 3–200 characters |
GET /v2/polymarket/wallet/positions/{wallet} | include_closed | default true | default false — pass include_closed=true for closed/zero-balance positions |
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.
POST /api/accounts/{accountId}/router/quote. Pre-trade quote: project the best fill across every matched venue.POST /api/accounts/{accountId}/router/orders. Place a routed order.GET /api/accounts/{accountId}/router/orders. List routed orders.GET /api/accounts/{accountId}/router/orders/{routerOrderId}. Get a routed order.DELETE /api/accounts/{accountId}/router/orders/{routerOrderId}. Cancel a routed order.
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
502to400in the OpenAPI spec to match shipped behavior. - Deposit-wallet behavior synced with deployed router.
Connected Wallets: Async Compute + Larger Clusters
The Connected Wallets endpoint now returns either200 or 202 depending on cache state - clients must handle both.reason values on 202: miss, stale, forced, another_pod_computing (cross-pod Redis lock).Other changes:limitupper bound bumped 200 → 1000. Up to 1000 siblings persisted per seed.- Cluster cache TTL is now 24 hours.
min_hopsis now described as1 = direct neighbor(previously0 = direct).- Richer
evidencedocumentation:hops,bidirectional,direct_flow,shared_peers,same_signer,same_x_username,shared_first_funder,is_verified_trader,class.
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”).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, ortoken_id) and returns exact canonical equivalents when available./v2/matching-markets/pairs: returnsPREDICTandOPINIONvenue blocks by default when canonical equivalents exist.venuefiltering now supportspolymarket,kalshi,limitless,predict, andopinion.
Predict.fun and Opinion matching is powered by the canonical matching graph. Existing Polymarket, Kalshi, and Limitless response fields remain backward-compatible.
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.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.Limitless: CLOB Open Interest
Limitless CLOB markets now returnopen_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.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.
- New
venue: "hyperliquid"accepted on every/api/accounts/*endpoint (place order, cancel, positions, balance, redeem, withdraw, enable). - Markets are identified by
assetIdin themarketbag - 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(notamount) - fills as many shares as possible at the best ask up to the requested quantity.
- 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;
/balancereturnsasset: "usdh".
- Deliver USDC on Arbitrum to any address. 1 USDC fee is deducted before delivery - recipient receives
amount - 1. Settlement takes ~3-4 minutes.
POST /api/accounts/{accountId}/enable {"venue": "hyperliquid"} to provision a wallet.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.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).takeris the real taker user address. This is what you want by default.role: "taker"- synthetic taker-aggregate emission (one permatchOrderstx, summing across all makers).takerequals the exchange contract address.
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.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) or2(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.
builder query parameter to filter fills attributed to a specific builder tag.Cross-Platform Matching: Limitless Support
Find Matching Markets and Get Matched Pairs now cover Limitless alongside Polymarket and Kalshi.Changes:/v2/matching-markets: newlimitless_slugquery param - pass a Limitless slug to find equivalent markets on Polymarket or Kalshi./v2/matching-markets/pairs: newvenuefilter - restrict results to a specific venue pairing.MatchedPairschema:kalshiblock is now optional, and a new optionallimitlessblock (usingLimitlessPairInfo) 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.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.
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’sEvent.negRiskMarketID). Populated only onCONVERTrows.index_set- NegRisk indexSet bitmask (decimal string) of which outcomes were involved. Populated only onCONVERTrows.market_idis now nullable - it’snullonCONVERTrows.
WebSocket: Conversion Events & Pending Trade Gating
Newconversion 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_idisnullonly for the newconversionevent type. Clients with strict typed generators (condition_id: string) should widen tostring | nullif they want to consume conversion events. Clients that filter byevent_typein{"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.
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 fromcondition_id+is_neg_riskusing the CTF Gnosis formula. - Non-binary markets:
tokens: null(unchanged). - Labels are placeholders - resolve canonical outcome labels from Gamma/CLOB if needed.
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
versionfield (1or2) on trade, activity, and lifecycle events - New
builderandmetadatafields on V2order_filledevents - New
collateralchannel for pUSD deposit/withdrawal events (polyusd_wrapped/polyusd_unwrapped) - New
condition_preparedevent type on the lifecycle channel (covers V1 + V2 market creation)
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.| Interval | Value | Max Range |
|---|---|---|
| Auto | 0 (default) | Best fit for your range |
| 1m | 1 | 7 days |
| 5m | 5 | 7 days |
| 15m | 15 | 30 days |
| 1h | 60 | 30 days |
| 1d | 1440 | Unlimited (all-time) |
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.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.Affected schemas
Affected schemas
| Schema | Field |
|---|---|
PositionsSummary | fees_refunded |
AllTimeMetrics | fees_refunded |
WindowMetrics | fees_refunded |
CohortStats | avg_fees_refunded, total_fees_refunded |
WalletPnLResponse | fees_refunded |
Candlesticks: All-Time Range for Daily Interval
The1d candlestick interval no longer has a range limit. Omit start_time and end_time to fetch the full history.| Interval | Max Range |
|---|---|
1m | 7 days |
1h | 30 days |
1d | Unlimited (all-time) |
WebSocket: Oracle Channel
New Channel: oracle
Real-time UMA oracle resolution events for Polymarket markets - proposals, settlements, disputes, and resets.
- Subscribe by
condition_idsormarket_slugs. Wildcard (["*"]) supported. - Event types:
proposal,settled,dispute,reset. - Enrichment fields:
title,market_slug,image,outcomes,tokens,is_neg_risk.
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, ormarket_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.
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.
Smart Activity: Market Status Filter
GET /v2/polymarket/markets/smart-activity now supports an optional status query parameter.| Value | Description |
|---|---|
open | Currently tradable markets only |
closed | Resolved/settled markets only |
| (omitted) | All markets (default) |
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.
WebSocket: Pending Trades Channel
New Channel: pending-trades
Detect trade events from the Polygon mempool 3–5 seconds before on-chain confirmation.
WebSocket: New Trade Event Fields
Theorder_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 (No/Under/Down) |
complement_token_id | string | null | Token ID of the opposite outcome |
complement_token_label | string | null | Label of the opposite outcome |
is_neg_risk | boolean | null | true for neg-risk markets |
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.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.New filter parameters
New filter parameters
| Endpoint | New Parameters |
|---|---|
GET /v2/polymarket/leaderboard | min_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/filter | min_total_pnl, max_total_pnl |
GET /v2/polymarket/markets/smart-activity | min_total_pnl |
GET /v2/polymarket/market/{condition_id}/smart-money | min_total_pnl |
Schema changes
Schema changes
| Schema | Change |
|---|---|
WindowMetrics | Added total_pnl field |
LeaderboardEntry | Added total_pnl and first_trade_at; total_pnl available as sort option |
SmartActivityMarket | Added smart_total_pnl; available as sort option |
SmartMoneyPositioning | Added total_smart_total_pnl |
GET /v2/polymarket/positions | Default sort changed from desc to asc |
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.
Schema changes
Schema changes
| Schema | Change |
|---|---|
GET /v2/polymarket/markets/smart-activity | min_realized_pnl threshold increased 5K |
GET /v2/binance/candles/{symbol} | start_time and end_time now optional |
PositionDetails | Added total_shares_bought field |
WalletProfileResponse | Added total_pnl and unrealized_pnl fields |
API v2 Launch
API v2
14 new endpoints, improved pagination, and expanded analytics. v1 remains fully supported.
/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.
All new endpoints
All new endpoints
| Category | Endpoint | Description |
|---|---|---|
| Binance | GET /v2/binance/ticks/{symbol} | Raw book ticker data at microsecond granularity |
| Binance | GET /v2/binance/candles/{symbol} | OHLCV candles from book ticker mid-prices (1s–1d) |
| 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 market |
| Analytics | GET /v2/polymarket/leaderboard | Global wallet leaderboard (22 filter/sort params) |
| 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 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 |
WebSocket updates
WebSocket updates
Fee refund events - the trades channel now delivers
Wildcard rules: tracked per-channel, cannot mix wildcard and regular subs on same channel, Pro allows 2 wildcard connections per channel.Filter restrictions:
order_filled and fee_refund event types. 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 / connection | - | 10 | 100 | Custom |
| Items / subscription | - | 10 | 500 | Custom |
| Total items | - | 100 | 50,000 | Custom |
| Wildcard | - | No | 2 / channel | Yes |
| Priority routing | - | No | No | Yes |
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.Breaking changes (v1 → v2)
Breaking changes (v1 → v2)
Path parameter renamed:
Parameter renames:
{wallet_address} → {wallet} on all wallet endpoints.Pagination: switched from offset to cursor-based pagination_key:| Endpoint | Change |
|---|---|
/v2/polymarket/trades | offset → pagination_key |
/v2/dflow/trades | offset → pagination_key |
/v2/kalshi/markets | offset → pagination_key |
/v2/kalshi/trades | offset → pagination_key |
user → wallet 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.New filter parameters
New filter parameters
| Endpoint | New Parameters |
|---|---|
/v2/polymarket/markets | min_volume_1d, min_volume_7d, min_volume_30d, min_trades_1d, min_trades_7d, min_trades_30d |
/v2/polymarket/trades | min_total, wallet |
/v2/polymarket/activity | sort_by, wallet |
Matching Markets: Enhanced Filtering
New query parameters and response fields for cross-platform market matching.| Change | Details |
|---|---|
| New query params | polymarket_condition_id, polymarket_market_id, match_type (exact, related, all) |
| New response fields | condition_id, market_id for Polymarket markets |
| Pairs endpoint | Now includes match_type field per pair |
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 ordersGET /api/users/{userId}/positions- Get current positions with PnLGET /api/users/{userId}/balance- Get available balancesPOST /api/users/{userId}/redeem- Redeem resolved positions
Schema Updates
| Endpoint | Change |
|---|---|
/v1/kalshi/markets | Added 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 |
Dflow Support
New Platform: Dflow
Three new endpoints for the Dflow prediction market platform.
GET /v1/dflow/trades- Trade history for a walletGET /v1/dflow/wallet/positions/{wallet_address}- Positions with cost basis and PnLGET /v1/dflow/wallet/pnl/{wallet_address}- Realized PnL history
Breaking Change: Candlesticks Response
Schema updates:CandlestickData now fully typed, CandlesticksResponse has condition_id field, new PriceData schema with dollar-formatted strings.