---
title: "Get Order By ID"
method: GET
path: "/v1/accounts/{account_id}/orders/{order_id}"
tags: ["Orders"]
---

# Get Order By ID

`GET /v1/accounts/{account_id}/orders/{order_id}`

## Request

- Base URL: `https://api.clearstreet.com`
- URL: `https://api.clearstreet.com/v1/accounts/{account_id}/orders/{order_id}`
- Auth: HTTP bearer

Fetch a single order. The `{order_id}` path parameter accepts either the
order's `id` or its `client_order_id`. A `client_order_id` can only be used
while the order is open; after that, use the `id` returned in every order
response, or find the order with the list-orders endpoint's `order_ids`
filter, which accepts both identifiers at any time.

## Path parameters

- `account_id` integer, required
- `order_id` string, required

## Response `200`

Order details

- object
  - `error` ApiError: A direct mapping of tonic::Status, for use in HTTP responses.
    - `code` integer, required: The error code is used to identify the nature of the error. It corresponds to an HTTP status code.
    - `details` object[]
    - `message` string, required: A human-readable message providing more details about the error.
  - `metadata` ResponseMetadata, required: Metadata for the response. This will always contain a request ID which can be used to identify the request to Clear Street for tracing, and optionally may include pagination data.
    - `next_page_token` string, byte, nullable: Base64URL-encoded pagination token
    - `page_number` integer, nullable: Pagination. Included if this was a GET (list) response
    - `previous_page_token` string, byte, nullable: Base64URL-encoded pagination token
    - `request_id` string, required: A unique ID for this request, generated upon ingestion of the request.
    - `total_items` integer, nullable: Total number of items available (not just in this page).
    - `total_pages` integer, nullable: Total number of pages available.
  - `data` Order, required: A trading order with its current state and execution details. This is the unified API representation of an order across its lifecycle, combining data from execution reports, order status queries, and parent/child tracking.
    - `account_id` integer, required
    - `average_fill_price` string, nullable: Average fill price across all executions. For multileg orders this is the venue's strategy-level average when reported, else the signed net package price derived from the leg averages: net debit positive, net credit negative, zero possible. When a null/undefined value is observed, it indicates that there is no available data.
    - `client_order_id` string, required: Client-provided identifier echoed back.
    - `created_at` string, date-time, required: Timestamp when order was created (UTC)
    - `details` string[]: Contains execution, rejection or cancellation details, if any
    - `expires_at` string, date-time, nullable: Timestamp when the order will expire (UTC). Present when time_in_force is GOOD_TILL_DATE. When a null/undefined value is observed, it indicates it does not apply.
    - `extended_hours` boolean, nullable: Whether the order is eligible for extended-hours trading.
    - `filled_quantity` string, required: Cumulative filled quantity
    - `id` string, required: Engine-assigned unique identifier for this order (UUID).
    - `instrument_id` string, uuid, nullable: Instrument identifier for the traded instrument. `null` when the order is a multileg strategy whose legs are reported individually in `legs[]`. When a null/undefined value is observed, it indicates it does not apply.
    - `instrument_type` 'COMMON_STOCK' | 'INDEX' | 'OPTION' | 'CASH': Security type
    - `leaves_quantity` string, required: Remaining unfilled quantity
    - `limit_offset` string, nullable: Limit offset for trailing stop-limit orders (signed) When a null/undefined value is observed, it indicates it does not apply.
    - `limit_price` string, nullable: Limit price (for LIMIT and STOP_LIMIT orders) When a null/undefined value is observed, it indicates it does not apply.
    - `order_type` 'MARKET' | 'LIMIT' | 'STOP' | 'STOP_LIMIT' | 'TRAILING_STOP' | 'TRAILING_STOP_LIMIT' | 'OTHER', required: Order type
    - `quantity` string, required: Total order quantity
    - `releases_at` string, date-time, nullable: Scheduled release time for orders awaiting release. When a null/undefined value is observed, it indicates it does not apply.
    - `side` 'BUY' | 'SELL', required: Side of the order (BUY or SELL).
    - `status` 'PENDING_NEW' | 'QUEUED' | 'PENDING_TRIGGER' | 'NEW' | 'PARTIALLY_FILLED' | 'FILLED' | 'CANCELED' | 'REJECTED' | 'EXPIRED' | 'PENDING_CANCEL' | 'PENDING_REPLACE' | 'REPLACED' | 'DONE_FOR_DAY' | 'STOPPED' | 'SUSPENDED' | 'CALCULATED' | 'OTHER', required: Order status
    - `stop_price` string, nullable: Stop price (for STOP and STOP_LIMIT orders) When a null/undefined value is observed, it indicates it does not apply.
    - `strategy` object: The execution strategy the order was submitted with, if any.
      - `destination` string: Venue code the order is routed to. DMA only.
      - `end_at` string, date-time: UTC timestamp (RFC 3339) at which execution ends.
      - `start_at` string, date-time: UTC timestamp (RFC 3339) at which execution begins.
      - `type` 'SOR' | 'VWAP' | 'TWAP' | 'DMA', required: Execution strategy type.
    - `symbol` string, nullable: Trading symbol. `null` when the order is a multileg strategy whose legs are reported individually in `legs[]`. When a null/undefined value is observed, it indicates it does not apply.
    - `time_in_force` 'DAY' | 'GOOD_TILL_CANCEL' | 'IMMEDIATE_OR_CANCEL' | 'FILL_OR_KILL' | 'GOOD_TILL_DATE' | 'AT_OPEN' | 'AT_CLOSE' | 'OTHER', required: Time in force
    - `trailing_limit_px` string, nullable: Current trailing limit price computed by the trailing strategy When a null/undefined value is observed, it indicates it does not apply.
    - `trailing_offset` string, nullable: Trailing offset amount for trailing orders When a null/undefined value is observed, it indicates it does not apply.
    - `trailing_offset_type` 'PRICE' | 'BPS': Trailing offset type for trailing stop orders.
    - `trailing_stop_px` string, nullable: Current trailing stop price computed by the trailing strategy When a null/undefined value is observed, it indicates it does not apply.
    - `trailing_watermark_px` string, nullable: Trailing watermark price for trailing orders. Strategy-computed, so it is absent on the order-submission acknowledgement and only appears once fetched via the order fetch or list endpoints. When a null/undefined value is observed, it indicates it does not apply.
    - `trailing_watermark_ts` string, date-time, nullable: Trailing watermark timestamp for trailing orders. Strategy-computed, so it is absent on the order-submission acknowledgement and only appears once fetched via the order fetch or list endpoints. When a null/undefined value is observed, it indicates it does not apply.
    - `underlying_instrument_id` string, uuid, nullable: Instrument ID of the option's underlying instrument. Populated only for options orders. A `null` means one of two things: the order is not an option, so the field does not apply; or the order is an option whose underlier has not yet been resolved. When a null/undefined value is observed, it indicates it does not apply.
    - `underlying_instrument_type` 'COMMON_STOCK' | 'INDEX' | 'OPTION' | 'CASH': Security type
    - `updated_at` string, date-time, required: Timestamp of the most recent update (UTC)
    - `venue` string, required: MIC code of the venue where the order is routed

