Skip to main content
Canonical reference: Combo Redemptions This recipe turns a combo lifecycle record into a direct before-and-after answer. Polymarket’s public combo activity API identifies a REDEEM or COMPRESS operation and the legs on the reported combo. polynode additionally returns the source combo, removed legs, remaining legs, exact leg counts, and destination holding in the same row.
To locate a post-resolution two-out-of-three transition from either side of its lineage, pass the original or reduced combo condition as condition_id. Use event_kind=Extracted separately for structural reduction without redemption evidence.

What happened in the redemption?

Use the count fields for the compact answer, then inspect the removed and remaining legs only when you need market details:
  • 3_to_0 with redemption_scope=full means the whole three-leg combo was redeemed.
  • 3_to_2 with redemption_scope=partial means one leg was removed and a two-leg combo remained.
  • remaining_combo.still_held tells you whether the wallet currently has a positive destination-combo balance when that balance is available.
  • market_token_id is the standard token to pass to GET /v3/markets/{token_id}/price or GET /v1/orderbook/{token_id}.
For a UI, redemption_scope plus leg_transition is usually enough to display “full 3-leg redemption” or “5 legs became 1.” For analytics or automation, use source_position_id, destination_position_id, and the changed-leg arrays so no transition has to be inferred from titles or current position state. To reconstruct multiple steps, fetch the wallet’s rows and follow each row’s source_position_id into a later row’s destination_position_id. This keeps each API item scoped to one redemption while still supporting lifecycle analysis across calls.