parlays

Turn 2 or more legs, each a River market id with the side it must resolve to, into a tradable combo market and return its river_id for POST /v1/rfqs. Polymarket US creates (or fetches) the combo instrument under your credentials, up to 15 legs. Kalshi finds a collection that admits every leg and materializes the parlay there. Either way the combo pays out only if every leg resolves to its side.

Strategy:

  1. For each leg, query GET /multivariate_event_collections?associated_event_ticker=<event> to enumerate every collection containing that leg's event.
  2. Intersect the collection sets across all legs — these are the collections that can host the parlay.
  3. Drop collections that don't admit the requested leg count (size_min <= len(legs) <= size_max), and any closed collections.
  4. Pick the narrowest surviving collection (smallest associated_events count) — narrower collections usually have denser quoter coverage.
  5. Materialize the combo market in that collection and return the new market_ticker plus the chosen collection_ticker.

422 if no collection covers all legs — response includes the per-leg collection lists so the caller can show the user where the legs DO live.

post/v1/parlays/build

Request

  • Base URL
    https://api.rivermarkets.com (the document declares no server; this is the origin it was published from)
  • URL
    https://api.rivermarkets.com/v1/parlays/build
  • Auth
    none declared

Request body

subaccount_idstring uuid required

Subaccount to build under

exchangestring required

KALSHI or POLYMARKET_US

Response

Successful Response

river_idinteger required

Changes