## Other responses

- `403`: Forbidden
- `404`: Order not found
- `500`: Internal server error

## Changes

- **2026-10-30** `7e4b278ca27a`: 1 warning
  - removed the optional property `allOf[subschema #2]/data/queue_state` from the response with the `200` status
- **2026-10-16** `1bd9eddeffc8`: 4 warning, 9 info
  - added the new `AT_CLOSE` enum value to the `allOf[subschema #2]/data/time_in_force` response property for the response status `200`
  - added the new `AT_OPEN` enum value to the `allOf[subschema #2]/data/time_in_force` response property for the response status `200`
  - added the new `PENDING_TRIGGER` enum value to the `allOf[subschema #2]/data/status` response property for the response status `200`
  - added the new `QUEUED` enum value to the `allOf[subschema #2]/data/status` response property for the response status `200`
  - …9 more
- **2026-07-17** `12dd2417df82`: 1 warning
  - added the new `INDEX` enum value to the `allOf[subschema #2]/data/instrument_type/oneOf[#/components/schemas/SecurityType]/` response property for the response status `200`
- **2026-07-17** `4b5aaa49308c`: 7 breaking, 3 info
  - the response property `allOf[subschema #2]/data/instrument_id` became nullable for the status `200`
  - the response property `allOf[subschema #2]/data/symbol` became nullable for the status `200`
  - the response property `allOf[subschema #2]/data/instrument_id` became optional for the status `200`
  - the response property `allOf[subschema #2]/data/instrument_type` became optional for the status `200`
  - …6 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/clear-street/apis/clear-street-trading-api/changes/v1/accounts/:account_id/orders/:order_id/get.md)

---

[API](https://skmtc.dev/clear-street/apis/clear-street-trading-api.md) - [All operations](https://skmtc.dev/clear-street/apis/clear-street-trading-api/llms.txt) - [OpenAPI document](https://skmtc.dev/clear-street/apis/clear-street-trading-api/revisions/52e77ea7d731?raw)
