Skip to main content
Combos are Polymarket’s combinatorial positions: one position is defined by multiple market legs. PolyNode indexes those on-chain combo positions separately from standard CTF positions, then exposes them through dedicated combo endpoints and opt-in wallet aggregates. Use the dedicated combo endpoints when you want combo-only data. Use include_combos=true on supported wallet endpoints when you want the wallet-level response to include both standard market data and combo data.

Base URL

https://api.polynode.dev/v3

Dedicated combo endpoints

EndpointDescription
GET /v3/combos/marketsList observed combo markets with leg metadata
GET /v3/combos/activityList combo lifecycle activity for a market, condition, position, or wallet
GET /v3/wallets/{address}/combos/positionsCombo positions for one wallet
GET /v3/wallets/{address}/combos/tradesCombo trades for one wallet
GET /v3/wallets/{address}/combos/activityCombo lifecycle activity for one wallet
GET /v3/wallets/{address}/combos/summaryCombo-only P&L summary for one wallet

Additive wallet support

These wallet endpoints support include_combos=true:
EndpointBehavior
GET /v3/wallets/{address}Adds combo P&L/counts to the all-time wallet summary
GET /v3/wallets/{address}/pnlAdds combo P&L/counts to all-time wallet P&L
GET /v3/wallets/{address}/positionsAppends combo positions to the position list
GET /v3/wallets/{address}/tradesAdds a combo_trades branch alongside the standard trade list
If a wallet has no combo exposure, include_combos=true still returns 200 with the normal wallet response and a zero combo contribution or empty combo branch. Clients do not need to know ahead of time whether a wallet has traded combos.

Identifier notes

IdentifierDescription
combo_condition_idCombo condition ID. Returned as a hex string.
position_id / combo_position_idERC-1155 position ID for the combo leg or combo position. Returned as a string because it can exceed JavaScript integer precision.
legsArray of market legs that define the combo position. Legs may include market slug/title, event slug/title, outcome label, current price, and leg status when metadata is available.

P&L semantics

Combo P&L uses the same high-level model as standard Polymarket positions: weighted-average cost basis, realized P&L from closes/redeems/merges, and unrealized P&L for open balances when a current price is available. When a combo is redeemed, PolyNode settles the redeemed size against weighted-average entry basis. Fully redeemed winners return RESOLVED_WIN with zero open entry cost and realized P&L from the redemption payout; fully redeemed losers return RESOLVED_LOSS. Combo redemption activity is normalized to Polymarket’s public PositionRedeemed shape even when the on-chain path used the router or auto-redeemer. All aggregate P&L fields are returned as decimal USD numbers. Event-level combo amount fields use decimal strings such as "0.050750" for exact USDC-style display.