---
title: "Get Executions"
method: GET
path: "/v1/accounts/{account_id}/executions"
tags: ["Orders"]
---

# Get Executions

`GET /v1/accounts/{account_id}/executions`

## Request

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

Retrieves filled and partially-filled execution reports for the specified
trading account, ordered by transaction time (nanosecond precision) descending.

## Path parameters

- `account_id` integer, required

## Query parameters

- `instrument_ids` string[]
- `order_ids` string[]
- `underlying_instrument_ids` string[]
- `page_size` integer
- `page_token` string, byte: Base64URL-encoded pagination token
- `from` string, date-time
- `to` string, date-time

## Response `200`

List of executions

- 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` Execution[], required
    - `id` string, uuid, required: Unique identifier for this execution report.
    - `instrument_id` string, uuid, nullable: Unique instrument identifier. `null` when this is a strategy-level multileg fill whose legs are reported individually in `legs[]`. When a null/undefined value is observed, it indicates it does not apply.
    - `order_id` string, uuid, required: Identifier of the order this execution belongs to.
    - `price` string, nullable: Fill price. `null` for multileg fills, whose price lives only at the leg level. When a null/undefined value is observed, it indicates it does not apply.
    - `quantity` string, required: Filled quantity. For a strategy-level multileg fill this is the net strategy quantity, not a per-leg quantity.
    - `side` 'BUY' | 'SELL', required: Side of the order (BUY or SELL).
    - `symbol` string, nullable: Trading symbol. `null` when this is a strategy-level multileg fill whose legs are reported individually in `legs[]`. When a null/undefined value is observed, it indicates it does not apply.
    - `transaction_time` string, date-time, required: Transaction timestamp in nanosecond precision (UTC).
    - `underlying_instrument_id` string, uuid, nullable: Underlying instrument identifier for an option fill. Omitted for a non-derivative fill, when the underlier could not be resolved, or for a multileg fill (per-leg underliers live in `legs[]`). When a null/undefined value is observed, it indicates it does not apply.
    - `underlying_instrument_type` 'COMMON_STOCK' | 'INDEX' | 'OPTION' | 'CASH': Security type
    - `venue` string, nullable: Venue where this fill occurred, as reported by that venue. Distinct from an order's `venue`, which is the routing destination. Codes are not normalized, so the format varies by venue. When a null/undefined value is observed, it indicates that there is no available data.

## Other responses

- `400`: Invalid request parameters
- `403`: Forbidden
- `500`: Internal server error

## Changes

- **2026-10-16** `1bd9eddeffc8`: 2 breaking, 1 warning, 7 info
  - the response property `allOf[subschema #2]/data/items/price` became nullable for the status `200`
  - the response property `allOf[subschema #2]/data/items/price` became optional for the status `200`
  - for the `query` request parameter `instrument_ids`, the type of property `items/` changed from no type to `string`
  - added the new optional `query` request parameter `order_ids`
  - …6 more
- **2026-07-17** `4b5aaa49308c`: 4 breaking
  - the response property `allOf[subschema #2]/data/items/instrument_id` became nullable for the status `200`
  - the response property `allOf[subschema #2]/data/items/symbol` became nullable for the status `200`
  - the response property `allOf[subschema #2]/data/items/instrument_id` became optional for the status `200`
  - the response property `allOf[subschema #2]/data/items/symbol` became optional for the status `200`
- **2026-07-03** `c772a51b1b24`: 1 warning, 1 info
  - deleted the `query` request parameter `instrument_id`
  - added the new optional `query` request parameter `instrument_ids`
- **2026-05-22** `23261ccf637f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/clear-street/apis/clear-street-trading-api/changes/v1/accounts/:account_id/executions/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)
