---
title: "Get order executions"
method: POST
path: "/orders/v1/search_executions"
tags: ["CLOB"]
---

# Get order executions

`POST /orders/v1/search_executions`

Search for order executions on the CLOB matching the given filters. This endpoint returns all the executions for the given filters, and is paginated. 
Note: This executions means all the events that has been triggered for your orders on the CLOB.

## Headers

- `X-SCX-SIGNED` string, required
- `X-SCX-TIMESTAMP` string, required

## Request body

- PostSearchExecutionsRequest
  - `accounts` string[]
  - `user` 'firms/F-{platform_code}/users/{participant_code}' | 'firms/F-{platform_code}/users/{account_label}' | 'firms/{zerohash}/users/{platform_code}' — Fully-qualified user. Format: `firms/F-{platform_code}/users/{participant_code}`. This value is case sensitive. ### Clearing House Designations * **USA:** 00SXCM (ZH Clearing House) * **EU:** ZHDSEU ### Prefunded Model * USD balances are ledgered directly to the participants on their CLOB account. * Participants will be credit checked against their available balance on the zerohash platform. * Accounts must be registed with the `prefunded` field as `true` on the `POST /accounts` endpoint. * Trade settlement is handled directly between participants and occurs instantly upon execution. ### Novated Model * Utilizes a central float account to manage the cumulative buying power of your customers. * USD balance is ledgeder to the platforms float account. * USD credit checks must be performed by the platform prior to order placement. * Accounts must be registed with the `prefunded` field as `false` on the `POST /accounts` endpoint. * Allows platforms to manage the buying power of their customers effectively, allowing for better operational efficiency.
  - `client_account_id` string — The client account identifier
  - `client_participant_id` string — The client participant identifier
  - `clord_id` string — The client order ID
  - `end_time` string, date-time — The end time for the search
  - `newest_first` boolean — Indicates if the newest executions should be returned first
  - `order_id` string — The order ID
  - `page_size` integer — The number of results to return per page
  - `page_token` string — The token for the next page of results
  - `parent_order_id` string — The parent order ID
  - `start_time` string, date-time — The start time for the search
  - `symbol` string — The symbol to search for
  - `symbol_sub_type` string — The sub-type of the symbol
  - `types` string[]

## Response `200`

A successful response.(streaming responses)

