# GET Execution by Order ID

Retrieve all executions (fills) associated with a specific order ID. This searches across all accounts and matches against both the current broker-assigned order ID and the original order ID, so it will find fills even if the order was modified or replaced during its lifetime.

This is particularly useful for confirming that an order filled, checking the exact fill price and commission, or auditing the execution history of a replaced order chain.

## Get execution by order ID

<mark style="color:green;">`GET`</mark> `/v1/api/executions/order/{orderId}`

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Path Parameters**

<table><thead><tr><th width="171.05712890625">Name</th><th width="146.8857421875">Type</th><th width="149.514404296875">Required</th><th>Description</th></tr></thead><tbody><tr><td><code>orderId</code></td><td>string</td><td><mark style="color:red;">Required</mark></td><td>The order ID to search for. Matches both the current and original order ID</td></tr></tbody></table>

**Code Examples**

{% tabs %}
{% tab title="Python" %}

```python
import requests

token = 'my-secret-token'
url = "https://app.crosstrade.io/v1/api/executions/order/492281fc515e431692da57d957cfebb6"
headers = {
    "Authorization": f"Bearer {token}",
    "Content-Type": "application/json"
}

try:
    response = requests.get(url, headers=headers)
    print(f"Response Code: {response.status_code}, Response Text: {response.text}")
except Exception as e:
    print(f"An error occurred: {e}")
```

{% endtab %}
{% endtabs %}

***

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "orderId": "4641c835c6d048ebb6fc71fc06f91543",
  "count": 1,
  "executions": [
    {
      "id": "a46d199f5ea54ddbaddc400d345ddd1a",
      "type": "NinjaTrader.Cbi.Execution",
      "time": "2026-03-18T13:57:05.1886119",
      "epoch": 1773867425188,
      "name": "",
      "orderId": "4641c835c6d048ebb6fc71fc06f91543",
      "originalOrderId": "4641c835c6d048ebb6fc71fc06f91543",
      "account": "Sim101",
      "serverName": "DESKTOP-200Q1V3",
      "instrument": "MES 03-26",
      "instrumentType": "Future",
      "position": 7,
      "marketPosition": "Long",
      "positionStrategy": 0,
      "price": 6615.25,
      "quantity": 1,
      "rate": 1.0,
      "commission": "0.85",
      "slippage": 0.0,
      "lotSize": 1.0,
      "isEntry": true,
      "isEntryStrategy": false,
      "isExit": false,
      "isExitStrategy": false,
      "isInitialEntry": false,
      "isLastExit": false,
      "isSod": false,
      "barsInProgress": 0,
      "exchange": "Default"
    }
  ],
  "success": true
}

```

{% endtab %}

{% tab title="200 - no match" %}

```json
{
  "orderId": "nonexistent_id",
  "count": 0,
  "executions": []
}
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Note that a `count` of 0 is not an error. The order may exist but simply hasn't filled yet, or the order ID may not exist at all. If you need to distinguish between these cases, query the order directly via `GET /v1/api/accounts/{account}/orders/{id}` first.
{% endhint %}

#### WebSocket API

This request can also be made over the WebSocket API. The `orderId` path parameter is passed inside `args`.

```json
{
  "action": "rpc",
  "id": "my-request",
  "api": "GetExecutionsByOrderId",
  "args": {
    "orderId": "492281fc515e431692da57d957cfebb6"
  }
}
```
