Eligibility, fee schedules and account prechecks¶
These eight reads require --enable-desktop-phase2-reads (default OFF), acc:read, and extension_version: 1. Live backend verification remains UNVERIFIED. They do not unlock accounts, submit orders, or change credentials.
| API | CLI | POST | MCP |
|---|---|---|---|
GetOptionComboEligibility |
get-option-combo-eligibility |
/api/trd/option-combo-eligibility |
futu_get_option_combo_eligibility |
GetBrokerOptionStrategies |
get-broker-option-strategies |
/api/trd/broker-option-strategies |
futu_get_broker_option_strategies |
GetTransactionFeePlan |
get-transaction-fee-plan |
/api/trd/transaction-fee-plan |
futu_get_transaction_fee_plan |
GetLegacyFutureFeeConfig |
get-legacy-future-fee-config |
/api/trd/legacy-future-fee-config |
futu_get_legacy_future_fee_config |
GetPremiumEntitlements |
get-premium-entitlements |
/api/trd/premium-entitlements |
futu_get_premium_entitlements |
GetFractionalShareWhitelist |
get-fractional-share-whitelist |
/api/trd/fractional-share-whitelist |
futu_get_fractional_share_whitelist |
GetBrokerTotalAssets |
get-broker-total-assets |
/api/trd/broker-total-assets |
futu_get_broker_total_assets |
GetTradePasswordState |
get-trade-password-state |
/api/trd/trade-password-state |
futu_get_trade_password_state |
REST accepts the C2S object, CLI uses --c2s-json, and MCP takes a JSON string in c2s_json. Gateway and gRPC expose the same versioned contracts. Unknown fields and missing required fields are rejected.
| API | Request fields beyond version |
|---|---|
GetOptionComboEligibility |
header |
GetBrokerOptionStrategies |
header |
GetTransactionFeePlan |
header, stock_market, security_type |
GetLegacyFutureFeeConfig |
header |
GetPremiumEntitlements |
need_all_access, premium_access (list) |
GetFractionalShareWhitelist |
header |
GetBrokerTotalAssets |
broker_id, price_options {before, after, overnight} |
GetTradePasswordState |
header |
header selects a real business account with trd_env: 1, nonzero acc_id, and trd_market; optional jp_acc_type selects a known Japanese subaccount. Account selection must be allowed by the caller key. All price-option booleans must be present, including explicit false.
Result semantics¶
- Account option eligibility and broker strategy configuration are separate: a broker supporting a strategy does not prove the selected account qualifies. Missing option level differs from level zero. Broker strategy configuration can use an authenticated platform session while the selected broker connection is unavailable.
- Transaction fee plans preserve normal/tiered/special configurations, dependencies, precision, rounding, validity windows, and decimal strings.
stock_marketsupports ½/⅘/6/9;security_typesupports 1–7, in this fee API's enum namespaces. Supported account routes are HK/US/SG/AU; unsupported account-market mappings fail explicitly. CRM staff identity is omitted. - Legacy futures fees are a historical configuration source. SG requests use SG; other selected brokers use HK. Always inspect
requested_brokerandeffective_broker; this is not a claim that HK fees apply to the selected broker. Unknown commission-type strings and all decimal strings are preserved. - Premium
need_all_access=truerequests all rights (the ID list must be empty); false selectspremium_accessIDs.itemscontains the current valid response;session_known_itemsalso contains previously queried rights in this authority session. Missing permission differs from false. UI jump identifiers are configuration IDs, not URLs. This state does not grant quote/trading permission and is invalidated on owner/session change. - Fractional-share whitelist support follows dynamic configuration. Missing broker customer identity or unsupported configuration fails; opaque stock IDs are preserved.
- Broker total assets cover the entire selected broker, not a single account. Keys with an account allowlist are rejected, even if one account is authorized.
broker_idvalues: HK 1001, US 1007, SG 1008, AU 1009, JP 1012, MY 1017, CA 1019. Results preserve totals and security/currency distributions; administrator-only attributes and obsolete account distribution are excluded. A ratio string"0.32"means 32%. Overnight prices require known broker capability configuration and explicit preference. - Password state reports whether a trading password exists and the optional six-digit property. It does not report token status or validate/change any password.
Preview sidecar¶
PreviewOrderImpact retains its existing --enable-v18-experimental-reads switch and three margin/risk/fee sidecars. Enabling --enable-desktop-phase2-reads additionally returns optional short_tips with its own status, code, and three optional flags: is_naked_short, is_buy_splitting_combo, is_sell_splitting_combo. Failure does not erase the other sidecars. The response remains estimate_only=true and never authorizes order placement.
The extra query applies to supported HK/US equity/option scenarios with an actual quantity; crypto, unsupported brokers/account types, futures options, amount-only orders, or missing/ambiguous authoritative combo underlying produce Unsupported for this sidecar. Quantity strings and modify-order IDs retain their original meaning. A failed or absent flag must not be interpreted as false.