- PostSearchExecutionsResponse
  - `eof` boolean
  - `executions` object[]
    - `aggressor` boolean — Indicates if the execution was initiated by the aggressor. An aggressor is the party that initiates the trade by placing an order that matches with an existing resting order on the order book. - If `aggressor` is `true`, it means that the execution was the result of an incoming order matching with a resting order, and the incoming order is considered the aggressor. - If `aggressor` is `false`, it means that the execution was the result of a resting order being matched by an incoming order, and the resting order is considered the aggressor.
    - `commission_notional_collected` string — The notional amount of commission collected for the execution.
    - `id` string — Unique identifier for the execution.
    - `last_px` string — The last price of the execution. This is the price at which the trade was executed, scaled by using the `price_scale` of the order.
    - `last_shares` string — The last shares of the execution scaled by using the `fractional_quantity_scale` of the order. This is the quantity that was executed in this trade.
    - `leg_prices` object[]
      - `anchor` boolean
      - `px` string — The price of the leg, scaled by using the `price_scale` of the order.
      - `qty` string — The quantity of the leg, scaled by using the `fractional_quantity_scale` of the order.
      - `reference_px` string — The reference price of the leg, scaled by using the `price_scale` of the order.
      - `side` 'SIDE_BUY' | 'SIDE_SELL' — The side of the leg, either `SIDE_BUY` or `SIDE_SELL`.
      - `symbol` string — The symbol of the leg.
    - `order` object
      - `id` string — Unique order identifier.
      - `type` 'ORDER_TYPE_MARKET_TO_LIMIT' | 'ORDER_TYPE_LIMIT' | 'ORDER_TYPE_STOP' | 'ORDER_TYPE_STOP_LIMIT' — The type of the order, indicating whether it is a limit or market order.
      - `side` string — The side of the order, indicating whether it is a buy or sell order.
      - `order_qty` string — The quantity of the order scaled by using the `fractional_quantity_scale`.
      - `symbol` string — The trading pair for the order.
      - `clord_id` string — Client-provided order ID.
      - `time_in_force` 'TIME_IN_FORCE_GOOD_TILL_CANCEL' | 'TIME_IN_FORCE_IMMEDIATE_OR_CANCEL' | 'TIME_IN_FORCE_FILL_OR_KILL' | 'TIME_IN_FORCE_GOOD_TILL_TIME' — The time in force for the order, which indicates how long the order will remain active before it is executed or expires. - `TIME_IN_FORCE_UNDEFINED`: An unset value for time in force uses the default behavior of the exchange, which is typically to treat the order as a day order that expires at the end of the trading day. - `TIME_IN_FORCE_GOOD_TILL_CANCEL`: The order will remain active until it is executed or cancelled by the participant. - `TIME_IN_FORCE_IMMEDIATE_OR_CANCEL`: The order will be executed immediately at the best available price, and any portion of the order that is not filled will be cancelled. - `TIME_IN_FORCE_FILL_OR_KILL`: The order will be executed immediately at the best available price, and if the entire order cannot be filled, it will be cancelled. - `TIME_IN_FORCE_GOOD_TILL_TIME`: The order will remain active until it is executed or until a specified time in the future, at which point it will expire if it has not been filled.
      - `account` string — The account associated with the order. This can be either the `participant_code` assigned by zerohash or the `account_label` defined by the platform. - Custom account label : `firms/{platform_code}/accounts/{account_label}`. - General account label : `firms/{platform_code}/accounts/{participant_code}`.
      - `user` 'firms/F-{platform_code}/users/{participant_code}' | 'firms/F-{platform_code}/users/{account_label}' | 'firms/{zerohash}/users/{platform_code}' — Fully-qualified user. Format: `firms/F-{platform_code}/users/{participant_code}`. This value is case sensitive. ### Clearing House Designations * **USA:** 00SXCM (ZH Clearing House) * **EU:** ZHDSEU ### Prefunded Model * USD balances are ledgered directly to the participants on their CLOB account. * Participants will be credit checked against their available balance on the zerohash platform. * Accounts must be registed with the `prefunded` field as `true` on the `POST /accounts` endpoint. * Trade settlement is handled directly between participants and occurs instantly upon execution. ### Novated Model * Utilizes a central float account to manage the cumulative buying power of your customers. * USD balance is ledgeder to the platforms float account. * USD credit checks must be performed by the platform prior to order placement. * Accounts must be registed with the `prefunded` field as `false` on the `POST /accounts` endpoint. * Allows platforms to manage the buying power of their customers effectively, allowing for better operational efficiency.
      - `cum_qty` string — Cumulative filled quantity of the order scaled by using the `fractional_quantity_scale`.
      - `avg_px` string — Average fill price of the order scaled by using the `price_scale`.
      - `leaves_qty` string — Remaining quantity to be filled of the order scaled by using the `fractional_quantity_scale`.
      - `state` 'ORDER_STATE_NEW' | 'ORDER_STATE_PARTIALLY_FILLED' | 'ORDER_STATE_FILLED' | 'ORDER_STATE_CANCELED' | 'ORDER_STATE_REPLACED' | 'ORDER_STATE_REJECTED' | 'ORDER_STATE_EXPIRED' | 'ORDER_STATE_PENDING_NEW' | 'ORDER_STATE_PENDING_REPLACE' | 'ORDER_STATE_PENDING_CANCEL' | 'ORDER_STATE_PENDING_RISK' — OrderState denotes the current order state. - `ORDER_STATE_PENDING_NEW`: Order received by exchange at edges of the system but has not been processed by matching engine. - `ORDER_STATE_PENDING_REPLACE`: Cancel Replace request received by exchange at edges of the system but has not been processed by matching engine. - `ORDER_STATE_PENDING_CANCEL`: Cancel request received by exchange at edges of the system but has not been processed by matching engine. - `ORDER_STATE_PENDING_RISK`: Order is pending risk approval
      - `participant` string
      - `price` string — The limit price for the order scaled by using the `price_scale`.
      - `insert_time` string, date-time
      - `stop_price` string
      - `min_qty` string
      - `create_time` string, date-time
      - `all_or_none` boolean — Indicates if the order is an all-or-none order. An all-or-none order will only execute if the entire order quantity can be filled, otherwise it will remain as instructed with regards to time in force and type of the order.
      - `cross_id` string
      - `host_cross_id` string
      - `submitting_participant` string
      - `client_account_id` string
      - `client_participant_id` string
      - `parent_order_id` string
      - `commissions_basis_points` string — The commission rate in basis points that was/will be applied to the order upon matching.
      - `participate_dont_initiate` boolean — Indicates if the order should participate but not initiate, meaning it will only take liquidity and not provide it. Often referred to as post-only, an order with this flag set will not match with existing orders at the time of entry, and if it would have matched, it will be cancelled instead. Orders with this flag set may still execute against orders that are entered subsequently that would match with it.
      - `cash_order_qty` string — The notional value of the order to execute, used with market orders.
      - `symbol_sub_type` string — The sub-type of the symbol, if applicable.
      - `strict_limit` boolean — Indicates if the order is a strict limit order and must be executed at the specified price.
      - `risk_check_time` string, date-time
      - `collateral_memo` string — Memo regarding the collateral status of the order.
      - `priority_weight` string — The priority weight of the order, which may be used by the exchange to determine order priority in matching.
      - `good_till_time` string, date-time, nullable — The time until which the order is valid. If the order has a time in force of `TIME_IN_FORCE_GOOD_TILL_TIME`, then this field will indicate the time until which the order will remain active before it is cancelled by the system.
      - `context` object
        - `any_context` object, nullable — Arbitrary context data.
        - `fix_context` object
          - `begin_string` string — The FIX protocol version used in the order message, if applicable.
          - `target_comp_id` string — The identifier of the target firm or exchange to which the order was sent, if applicable.
          - `sender_comp_id` string — The identifier of the sender firm or exchange from which the order was sent, if applicable.
          - `orig_clord_id` string — The original client order ID, if applicable.
          - `security_type` string — The type of security, if applicable.
          - `target_sub_id` string — The sub-identifier of the target firm or exchange, if applicable.
          - `target_location_id` string — The location identifier of the target firm or exchange, if applicable.
          - `sender_sub_id` string — The sub-identifier of the sender firm or exchange, if applicable.
          - `sender_location_id` string — The location identifier of the sender firm or exchange, if applicable.
          - `on_behalf_of_comp_id` string — The identifier of the firm or exchange on behalf of which the order was sent, if applicable.
          - `on_behalf_of_sub_id` string — The sub-identifier of the firm or exchange on behalf of which the order was sent, if applicable.
        - `validation_contexts` object[]
        - `service_name` string
      - `best_limit` boolean — Indicates if the order should be entered at the best available price on the same side of the market.
      - `immediately_executable_limit` boolean — Indicates if the order should be executed immediately at the best available price.
      - `block_trade_indicator` boolean — Indicates if the order is a block trade. (Not applicable on the CLOB, used for informational purposes only.)
      - `last_trade_id` string — The identifier of the last trade that was executed against this order, if applicable.
      - `trigger_method` 'CONDITION_TRIGGER_METHOD_UNDEFINED' | 'CONDITION_TRIGGER_METHOD_LAST_PRICE' | 'CONDITION_TRIGGER_METHOD_SETTLEMENT_PRICE' — The trigger method for the order, used with stop and stop-limit orders to indicate the price that will trigger the order to become active. - `CONDITION_TRIGGER_METHOD_UNDEFINED`: The default trigger method if not specified. The exchange will use its default trigger method for stop orders, which is typically the last traded price but may vary by exchange. - `CONDITION_TRIGGER_METHOD_LAST_PRICE`: The stop order will be triggered based on the last traded price of the symbol. - `CONDITION_TRIGGER_METHOD_SETTLEMENT_PRICE`: The stop order will be triggered based on the settlement price of the symbol, which is typically calculated at the end of the trading day.
      - `price_to_quantity_filled` object
      - `commission_notional_total_collected` string — The total notional amount of commission collected for the order across all executions.
      - `self_match_prevention_instruction` 'SELF_MATCH_PREVENTION_INSTRUCTION_UNDEFINED' | 'SELF_MATCH_PREVENTION_INSTRUCTION_REJECT_AGGRESSOR' | 'SELF_MATCH_PREVENTION_INSTRUCTION_CANCEL_RESTING' | 'SELF_MATCH_PREVENTION_INSTRUCTION_REMOVE_BOTH' — The self-match prevention instruction - `SELF_MATCH_PREVENTION_INSTRUCTION_UNDEFINED`: An unset value for the self match prevention instruction uses the default behavior of the exchange, which is to reject the incoming order and allow resting orders to remain on the book. - `SELF_MATCH_PREVENTION_INSTRUCTION_REJECT_AGGRESSOR`: Reject the incoming aggressor order and allow resting orders to remain on the book. - `SELF_MATCH_PREVENTION_INSTRUCTION_CANCEL_RESTING`: Cancel any resting orders on the book that would self match and allow the aggressor to insert on the book. - `SELF_MATCH_PREVENTION_INSTRUCTION_REMOVE_BOTH`: Cancel any resting orders on the book that would self match and reject the aggressor insertion on the book.
      - `order_capacity` 'ORDER_CAPACITY_UNDEFINED' | 'ORDER_CAPACITY_AGENCY' | 'ORDER_CAPACITY_PRINCIPAL' | 'ORDER_CAPACITY_PROPRIETARY' | 'ORDER_CAPACITY_INDIVIDUAL' | 'ORDER_CAPACITY_RISKLESS_PRINCIPAL' | 'ORDER_CAPACITY_AGENT_FOR_OTHER_MEMBER' — The order capacity for the order, which indicates the capacity in which the participant is acting when placing the order. This may be used by the exchange for regulatory reporting purposes. - `ORDER_CAPACITY_UNDEFINED`: An unset value for order capacity uses the default behavior of the exchange, which is typically to treat the order as if it were entered in an individual capacity. - `ORDER_CAPACITY_AGENCY`: The participant is acting in an agency capacity, meaning they are placing the order on behalf of another party. - `ORDER_CAPACITY_PRINCIPAL`: The participant is acting in a principal capacity, meaning they are placing the order for their own account and risk. - `ORDER_CAPACITY_PROPRIETARY`: The participant is acting in a proprietary capacity, meaning they are placing the order for their own account but not for their own risk (e.g., a market maker). - `ORDER_CAPACITY_INDIVIDUAL`: The participant is acting in an individual capacity, meaning they are placing the order for their own account and risk. - `ORDER_CAPACITY_RISKLESS_PRINCIPAL`: The participant is acting in a riskless principal capacity, meaning they are placing the order on behalf of another party but will not assume any market risk (e.g., they will hedge out the position immediately). - `ORDER_CAPACITY_AGENT_FOR_OTHER_MEMBER`: The participant is acting as an agent for another member of the exchange.
      - `ignore_price_validity_checks` boolean — Indicates if the order should bypass price validity checks and be accepted even if the price is outside of the normal price bands or limits set by the exchange. This may be used in conjunction with order `type` as `ORDER_TYPE_MARKET_TO_LIMIT` and the `side` as `SIDE_SELL` to bypass the exchange minimum order placement values to liquidate customer positions.
      - `transaction_booked_time` string, date-time, nullable
      - `last_transact_time` string, date-time
      - `price_scale` string — The scale factor for the price of the order. To convert the `price` to its actual value, multiply it by this scale factor; - 2300 ETH `price` will be entered as `2300.00 * price_scale = 230000` - 65000.10 BTC order `price` will be entered as `65000.10 * price_scale = 6500010`.
      - `fractional_quantity_scale` string — The scale factor for the quantity of the `order_qty` field on order placement. To convert the `order_qty` to its actual value, multiply it by this scale factor; - 0.5 BTC `order_qty` will be entered as `0.5 * fractional_quantity_scale = 50000000` - 0.1 ETH `order_qty` will be entered as `0.1 * fractional_quantity_scale = 10000000`.
      - `maker_commissions_basis_points` string — The commission rate in basis points that was/will be applied to the order if it provides liquidity (i.e., is a maker order) upon matching.
      - `manual_order_indicator` 'MANUAL_ORDER_INDICATOR_MANUAL' | 'MANUAL_ORDER_INDICATOR_AUTOMATED' | 'MANUAL_ORDER_INDICATOR_UNDEFINED'
    - `order_reject_reason` 'ORD_REJECT_REASON_EXCHANGE_OPTION' | 'ORD_REJECT_REASON_UNKNOWN_SYMBOL' | 'ORD_REJECT_REASON_EXCHANGE_CLOSED' | 'ORD_REJECT_REASON_INCORRECT_QUANTITY' | 'ORD_REJECT_REASON_INVALID_PRICE_INCREMENT' | 'ORD_REJECT_REASON_INCORRECT_ORDER_TYPE' | 'ORD_REJECT_REASON_PRICE_OUT_OF_BOUNDS' | 'ORD_REJECT_REASON_NO_LIQUIDITY' | 'ORDER_REJECT_REASON_UNDEFINED' — The reason for an order rejection, which is populated on the execution report if the execution report has an `execution_type` of `EXECUTION_TYPE_REJECTED`. This field may be populated by the exchange to indicate the reason for the order rejection. - `ORD_REJECT_REASON_EXCHANGE_OPTION`: The order was rejected due to an option exercised by the exchange, such as a market-wide halt or a symbol-specific halt. - `ORD_REJECT_REASON_UNKNOWN_SYMBOL`: The order was rejected due to an unknown symbol. - `ORD_REJECT_REASON_EXCHANGE_CLOSED`: The order was rejected because the exchange is closed. - `ORD_REJECT_REASON_INCORRECT_QUANTITY`: The order was rejected due to an incorrect quantity, such as an order quantity that is not a multiple of the minimum quantity or that exceeds the maximum quantity allowed by the exchange. - `ORD_REJECT_REASON_INVALID_PRICE_INCREMENT`: The order was rejected due to an invalid price increment, such as a limit price that is not a multiple of the minimum price increment allowed by the exchange. - `ORD_REJECT_REASON_INCORRECT_ORDER_TYPE`: The order was rejected due to an incorrect order type, such as a stop-limit order without a stop price. - `ORD_REJECT_REASON_PRICE_OUT_OF_BOUNDS`: The order was rejected due to a price that is outside of the normal price bands or limits set by the exchange. - `ORD_REJECT_REASON_NO_LIQUIDITY`: The order was rejected due to no liquidity available at the specified price. - `ORDER_REJECT_REASON_UNDEFINED`: An unset value for the order reject reason uses the default behavior of the exchange, which is typically to treat the reason as unknown.
    - `text` string
    - `trace_id` string
    - `trade_id` string
    - `transact_time` string, date-time — The time when the execution took place in the system.
    - `type` 'EXECUTION_TYPE_NEW' | 'EXECUTION_TYPE_PARTIAL_FILL' | 'EXECUTION_TYPE_FILL' | 'EXECUTION_TYPE_CANCELED' | 'EXECUTION_TYPE_REPLACE' | 'EXECUTION_TYPE_REJECTED' | 'EXECUTION_TYPE_EXPIRED' | 'EXECUTION_TYPE_DONE_FOR_DAY' — The type of the execution, which indicates whether it was a trade execution, a cancel execution, or a replace execution. - `EXECUTION_TYPE_NEW`: The execution was a new order. - `EXECUTION_TYPE_PARTIAL_FILL`: The execution was a partial fill. - `EXECUTION_TYPE_FILL`: The execution was a fill. - `EXECUTION_TYPE_CANCELED`: The execution was a cancel. - `EXECUTION_TYPE_REPLACE`: The execution was a replace. - `EXECUTION_TYPE_REJECTED`: The execution was rejected. - `EXECUTION_TYPE_EXPIRED`: The execution expired. - `EXECUTION_TYPE_DONE_FOR_DAY`: The execution was done for the day.
    - `unsolicited_cancel_reason` 'UNSOLICITED_CXL_REASON_UNDEFINED' | 'UNSOLICITED_CXL_REASON_CONNECTION_LOSS' | 'UNSOLICITED_CXL_REASON_LOGOUT' | 'UNSOLICITED_CXL_REASON_EXCHANGE_OPTION' | 'UNSOLICITED_CXL_REASON_OTHER' — The reason for an unsolicited cancel execution, which is a cancel execution that is not the result of an explicit cancel request from the participant. This field may be populated by the exchange to indicate the reason for the unsolicited cancel. - `UNSOLICITED_CXL_REASON_UNDEFINED`: An unset value for the unsolicited cancel reason uses the default behavior of the exchange, which is typically to treat the reason as unknown. - `UNSOLICITED_CXL_REASON_CONNECTION_LOSS`: The execution was canceled due to a loss of connectivity between the participant and the exchange. - `UNSOLICITED_CXL_REASON_LOGOUT`: The execution was canceled due to the participant logging out of their trading session. - `UNSOLICITED_CXL_REASON_EXCHANGE_OPTION`: The execution was canceled due to an option exercised by the exchange, such as a market-wide halt or a symbol-specific halt. - `UNSOLICITED_CXL_REASON_OTHER`: The execution was canceled due to other reasons not specified above.
  - `next_page_token` string

## Other responses

- `default` — An error occurred

---

[API](https://skmtc.net/zerohash/apis/zerohash-api.md) · [All operations](https://skmtc.net/zerohash/apis/zerohash-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zerohash/zerohash-api/revisions/8b647d934363/schema)
