---
title: "Get Complex Order"
method: GET
path: "/v1/complex-orders/{complex_order_id}"
tags: ["complex-orders"]
---

# Get Complex Order

`GET /v1/complex-orders/{complex_order_id}`

Get a single complex order by ID (conditional or iceberg).

## Path parameters

- `complex_order_id` string, uuid, required

## Response `200`

Successful Response

- ComplexOrderResponse — Schema for a complex order response (unified across all complex order types).
  - `complex_order_id` string, uuid, required — Unique complex order identifier
  - `complex_order_type` string, required — Complex order type: CONDITIONAL, TWAP, etc.
  - `complex_order_subtype` string, nullable — Complex order subtype: TP, SL, STOP, etc.
  - `subaccount_id` string, uuid, required — Subaccount the order belongs to
  - `river_id` integer, nullable — Instrument ID
  - `generic_asset_id` string, uuid, nullable — Generic asset basket ID
  - `status` string, required — Order status (interpretation depends on complex_order_type)
  - `created_at` string, required — Creation timestamp (UTC)
  - `updated_at` string, required — Last update timestamp (UTC)
  - `conditional_order` ConditionalOrderResponse — Response for a conditional order. Contains both the condition definition and the trigger order that gets placed when the condition is met. For TP/SL: the parent order fills → the conditional activates → the trigger order is placed. For STOP/REVERSE_STOP: stop_order_price is reached → the trigger order is placed.
    - `parent_river_order_id` string, uuid, nullable — Parent order ID that this conditional is attached to (for TP/SL)
    - `parent_complex_order_id` string, uuid, nullable — Parent complex order ID that this conditional is attached to (for chaining)
    - `conditional_order_type` string, nullable — Type of conditional order: TP (take profit), SL (stop loss), or STOP
    - `stop_order_price` number, nullable — Activation price for STOP conditional orders. The price at which the conditional triggers and places the trigger order.
    - `trigger_stop_order_price` number, nullable — Stop/reverse-stop price for the triggered order (SL or TP MARKET)
    - `trigger_order_type` string, nullable — Order type of the triggered order: LIMIT or MARKET
    - `trigger_order_qty` number, nullable — Quantity of the triggered order
    - `trigger_order_limit_price` number, nullable — Limit price of the triggered order (if LIMIT)
    - `trigger_order_buy_flag` boolean, nullable — Direction of the triggered order: true=buy, false=sell
    - `trigger_river_order_id` string, uuid, nullable — River order ID of the triggered order (set once activated)
    - `trigger_complex_order_id` string, uuid, nullable — Complex order ID of the triggered order (set once activated)
  - `iceberg_order` IcebergOrderResponse — Iceberg-specific runtime detail returned alongside a ComplexOrderResponse. Sourced from `view_iceberg_orders` so it includes derived fields (executed_qty, remaining_qty).
    - `buy_flag` boolean, nullable — Direction
    - `total_qty` number, nullable — Total iceberg quantity
    - `displayed_qty` number, nullable — Tranche size
    - `limit_price` number, nullable — Static limit price for every tranche
    - `post_only` boolean, nullable — Whether tranches are posted as post-only
    - `cancel_order_on_pause` boolean, nullable — Kalshi only: whether the exchange cancels resting tranches during a trading pause
    - `reload_delay_s` integer, nullable — Inter-tranche reload delay in seconds, if set. NULL or 0 = place next tranche immediately.
    - `executed_qty` number, nullable — Sum of fully-executed child tranches' qty
    - `remaining_qty` number, nullable — total_qty - executed_qty
    - `expiry_ts_utc` string, date-time, nullable — Expiry timestamp in UTC, if set. Tranches are submitted as GTD with this expiry.
    - `reject_reason` string, nullable — Reason for rejection, if any
  - `peg_order` PegOrderResponse — Peg-specific runtime detail returned alongside a ComplexOrderResponse. Sourced from `view_peg_orders` so it includes derived fields (executed_qty, remaining_qty).
    - `buy_flag` boolean, nullable — Direction
    - `total_qty` number, nullable — Total peg quantity
    - `min_price` number, nullable — Price floor — the child never rests below this
    - `max_price` number, nullable — Price ceiling — the child never rests above this
    - `post_only` boolean, nullable — Whether the resting child order is post-only
    - `executed_qty` number, nullable — Sum of filled child qty
    - `remaining_qty` number, nullable — total_qty - executed_qty
    - `expiry_ts_utc` string, date-time, nullable — Expiry timestamp in UTC, if set. The child is submitted as GTD with this expiry.
    - `peg_min_stay_time_s` integer, nullable — Minimum seconds a resting child must stay on the book before a price-driven repeg is allowed, if set.
    - `max_qty_level` number, nullable — Penny-jump threshold (contracts): levels larger than this are stepped past, one tick inside the spread.
    - `reject_reason` string, nullable — Reason for rejection, if any
  - `smart_taker_order` SmartTakerOrderResponse — Smart-taker-specific runtime detail returned alongside a ComplexOrderResponse. Sourced from `view_smart_taker_orders` so it includes derived fields (executed_qty, remaining_qty).
    - `buy_flag` boolean, nullable — Direction
    - `total_qty` number, nullable — Total quantity across all IOC clips
    - `limit_price` number, nullable — Worst price the taker will accept
    - `min_qty` number, nullable — Book-depth trigger gate (min acceptable liquidity resting before firing)
    - `executed_qty` number, nullable — Sum of filled child qty
    - `remaining_qty` number, nullable — total_qty - executed_qty
    - `expiry_ts_utc` string, date-time, nullable — Expiry timestamp in UTC, if set.
    - `reject_reason` string, nullable — Reason for rejection, if any

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/rivermarkets/apis/river-finance-api.md) · [All operations](https://skmtc.dev/rivermarkets/apis/river-finance-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/rivermarkets/river-finance-api/revisions/42a5acd1d60a/schema)
