Get Order Information
get_orders Get Order List
TradeClient.get_orders(
account=None,
sec_type=None,
market=Market.ALL,
symbol=None,
start_time=None,
end_time=None,
limit=100,
is_brief=False,
status=None,
sort_by=None,
seg_type=None,
page_token=None
)Description
Retrieve account order records, including all order statuses and multiple security types. This interface supports flexible filtering by security type, market, symbol, time range, order status, and sorting rules. Results can be returned either as a simple list or as a paginated response.
Parameters
Parameter Name | Type | Required | Description |
|---|---|---|---|
account | str | No | Account ID. If not provided, the default account from |
sec_type | SecurityType | No | Security type. Values from |
market | Market | No | Market identifier. Values from |
symbol | str | No | Security symbol |
start_time | str or int | No | Start time (inclusive). When |
end_time | str or int | No | End time (inclusive). When |
limit | int | No | Number of orders to return per request. |
is_brief | bool | No | Whether to return brief order data |
status | list[OrderStatus] | No | Filter by order status. |
sort_by | OrderSortBy | No | Sorting rule and time reference. Supported values: Default: |
seg_type | SegmentType | No | Account segment.
Values from |
page_token | str | No | Pagination token. Pass an empty string on the first request, then pass the returned next_page_token to retrieve subsequent pages |
Returns
list or OrdersResponse
Note: If
page_tokenis not provided, a list ofOrderobjects is returned. Ifpage_tokenis provided, anOrdersResponseobject is returned:
- OrdersResponse.result — field containing list of Order objects
- OrdersResponse.next_page_token — field containing token for the next page (if available)
Each element in the result is an Order object (tigeropen.trade.domain.order.Order). For detailed field descriptions, see Order Object
Example
from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import TigerOpenClientConfig
client_config = TigerOpenClientConfig(props_path='/path/to/your/properties/file/')
trade_client = TradeClient(client_config)
orders = trade_client.get_orders(sec_type=SecurityType.STK, market=Market.ALL)
# Limit return count; filter by order time (if start_time/end_time are strings, server treats as Beijing time by default; client_config.timezone can set timezone, after setting, time strings are treated as that timezone's time)
orders = trade_client.get_orders(limit=10,
start_time='2022-09-02 01:00:00', end_time='2022-11-08 00:00:00',
seg_type='SEC'
)
orders = trade_client.get_orders(limit=10,
start_time=1656224964000, end_time=1666224964000,
seg_type='SEC'
)
# View order properties
order1 = orders[0]
print(order1.status) # Order status
print(order1.id) # Order ID
print(order1.contract.symbol) # Contract symbol
print(order1.contract.sec_type) # Contract typeGet orders using page_token pagination
def test_get_orders_by_page():
results = []
params = {
'sec_type': 'STK',
'start_time': int(datetime.strptime('2023-01-01', '%Y-%m-%d').timestamp() * 1000),
'end_time': int(datetime.strptime('2025-08-01', '%Y-%m-%d').timestamp() * 1000),
'limit': 10,
'page_token': ''
}
page = 1
while True:
response: OrdersResponse = trade_client.get_orders(**params)
print(f'page {page}, size {len(response.result)}, next_page_token: {response.next_page_token}')
page += 1
if response.result:
results.extend(response.result)
if not response.next_page_token:
break
params['page_token'] = response.next_page_token
print(f'total: {len(results)}, results: {results}')
Get orders paginated by time
from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import TigerOpenClientConfig
client_config = TigerOpenClientConfig(props_path='/path/to/your/properties/file/')
trade_client = TradeClient(client_config)
def test_get_orders_by_page():
result = list()
# Number returned each time (must be <= 300)
limit = 300
conditions = {
'limit': limit,
'start_time': '2025-01-01',
'end_time': '2025-02-12',
# Return data is in reverse chronological order, newest first. Sorted by order_time here
'sort_by': OrderSortBy.LATEST_CREATED,
# Can add other filter conditions
}
orders_page = trade_client.get_orders(**conditions)
result.extend(orders_page)
while len(orders_page) == limit:
next_order_time = orders_page[-1].order_time
conditions.pop('end_time', None)
orders_page = trade_client.get_orders(**conditions, end_time=next_order_time)
result.extend(orders_page)
print(f'total order size: {len(result)}')
return resultReturn Example
[Order({'account': '1', 'id': 162998104807903232, 'order_id': 341, 'parent_id': 0, 'order_time': 1557972846184, 'reason': '136:Order is already being cancelled.', 'trade_time': 1557975394512, 'action': 'BUY', 'quantity': 2, 'filled': 0, 'avg_fill_price': 0, 'commission': 0, 'realized_pnl': 0, 'trail_stop_price': None, 'limit_price': 0.1, 'aux_price': None, 'trailing_percent': None, 'percent_offset': None, 'order_type': 'LMT', 'time_in_force': 'DAY', 'outside_rth': True, 'contract': SPY, 'status': 'CANCELLED', 'remaining': 2}),
Order({'account': '1', 'id': 162998998620389376, 'order_id': 344, 'parent_id': 0, 'order_time': 1557973698590, 'reason': '136:Order is already being cancelled.', 'trade_time': 1557973773622, 'action': 'BUY', 'quantity': 1, 'filled': 0, 'avg_fill_price': 0, 'commission': 0, 'realized_pnl': 0, 'trail_stop_price': None, 'limit_price': 0.1, 'aux_price': None, 'trailing_percent': None, 'percent_offset': None, 'order_type': 'LMT', 'time_in_force': 'DAY', 'outside_rth': True, 'contract': SPY, 'status': 'CANCELLED', 'remaining': 1}),
Order({'account': '1', 'id': 152239266327625728, 'order_id': 230, 'parent_id': 0, 'order_time': 1547712418243, 'reason': '201:Order rejected - Reason: YOUR ORDER IS NOT ACCEPTED. IN ORDER TO OBTAIN THE DESIRED POSITION YOUR EQUITY WITH LOAN VALUE [1247.90 USD] MUST EXCEED THE INITIAL MARGIN [4989.99 USD]', 'trade_time': 1547712418275, 'action': 'BUY', 'quantity': 100, 'filled': 0, 'avg_fill_price': 0, 'commission': 0, 'realized_pnl': 0, 'trail_stop_price': None, 'limit_price': 5, 'aux_price': None, 'trailing_percent': None, 'percent_offset': None, 'order_type': 'LMT', 'time_in_force': 'DAY', 'outside_rth': True, 'contract': XYZX, 'status': 'REJECTED', 'remaining': 100})]get_order Get Specific Order
TradeClient.get_order(
account=None,
id=None,
order_id=None,
is_brief=False,
show_charges=None
)Description
Retrieve detailed information for an order using its global/local order id.
Parameters
Parameter Name | Type | Required | Description |
|---|---|---|---|
account | str | No | Account ID. If not provided, the default account from |
id | int | Yes | Global order ID returned after order submission |
order_id | int | No | Local order ID |
is_brief | bool | No | Whether to return brief order data |
show_charges | bool | No | Whether to include the list of order charges ( |
Returns
Order object
For detailed field definitions, refer to Order Object
Example
from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import TigerOpenClientConfig
client_config = TigerOpenClientConfig(props_path='/path/to/your/properties/file/')
trade_client = TradeClient(client_config)
print(trade_client.get_order(id=31059079170361344))Return Example
Order({'account': '111111', 'id': 31059079170361344, 'order_id': 948, 'parent_id': None, 'order_time': 1685861168000,
'reason': 'Order expired', 'trade_time': 1686010200000, 'action': 'BUY', 'quantity': 1, 'filled': 0, 'avg_fill_price': 0.0,
'commission': 0.0, 'realized_pnl': 0.0, 'trail_stop_price': None, 'limit_price': 100.0, 'aux_price': None,
'trailing_percent': None, 'percent_offset': None, 'order_type': 'LMT', 'time_in_force': 'DAY', 'outside_rth': True,
'order_legs': None, 'algo_params': None, 'algo_strategy': 'LMT', 'secret_key': '', 'liquidation': False, 'discount': 0,
'attr_desc': None, 'source': 'OpenApi', 'adjust_limit': None, 'sub_ids': None, 'user_mark': '',
'update_time': 1686010200000, 'expire_time': None, 'can_modify': False, 'external_id': '948', 'combo_type': None,
'combo_type_desc': None, 'is_open': True, 'contract_legs': None, 'filled_scale': 0, 'total_cash_amount': None,
'filled_cash_amount': 0.0, 'refund_cash_amount': None, 'attr_list': ['ALGORITHM', 'NON_TRADING_HOURS', 'TEST_ORDER'],
'latest_price': 215.82, 'orders': None, 'gst': 0.0, 'quantity_scale': 0, 'trading_session_type': None, 'charges': None,
'contract': XYZX/STK/USD, 'status': 'CANCELLED', 'remaining': 1})
get_open_orders Get Pending Orders List
TradeClient.get_open_orders(
account=None,
sec_type=None,
market=Market.ALL,
symbol=None,
start_time=None,
end_time=None,
parent_id=None,
sort_by=None,
seg_type=None,
**kwargs
)Description
Retrieve a list of pending orders.
Pending orders include:
- Orders that are submitted but not yet filled
- Orders that are partially filled, where the remaining quantity is still open
Parameters
Parameter Name | Type | Required | Description |
|---|---|---|---|
account | str | No | Account ID. If not provided, the default account from |
sec_type | SecurityType | No | Security type. |
market | Market | No | Market identifier. |
symbol | str | No | Security symbol |
start_time | str or int | No | Start time (inclusive). |
end_time | str or int | No | End time (inclusive). Millisecond timestamp or date string, e.g. |
parent_id | int | No | Parent order ID |
sort_by | OrderSortBy | No | Sorting rule and time reference for start_time and end_time. Supported values include: |
seg_type | SegmentType | No | Account segment:
Values from |
Returns
list[Order]
Each element in the list is an Order object (tigeropen.trade.domain.order.Order).
For detailed field definitions, see Order Object
Example
from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import TigerOpenClientConfig
client_config = TigerOpenClientConfig(props_path='/path/to/your/properties/file/')
trade_client = TradeClient(client_config)
open_orders = trade_client.get_open_orders(sec_type=SecurityType.STK, market=Market.ALL)Return Example
[Order({'account': '1', 'id': 162998104807903232, 'order_id': 341, 'parent_id': 0, 'order_time': 1557972846184, 'reason': '136:Order is already being cancelled.', 'trade_time': 1557975394512, 'action': 'BUY', 'quantity': 2, 'filled': 0, 'avg_fill_price': 0, 'commission': 0, 'realized_pnl': 0, 'trail_stop_price': None, 'limit_price': 0.1, 'aux_price': None, 'trailing_percent': None, 'percent_offset': None, 'order_type': 'LMT', 'time_in_force': 'DAY', 'outside_rth': True, 'contract': SPY, 'status': 'CANCELLED', 'remaining': 2}),
Order({'account': '1', 'id': 162998998620389376, 'order_id': 344, 'parent_id': 0, 'order_time': 1557973698590, 'reason': '136:Order is already being cancelled.', 'trade_time': 1557973773622, 'action': 'BUY', 'quantity': 1, 'filled': 0, 'avg_fill_price': 0, 'commission': 0, 'realized_pnl': 0, 'trail_stop_price': None, 'limit_price': 0.1, 'aux_price': None, 'trailing_percent': None, 'percent_offset': None, 'order_type': 'LMT', 'time_in_force': 'DAY', 'outside_rth': True, 'contract': SPY, 'status': 'CANCELLED', 'remaining': 1}),
Order({'account': '1', 'id': 152239266327625728, 'order_id': 230, 'parent_id': 0, 'order_time': 1547712418243, 'reason': '201:Order rejected - Reason: YOUR ORDER IS NOT ACCEPTED. IN ORDER TO OBTAIN THE DESIRED POSITION YOUR EQUITY WITH LOAN VALUE [1247.90 USD] MUST EXCEED THE INITIAL MARGIN [4989.99 USD]', 'trade_time': 1547712418275, 'action': 'BUY', 'quantity': 100, 'filled': 0, 'avg_fill_price': 0, 'commission': 0, 'realized_pnl': 0, 'trail_stop_price': None, 'limit_price': 5, 'aux_price': None, 'trailing_percent': None, 'percent_offset': None, 'order_type': 'LMT', 'time_in_force': 'DAY', 'outside_rth': True, 'contract': XYZX, 'status': 'REJECTED', 'remaining': 100})]get_cancelled_orders Get Cancelled Orders List
TradeClient.get_cancelled_orders(
account=None,
sec_type=None,
market=Market.ALL,
synmbol=None,
start_time=None,
end_time=None,
sort_by=None,
**kwargs
)Description
Retrieve a list of canceled orders, including manually canceled orders, system-canceled orders, expired orders, and similar cases.
The response may also include partially filled orders in which the remaining unfilled portion was canceled.
Parameters
Parameter Name | Type | Required | Description |
|---|---|---|---|
account | str | No | Account ID. If not provided, the default account from |
sec_type | SecurityType | No | Security type. |
market | Market | No | Market identifier. |
symbol | str | No | Security symbol |
start_time | str or int | No | Start time (inclusive). |
end_time | str or int | No | End time (inclusive). |
sort_by | OrderSortBy | No | Sorting rule and time reference for start_time and end_time. Accepts values from |
seg_type | SegmentType | No | Account segment:
Values from |
Returns
list
Returns a list of order objects. For detailed field descriptions, see Order Object
Example
from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import TigerOpenClientConfig
client_config = TigerOpenClientConfig(props_path='/path/to/your/properties/file/')
trade_client = TradeClient(client_config)
cancelled_orders = trade_client.get_cancelled_orders(sec_type=SecurityType.STK, market=Market.ALL)Return Example
Same as get_orders
get_filled_orders Get Filled Orders List
TradeClient.get_filled_orders(
account=None,
sec_type=None,
market=Market.ALL,
symbol=None,
start_time=None,
end_time=None,
sort_by=None,
seg_type=None,
**kwargs
)Description
Retrieve a list of filled orders.
Orders may be partially filled. In this case the order status may be HELD, CANCELLED, EXPIRED, or REJECTED.
Parameters
Parameter Name | Type | Required | Description |
|---|---|---|---|
account | str | No | Account ID. If not provided, the default account from |
sec_type | SecurityType | No | Security type. |
market | Market | No | Market identifier. |
symbol | str | No | Security symbol |
start_time | str or int | Yes | Start time (inclusive). |
end_time | str or int | Yes | End time (inclusive). |
sort_by | OrderSortBy | No | Sorting rule and time reference for start_time and end_time. Accepts values from |
seg_type | SegmentType | No | Account segment:
Values from |
Note: The interval between start_time and end_time cannot exceed 90 days
Returns
list
Each element in the list is an Order object. For detailed field descriptions, see Order Object
Example
from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import TigerOpenClientConfig
client_config = TigerOpenClientConfig(props_path='/path/to/your/properties/file/')
trade_client = TradeClient(client_config)
print(trade_client.get_filled_orders(start_time='2025-01-05',end_time='2025-03-29'))Return Example
Same as get_orders
get_transactions Get Order Transaction Records
TradeClient.get_transactions(account=None, order_id=None, symbol=None, sec_type=None, start_time=None, end_time=None, limit=100, expiry=None, strike=None, put_call=None)
TradeClient.get_transactions(
account=None,
order_id=None,
symbol=None,
sec_type=None,
start_time=None,
end_time=None,
limit=100,
expiry=None,
strike=None,
put_call=None
)Description Get detailed transaction records of filled orders (only applicable to prime/paper trading accounts).
Parameters
Note: When making requests, parameters must be provided as either:
order_id- or
symbolandsec_type
Parameter Name | Type | Required | Description |
|---|---|---|---|
account | str | No | Account ID. If not provided, uses the default account from |
order_id | int | Yes/No(required when symbol+sec_type not provided) | Global order ID returned after order placement, not local order ID |
symbol | str | Yes/No(required when order_id not provided) | Underlying symbol. When querying by symbol, |
sec_type | SecurityType | Yes/No(required when order_id not provided) | Underlying type. When querying by symbol, |
start_time | str or int | No | Start time (inclusive). |
end_time | str or int | No | End time (inclusive). |
limit | int | No | Number of records to retrieve per request. |
expiry | str | No | Expiry date (for options). |
strike | float | No | Strike price (for options). e.g. 100.5 |
put_call | str | No | Call or Put (for options). 'PUT' or 'CALL' |
page_token | str | No | Page token When page_token is used, the return becomes a |
Returns
list or TransactionsResponse object
If page_token is provided (including an empty string), this method returns a TransactionsResponse object
TransactionsResponse.resultcontains the list of transactionsTransactionsResponse.next_page_tokencontains the value for the next request
If page_token is not provided, the method returns a list of Transaction objects
Each element in the list is a Transaction object. For detailed field descriptions, see Transaction
Example
from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import TigerOpenClientConfig
client_config = TigerOpenClientConfig(props_path='/path/to/your/properties/file/')
trade_client = TradeClient(client_config)
filled_orders = trade_client.get_transactions(symbol='XYZX', sec_type=SecurityType.STK)Get transactions using page_token pagination
def test_get_transaction_by_page():
"""Get all transaction records
Get all transaction records within specified time range using pagination
"""
results = []
params = {
'symbol': 'XYZX',
'start_time': int(datetime.strptime('2023-01-01', '%Y-%m-%d').timestamp() * 1000),
'end_time': int(datetime.strptime('2025-08-01', '%Y-%m-%d').timestamp() * 1000),
'limit': 15,
'page_token': ''
}
page = 1
while True:
response: TransactionsResponse = trade_client.get_transactions(**params)
print(f'page {page}, size {len(response.result)}, next_page_token: {response.next_page_token}')
page += 1
if response.result:
results.extend(response.result)
if not response.next_page_token:
break
params['page_token'] = response.next_page_token
print(f'total: {len(results)}, results: {results}')Return Example
Transaction({'account': 111111, 'order_id': 20947299719447552, 'contract': XYZX/STK/USD, 'id': 20947300069016576, 'action': 'BUY', 'filled_quantity': 1, 'filled_price': 132.25, 'filled_amount': 132.25, 'transacted_at': '2020-12-23 17:06:54'}),
Transaction({'account': 111111, 'order_id': 19837920138101760, 'contract': XYZX/STK/USD, 'id': 19837920740508672, 'action': 'BUY', 'filled_quantity': 1, 'filled_price': 116.21, 'filled_amount': 116.21, 'transacted_at': '2020-09-16 18:02:00'})]
Updated 7 days ago