Skip to main content
The Combos API is supported on Polymarket. A combo bundles 2 to 10 YES outcome legs into a single position that pays out only if every selected market resolves in your favor. This page covers what is specific to Polymarket. For the full request and response reference, see Quote / Accept / Redeem.

Why use a combo

Placing separate orders across several markets leaves you holding several independent positions, each of which can be filled at a different time and price. A combo is priced and executed as one position, so you either get the whole parlay at a known price or you get nothing.

How pricing works

Combos use a Request-for-Quote model rather than the CLOB. When you request a quote, a real maker counterparty prices the blended position and returns a firm quote, not an estimated midpoint.
A quote is valid for roughly 8.5 seconds. Accept it before the expires_at timestamp or the API returns 410 QUOTE_EXPIRED. When a quote expires, request a fresh one rather than retrying the stale accept: the underlying markets may have moved and the maker needs to re-price.

Polymarket specifics

  • Legs are position token IDs. Each leg in leg_position_ids is a Polymarket YES outcome token id, the same identifier used as symbol on the Trade API.
  • Resolution is per leg. Every leg must resolve YES for the combo to pay out, and each leg settles through UMA resolution. A combo is only redeemable once all of its legs have settled.
  • Collateral is USDC, with notional_usd expressed in US dollars.

Scope requirement

Your API token must carry the trade.combos scope. A key without it is rejected with 403 Forbidden. See Authentication.