Combo

Buy a Polymarket combo (parlay) via the RFQ gateway

Runs the whole requester flow server-side in one call: creates the RFQ from your chosen leg position ids, accepts the best quote with a signed order, and returns the on-chain result. It is one call rather than two precisely to beat the quote expiry — there is no separate accept step. Set maxPriceCents. Without it you accept whatever blended price the maker returns. With it, a quote worse than your ceiling is refused and nothing trades (a 400). One-time collateral approval. Combos settle against Polymarket's v3 exchange, which ordinary trading never approves. The first execute transparently sets that approval — directly for an EOA, or through the Polymarket relayer for a Kairos deposit wallet. Imported smart-account wallets (Safe / imported Poly1271) cannot execute combos yet and get a 400 explaining so; quoting still works for them. Fees. The Kairos platform fee is resolved from your tier BEFORE the irreversible RFQ is submitted (a tier-lookup outage stops the trade rather than making it free), then accrued against the pUSD spent through the same ledger and sweep as ordinary fills. Auth & scope. Requires trade:execute for polymarket plus the service-token/CSRF/API-key mutation gate, which the API-key triple satisfies automatically.

post/combo/execute

Request

  • Base URL
    https://execution.kairos.trade
  • Auth
    API key in header X-Client-Id and API key in header X-Api-Key and API key in header X-Api-Secret

Request body

legPositionIdsstring[] required

The YES-outcome position id of each leg market. Minimum 2, maximum 10 legs.

notionalUsdnumber double required

USD notional to spend on the combo (e.g. 10.0 = $10). Must be finite and > 0, and large enough to round to a non-zero six-decimal amount.

maxPriceCentsinteger nullable

Reject the quote if the blended price exceeds this, in cents per share (e.g. 60 = $0.60). Strongly recommended — without it you accept whatever the maker quotes.

Example request

{
  "notionalUsd": 10,
  "maxPriceCents": 60
}

Response

The combo settled on-chain.

rfqIdstring required
quoteIdstring required
conditionIdstring nullable
yesPositionIdstring required

The combo's synthetic YES outcome position id.

blendedPriceE6string required

Blended maker price as a six-decimal fixed-point integer string (e.g. "16393" = 0.016393). NOT a decimal — divide by 1,000,000.

totalRequiredE6string required

pUSD spent, six-decimal fixed-point integer string.

statusstring required

The RFQ gateway's settlement status, passed through verbatim.

txHashstring nullable

Example response

{
  "blendedPriceE6": "16393"
}

Changes

No recorded changes to this operation across all 1 revision of this API.