---
title: "List the caller's routed parent orders and their legs"
method: GET
path: "/orders/routes"
tags: ["Routing"]
---

# List the caller's routed parent orders and their legs

`GET /orders/routes`

## Request

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

Returns routed parents (from `route-buy` / `route-close`) newest first, each with its legs and the child order id, status and fill state. Available regardless of the `ROUTED_EXECUTION_ENABLED` flag, so history stays readable after routing is switched off.
**Note on timestamps:** `created_at` / `completed_at` here are naive local timestamps serialized without a timezone offset — unlike `Order.created_at`, which is RFC 3339.
**Auth.** API keys and delegations need `trade:read`.

## Query parameters

- `limit` integer

## Response `200`

The caller's routes, newest first.

- OrderRouteView[]
  - `id` string, uuid, required
  - `market_link_id` string, uuid, nullable
  - `provider` string, required
  - `market_id` string, required
  - `action` 'buy' | 'sell', required
  - `side` string, required
  - `requested_qty` string, required
  - `status` string, required
  - `filled_qty` string, required
  - `avg_fill_price_bps` integer, nullable
  - `created_at` string, required: Naive local timestamp — serialized WITHOUT a timezone offset, so it is not an RFC 3339 instant. Unlike `Order.created_at`.
  - `completed_at` string, nullable: Naive local timestamp, same caveat as `created_at`.
  - `legs` object[], required
    - `provider` string, required
    - `market_id` string, nullable
    - `planned_qty` string, required
    - `planned_limit_price_bps` integer, required
    - `order_id` string, uuid, nullable
    - `order_status` string, nullable
    - `filled_size` string, nullable
    - `avg_fill_price_bps` integer, nullable
    - `token_id` string, nullable
    - `outcome` string, nullable
    - `error` string, nullable

## Other responses

- `400`: Malformed authenticated user id. Empty body (status code only).
- `401`: No valid credential presented — missing/invalid API-key headers or an invalid/expired session token.
- `500`: Database read failed. Empty body (status code only).

---

[API](https://skmtc.dev/kairos/apis/kairos-order-execution-api.md) - [All operations](https://skmtc.dev/kairos/apis/kairos-order-execution-api/llms.txt) - [OpenAPI document](https://skmtc.dev/kairos/apis/kairos-order-execution-api/revisions/9ba7d463d505?raw)
