Skip to main content

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

GET /v1/api/executions/order/{orderId}

Headers

NameValue
Content-Typeapplication/json
AuthorizationBearer <token>

Path Parameters

NameTypeRequiredDescription
orderIdstringRequiredThe order ID to search for. Matches both the current and original order ID

Code Examples

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}")

Response

{
"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
}

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.

WebSocket API

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

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