Skip to main content

Closed Orders

List terminal-state futures orders (EXECUTED, PARTIALLY_EXECUTED, CANCELLED).

HTTP

MethodPOST
Endpoint/trade/api/v2/futures/orders/closed
Rate limit20 requests per 60 seconds

Request Parameters

ParameterTypeMandatoryDescription
exchangestringYesEXCHANGE_2.
symbolstringNoFilter to a single symbol (e.g. BTCUSDT).
statusstringNoFilter to a specific terminal status.
limitintegerNoPage size. Maximum 50.
from_timeintegerNoFilter: orders created at/after this timestamp (Unix ms).
to_timeintegerNoFilter: orders created at/before this timestamp (Unix ms).
Time window

The difference between from_time and to_time cannot exceed 7 days. If you omit both, you get the latest 50 orders from the last 7 days.

To page through more, use the cursor returned in the response as the next call's to_time.

Example

import requests

body = {"exchange": "EXCHANGE_2", "symbol": "btcusdt", "limit": 10}
headers, path = sign_request("POST", "/trade/api/v2/futures/orders/closed")
response = requests.post(BASE_URL + path, headers=headers, json=body)
print(response.json())

Response

Same shape as Open Ordersdata.orders array of order objects, plus a data.cursor pagination marker.

{
"data": {
"orders": [
{
"order_id": "01936be4-9e37-7487-8e31-20fede6ef271",
"exchange": "EXCHANGE_2",
"symbol": "BTCUSDT",
"side": "BUY",
"status": "CANCELLED",
"order_type": "LIMIT",
"quantity": "160",
"exec_quantity": "0",
"price": "80000",
"avg_execution_price": "0",
"execution_fee": "0.1051",
"realised_pnl": "0",
"reduce_only": false,
"created_at": 1732681965292,
"updated_at": 1732681965292
}
],
"cursor": 1732616972834
}
}