Account history and futures reads¶
Nine versioned account reads require --enable-desktop-phase2-reads (default OFF), acc:read, and access to the selected real business account. Live verification is UNVERIFIED. These reads do not place orders or unlock trading.
| API | CLI | REST POST | MCP |
|---|---|---|---|
GetOrderFillDetails |
get-order-fill-details |
/api/trd/order-fill-details |
futu_get_order_fill_details |
GetOrderDates |
get-order-dates |
/api/trd/order-dates |
futu_get_order_dates |
GetTodayFillStatistics |
get-today-fill-statistics |
/api/trd/today-fill-statistics |
futu_get_today_fill_statistics |
GetFutureSubpositions |
get-future-subpositions |
/api/trd/future-subpositions |
futu_get_future_subpositions |
GetSymbolHistoryOrders |
get-symbol-history-orders |
/api/trd/symbol-history-orders |
futu_get_symbol_history_orders |
GetSymbolHistoryFills |
get-symbol-history-fills |
/api/trd/symbol-history-fills |
futu_get_symbol_history_fills |
GetSubAccountFillQuantities |
get-sub-account-fill-quantities |
/api/trd/sub-account-fill-quantities |
futu_get_sub_account_fill_quantities |
GetSymbolTradeCounts |
get-symbol-trade-counts |
/api/trd/symbol-trade-counts |
futu_get_symbol_trade_counts |
GetFuturePositionBreakdown |
get-future-position-breakdown |
/api/trd/future-position-breakdown |
futu_get_future_position_breakdown |
All requests require extension_version: 1 and header: {trd_env: 1, acc_id: <account-id>, trd_market: <market>}. Use an authorized business account from account discovery. Aggregate parent and simulated accounts are unsupported. REST takes the C2S object directly; CLI uses --c2s-json; MCP takes a JSON string in c2s_json. Gateway and gRPC expose the same contract.
| API | Required additional fields | Optional fields |
|---|---|---|
GetOrderFillDetails |
order_id, exchange |
— |
GetOrderDates |
year, month (1–12) |
stock_market, jp_acc_type |
GetTodayFillStatistics |
currency |
stock_market, jp_acc_type |
GetFutureSubpositions |
position_id |
— |
GetSymbolHistoryOrders |
security, time_begin_us, time_end_us |
page_size |
GetSymbolHistoryFills |
security, time_begin_us, time_end_us |
page_size |
GetSubAccountFillQuantities |
orders: [{order_id, security_type, exchange}] |
— |
GetSymbolTradeCounts |
security, time_begin_us, time_end_us, period (1/2/3) |
— |
GetFuturePositionBreakdown |
position_id, quote_options: {before, after, overnight} |
— |
security contains numeric market and string code; time ranges use Unix microseconds. All three quote flags must be explicit, including false. Select month/quarter/year with period ½/3. String order and position identifiers must come from actual query results. Order metadata is a query condition; it never grants access to another account.
Results and failure behavior¶
Order details preserve full fill records and a separate crypto fill list. Symbol history returns the resolved security alongside orders/fills; continuous futures resolve once per request. Counts return period/trade metadata and per-date counts. Order dates report the account timezone and asset category. Fill statistics distinguish requested/effective public currency from the original service denomination. Futures subpositions and the richer breakdown are separate explicit APIs; neither silently substitutes for the other.
Decimals remain strings; optional fields retain absence. Pagination is collected before success: a later error, malformed response or changed account session fails the entire request. The richer breakdown requires known overnight permission configuration. Missing prerequisites produce errors rather than fabricated values. Backend support and account eligibility require live verification.
currency uses the public trading currency enum. stock_market belongs to this extension's security-market namespace (for example HK 1, US 2, Japan 15), which differs from header.trd_market and security.market. Omission selects opened account markets; an ambiguous Japanese asset category requires an explicit market. jp_acc_type must belong to the account and must not conflict with the header selector.
For index and crypto symbols, counts return empty records with no period/trade metadata and no statistics request. Order dates may include days without fills. History ranges require a positive start earlier than the end; the call collects all pages before succeeding.