# River Markets - [Introduction](https://docs.rivermarkets.com/introduction.md): Unified prime brokerage for prediction markets - [Quickstart](https://docs.rivermarkets.com/quickstart.md): Get up and running with River Markets in 5 minutes - [River IDs](https://docs.rivermarkets.com/concepts/river-ids.md): Every market listing is assigned a unique **River ID** — a single numeric identifier format used across the entire platform. - [Subaccounts](https://docs.rivermarkets.com/concepts/subaccounts.md): Subaccounts let you organize your trading activity into separate containers.: - [Orders](https://docs.rivermarkets.com/concepts/orders.md): Understanding order lifecycle and statuses on River Markets - [Order Types](https://docs.rivermarkets.com/concepts/order-types.md): Complete guide to all order types available on River Markets - [Supported Exchanges](https://docs.rivermarkets.com/concepts/exchanges.md): Exchanges available through River Markets - [Security](https://docs.rivermarkets.com/concepts/security.md): How River Markets protects your account, credentials, and data. - [API Overview](https://docs.rivermarkets.com/api-reference/overview.md): River Markets REST API - [Authentication](https://docs.rivermarkets.com/api-reference/authentication.md): How to authenticate with the River Markets API - [Search Markets](https://docs.rivermarkets.com/api-reference/markets/search-markets.md): Search and browse markets across all exchanges. - [Lookup Markets](https://docs.rivermarkets.com/api-reference/markets/lookup-markets.md): Batch lookup markets by river_ids. - [Match Market](https://docs.rivermarkets.com/api-reference/markets/match-market.md): Exact match a single market by Kalshi ticker or Polymarket slug. Supply exactly one. - [Match Markets Batch](https://docs.rivermarkets.com/api-reference/markets/match-markets-batch.md): Batch-resolve many markets by exact Kalshi ticker and/or Polymarket slug in one request. - [Resolve Combos](https://docs.rivermarkets.com/api-reference/markets/resolve-combos.md): Resolve combo markets (Kalshi MVE, Polymarket US ``caoc-``) into their constituent legs. - [Lookup Fee Schedules](https://docs.rivermarkets.com/api-reference/fees/lookup-fee-schedules.md): Return normalized exchange fee schedules for up to 1,000 instruments. - [Create Order](https://docs.rivermarkets.com/api-reference/orders/create-order.md): Place a new order. - [Create Order Batch](https://docs.rivermarkets.com/api-reference/orders/create-order-batch.md): Place up to 10 orders in one request. - [List Orders](https://docs.rivermarkets.com/api-reference/orders/list-orders.md): List orders with optional filters. - [Get Order](https://docs.rivermarkets.com/api-reference/orders/get-order.md): Get a single order by ID with its fills. - [Get Order Queue Position](https://docs.rivermarkets.com/api-reference/orders/get-order-queue-position.md): Get the best (minimum) queue position across all exchange orders backing this river order. - [Edit Order](https://docs.rivermarkets.com/api-reference/orders/edit-order.md): Edit (amend) a resting simple limit order. - [Cancel Order](https://docs.rivermarkets.com/api-reference/orders/cancel-order.md): Cancel an existing order. - [Cancel All Orders](https://docs.rivermarkets.com/api-reference/orders/cancel-all-orders.md): Cancel all open orders for a subaccount. - [Create Complex Order](https://docs.rivermarkets.com/api-reference/complex-orders/create-complex-order.md): Create a new complex order (conditional or iceberg). - [List Complex Orders](https://docs.rivermarkets.com/api-reference/complex-orders/list-complex-orders.md): List complex orders (conditional and iceberg) with optional filters. - [Get Complex Order](https://docs.rivermarkets.com/api-reference/complex-orders/get-complex-order.md): Get a single complex order by ID (conditional or iceberg). - [Cancel Complex Order](https://docs.rivermarkets.com/api-reference/complex-orders/cancel-complex-order.md): Cancel a single complex order (conditional or iceberg). - [Cancel All Complex Orders](https://docs.rivermarkets.com/api-reference/complex-orders/cancel-all-complex-orders.md): Cancel all cancellable complex orders (conditional and iceberg) for a subaccount. - [Build Parlay](https://docs.rivermarkets.com/api-reference/parlays/build-parlay.md): 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 mat… - [Create Rfq](https://docs.rivermarkets.com/api-reference/rfqs/create-rfq.md): Post an RFQ on a River market and get its River id, the handle for the other RFQ calls. Makers answer with quotes; nothing trades until you accept one. Kalshi RFQs are sized in contracts with an optional target cost; Polymarket US RFQs in contracts or in dollars. Combos come from POST /v1/parlays/bu… - [Get Rfq](https://docs.rivermarkets.com/api-reference/rfqs/get-rfq.md): One of your RFQs by its River id: status, size, market and legs. - [List Quotes For Rfq](https://docs.rivermarkets.com/api-reference/rfqs/list-quotes-for-rfq.md): The quotes makers have posted on your RFQ, in YES space. Poll this while the RFQ is open. On Polymarket US the answer is served from a 2 second cache: the exchange allows a retail key 10 requests per 10 seconds across all RFQ endpoints. - [Accept Quote](https://docs.rivermarkets.com/api-reference/rfqs/accept-quote.md): Hit one side of a quote on your RFQ. This trades: the accept becomes a River order you track like any other (resting while the maker confirms, then executed or cancelled). Pass the price and size you saw so a replaced quote answers 409 instead of trading at a price you never saw. The maker has a sho… - [Cancel Rfq](https://docs.rivermarkets.com/api-reference/rfqs/cancel-rfq.md): Withdraw your RFQ before accepting a quote. Open quotes on it die with it. - [List Maker Quotes](https://docs.rivermarkets.com/api-reference/rfqs/list-maker-quotes.md): Live (non-terminal) maker quotes for a subaccount. - [Create Maker Quote](https://docs.rivermarkets.com/api-reference/rfqs/create-maker-quote.md): Quote an RFQ from the /v1/ws/rfqs stream as a maker. The RFQ's exchange comes from the stream's store; the request is the same on every exchange. - [Confirm Maker Quote](https://docs.rivermarkets.com/api-reference/rfqs/confirm-maker-quote.md): Confirm an accepted quote. - [Cancel Maker Quote](https://docs.rivermarkets.com/api-reference/rfqs/cancel-maker-quote.md): Cancel an open quote, or refuse one that was accepted but not yet confirmed — the same venue call either way. - [Create Subaccount](https://docs.rivermarkets.com/api-reference/subaccounts/create-subaccount.md): Create a new trading subaccount. Any active org member can create one; account_type is pinned to non_custodial server-side. A non-admin creator gets an explicit admin grant on the new subaccount (org admins hold derived access on every subaccount and never get grant rows). - [List Subaccounts](https://docs.rivermarkets.com/api-reference/subaccounts/list-subaccounts.md): Enumerate all trading subaccounts accessible to the user. - [Get Subaccount](https://docs.rivermarkets.com/api-reference/subaccounts/get-subaccount.md): Fetch configuration and metadata for a specific subaccount. - [Update Subaccount](https://docs.rivermarkets.com/api-reference/subaccounts/update-subaccount.md): Update an existing subaccount. Requires user:manage on the subaccount. - [Delete Subaccount](https://docs.rivermarkets.com/api-reference/subaccounts/delete-subaccount.md): Delete a subaccount. Requires user:manage on the subaccount. Custodial subaccounts cannot be deleted. - [Get Exchange Balance](https://docs.rivermarkets.com/api-reference/balance/get-exchange-balance.md): Return live exchange balances (Kalshi, Polymarket) for a non-custodial subaccount. - [Get Positions](https://docs.rivermarkets.com/api-reference/positions/get-positions.md): Fetch positions for user's subaccounts. - [Get Fills](https://docs.rivermarkets.com/api-reference/fills/get-fills.md): Fetch fills/trades for the user's subaccounts. - [List Fair Values](https://docs.rivermarkets.com/api-reference/fair-values/list-fair-values.md): List the caller's fair values, optionally scoped to one subaccount and/or instruments. - [Set Fair Values](https://docs.rivermarkets.com/api-reference/fair-values/set-fair-values.md): Set fair values for instruments on a subaccount (insert-or-overwrite, atomic). - [Delete Fair Value](https://docs.rivermarkets.com/api-reference/fair-values/delete-fair-value.md): Clear the fair value for an instrument on a subaccount. - [Get Orderbook](https://docs.rivermarkets.com/api-reference/orderbooks/get-orderbook.md): Get orderbook for a river_id. - [Get Prices](https://docs.rivermarkets.com/api-reference/prices/get-prices.md): Get price data for a market. Returns either candlestick OHLC data or simple price history based on the `type` parameter. The endpoint automatically determines the exchange and fetches data accordingly. - [Get Tradeprints](https://docs.rivermarkets.com/api-reference/tradeprints/get-tradeprints.md): Return the most recent trades for one or more markets. Markets whose trade history River has fully captured are served from River's own data; the rest are fetched from the exchange (concurrently, under a small semaphore so a long input list never fans out into a thundering herd) while a backfill of… - [Create Generic Asset](https://docs.rivermarkets.com/api-reference/generic-assets/create-generic-asset.md): Create a new user-owned generic asset (basket). - [List Generic Assets](https://docs.rivermarkets.com/api-reference/generic-assets/list-generic-assets.md): List generic assets visible to the caller (their own + platform-curated approved). - [Lookup Generic Assets](https://docs.rivermarkets.com/api-reference/generic-assets/lookup-generic-assets.md): Map river_ids to the generic asset each belongs to (visible assets only, platform preferred over own baskets). - [Get Generic Asset](https://docs.rivermarkets.com/api-reference/generic-assets/get-generic-asset.md): Fetch a single generic asset (own or public-approved) with its resolved member markets. - [Update Generic Asset](https://docs.rivermarkets.com/api-reference/generic-assets/update-generic-asset.md): Update a user-owned generic asset's name or description. Platform-curated assets cannot be edited via this route. - [Delete Generic Asset](https://docs.rivermarkets.com/api-reference/generic-assets/delete-generic-asset.md): Delete a user-owned generic asset (cascades to members). - [Add Generic Asset Members](https://docs.rivermarkets.com/api-reference/generic-assets/add-generic-asset-members.md): Add river_ids to a user-owned generic asset. - [Remove Generic Asset Members](https://docs.rivermarkets.com/api-reference/generic-assets/remove-generic-asset-members.md): Remove river_ids from a user-owned generic asset. - [Create Watchlist](https://docs.rivermarkets.com/api-reference/watchlists/create-watchlist.md): Create a new watchlist, optionally seeded with an ordered set of river_ids. - [List Watchlists](https://docs.rivermarkets.com/api-reference/watchlists/list-watchlists.md): List the caller's watchlists (optionally scoped to one subaccount), newest first. - [Get Watchlist](https://docs.rivermarkets.com/api-reference/watchlists/get-watchlist.md): Fetch a single watchlist with its ordered member markets. - [Update Watchlist](https://docs.rivermarkets.com/api-reference/watchlists/update-watchlist.md): Rename a watchlist or edit its description. - [Delete Watchlist](https://docs.rivermarkets.com/api-reference/watchlists/delete-watchlist.md): Delete a watchlist (cascades to its members). - [Add Watchlist Members](https://docs.rivermarkets.com/api-reference/watchlists/add-watchlist-members.md): Append river_ids to the end of a watchlist. - [Remove Watchlist Members](https://docs.rivermarkets.com/api-reference/watchlists/remove-watchlist-members.md): Remove river_ids from a watchlist. Remaining members keep their relative order. - [Reorder Watchlist Members](https://docs.rivermarkets.com/api-reference/watchlists/reorder-watchlist-members.md): Reorder a watchlist. The body is the full ordered river_id list; the server rewrites each member's position to match. Unknown river_ids are ignored; members omitted from the list are pushed to the end in their prior order. - [Authentication](https://docs.rivermarkets.com/ws-api-reference/authentication.md): How to authenticate with the River Markets WebSocket API - [Orderbooks](https://docs.rivermarkets.com/ws-api-reference/orderbooks.md): Subscribe to live orderbook updates for one or more markets over a single WebSocket connection. - [Tradeprints](https://docs.rivermarkets.com/ws-api-reference/tradeprints.md): Subscribe to the live trade tape (every print) for one or more markets over a single WebSocket connection. - [RFQs](https://docs.rivermarkets.com/ws-api-reference/rfqs.md): Stream every live RFQ river-natively with server-side filters, quote them as a maker, and follow your quotes' lifecycle on the same connection. - [Orders](https://docs.rivermarkets.com/ws-api-reference/orders.md): Stream live order-status updates for one subaccount over a single WebSocket connection. - [Fills](https://docs.rivermarkets.com/ws-api-reference/fills.md): Stream live fill (execution) events for one subaccount over a single WebSocket connection. - [Python SDK](https://docs.rivermarkets.com/sdk/python.md): Official Python SDK for the River Markets API - [Changelog](https://docs.rivermarkets.com/changelog.md): New features and improvements on River Markets ## OpenAPI Specs - [openapi](/openapi.json) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.