Execution List
Returns trade fills (executions). Each entry is one match against your order — a single order can produce multiple executions if it was filled in pieces.
| Method | GET |
| Path | /v5/execution/list |
| Auth | Authenticated. |
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
category | string | Yes | linear. |
symbol | string | No | Filter by symbol. |
orderId | string | No | Filter by server-issued order ID. |
orderLinkId | string | No | Filter by your custom order ID. |
cursor | string | No | Pagination cursor. |
Request
- Python
- Java
- Go
- Node.js
from reference_client import sign_request, BASE_URL
import requests
headers, path = sign_request(
"GET",
"/v5/execution/list",
{"category": "linear", "symbol": "BTCUSDT", "orderLinkId": "my-order-1"},
)
r = requests.get(BASE_URL + path, headers=headers)
print(r.json())
HttpResponse<String> resp = client.send(
"GET", "/v5/execution/list", Map.of("category", "linear", "symbol", "BTCUSDT", "orderLinkId", "my-order-1"), null);
System.out.println(resp.body());
headers, p, err := SignRequest("GET", "/v5/execution/list", map[string]string{"category": "linear", "symbol": "BTCUSDT", "orderLinkId": "my-order-1"})
if err != nil { panic(err) }
req, _ := http.NewRequest("GET", BaseURL+p, nil)
for k, v := range headers { req.Header.Set(k, v) }
resp, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
out, _ := io.ReadAll(resp.Body)
fmt.Println(string(out))
const {signRequest, BASE_URL} = require('./reference-client');
const {headers, path} = signRequest('GET', '/v5/execution/list', {"category": "linear", "symbol": "BTCUSDT", "orderLinkId": "my-order-1"});
const r = await fetch(BASE_URL + path, {
method: 'GET',
headers,
});
console.log(await r.json());
Response
{
"retCode": 0,
"retMsg": "OK",
"result": {
"nextPageCursor": "",
"category": "linear",
"list": [
{
"symbol": "BTCUSDT",
"orderId": "316ea49e-59b3-42c5-9d71-edaf2504b0f8",
"orderLinkId": "my-order-1",
"side": "Sell",
"execId": "a1076552-0c0f-5a56-a064-5a653f9172c6",
"execPrice": "108476.4",
"execQty": "0.002",
"execValue": "216.9528",
"execFee": "0.07593348",
"feeRate": "0.00035",
"execTime": "1756478116611",
"isMaker": false,
"execType": "Trade",
"closedSize": "0.002"
}
]
}
}
An empty list means no executions have happened on the orders matching your filter (the order is still resting, was rejected, or was cancelled before any fills).
Response parameters
| Field | Type | Description |
|---|---|---|
execId | string | Unique execution ID. Use it as the primary key when you store fills locally — guarantees you won't double-insert a fill on retry. |
execPrice | string | Price at which this fill matched. |
execQty | string | Quantity filled in this execution. |
execValue | string | Notional in USDT (execPrice × execQty). |
execFee | string | Fee paid for this execution. |
feeRate | string | Fee rate applied (e.g. 0.00035 = 3.5 bps). |
execTime | string | Execution timestamp (Unix ms). |
isMaker | boolean | true if you provided liquidity. Maker fees are usually lower. |
closedSize | string | Size of position closed by this execution (for reduce-only or hedging fills). |