REST API Endpoint Catalog¶
Generated from the current REST route inventory, grouped by business function.
This page covers 323 public REST endpoints of futu-opend,
organized into 15 functional groups. It is a route catalog with selected
field notes and request examples, not a complete field schema. Follow each endpoint
field table and linked contract for parameter and response details. The catalog includes:
- HTTP method + URL
- Backend
proto_id - Required auth scope
- Selected field tables and contract links
- Error hints
- curl example
Quick nav:
| Group | Endpoints | Link |
|---|---|---|
| System / Status | 8 | System / Status |
| Quote Subscriptions | 5 | Quote Subscriptions |
| Quote Queries | 36 | Quote Queries |
| Plates / Filter / Metadata | 21 | Plates / Filter / Metadata |
| Reference / Derivatives | 74 | Reference / Derivatives |
| Market Rankings / Sentiment | 13 | Market Rankings / Sentiment |
| News / Announcements | 12 | News / Announcements |
| Calendars / Macroeconomics | 11 | Calendars / Macroeconomics |
| Institutions / Holdings Research | 11 | Institutions / Holdings Research |
| Watchlists / Private Notes | 6 | Watchlists / Private Notes |
| Price / Event Alerts | 12 | Price / Event Alerts |
| Trading Accounts (Read) | 68 | Trading Accounts (Read) |
| Trading Write | 31 | Trading Write |
| Quantitative Strategies / Cloud Sync | 12 | Quantitative Strategies / Cloud Sync |
| Admin | 3 | Admin |
Global conventions¶
- Legacy read-only Base URL:
http://127.0.0.1:22499(the examples assume an explicit--rest-port 22499; configure a port to enable the REST listener). Credential-free reads remain available over HTTP when no keys file is configured: - Scope mode Base URL:
https://127.0.0.1:22499. Configuringrest_keys_fileenables REST scope mode and requires bothrest_tls_certandrest_tls_key. The daemon validates the certificate/private key before broker login and refuses to bind authenticated REST over plaintext. HTTPS examples require a certificate matching the URL hostname/IP and a CA trusted by curl. For a private CA, add--cacert /path/to/ca.pemto curl. - WebSocket: use
wss://127.0.0.1:22499/wsfor/wson the same listener in scope mode. Legacy no-key compatibility may continue to usews://. - Content-Type:
application/json - Auth:
Authorization: Bearer <API_KEY>(ifkeys.jsonis configured; otherwise legacy mode without auth — and since v1.4.86 fail-closed is the production default) -
Response envelope:
ret_type == 0means success; other values see common error codes. -
Fields and enums: Follow each endpoint field table and linked contract for field names, aliases, and enum representations. Send integer enums as JSON numbers; use strings only where the field explicitly lists accepted string values. For example,
/api/ipo-listaccepts its listed integers or strings formarket. -
Rate / limits: Controlled via startup flags (
--allowed-markets,--max-order-value, etc.). See Authentication and limits.
System / Status¶
System status, health checks, and authentication verification. Health checks are public; see each endpoint for its scope and local-access requirements.
GET /api/delay-statistics¶
proto_id: GET_DELAY_STATISTICS (1007)
Scope: legacy/public: —; scope-mode: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
POST /api/delay-statistics¶
proto_id: GET_DELAY_STATISTICS (1007)
Scope: legacy/public: —; scope-mode: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"type_list":[1],"qot_push_stage":1}' \
https://127.0.0.1:22499/api/delay-statistics
GET /api/global-state¶
proto_id: GET_GLOBAL_STATE (1002)
Scope: legacy/public: —; scope-mode: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
GET /api/ping¶
proto_id: GET_GLOBAL_STATE (1002)
Scope: legacy/public: —; scope-mode: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
GET /api/push-subscriber-info¶
proto_id: — (non-proto / no backend forwarding)
Scope: legacy/public: —; scope-mode: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
GET /api/quote-rights¶
proto_id: TEST_CMD (1008)
Scope: legacy/public: —; scope-mode: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
GET /api/user-info¶
proto_id: GET_USER_INFO (1005)
Scope: legacy/public: —; scope-mode: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
POST /api/verification¶
proto_id: VERIFICATION (1006)
Scope: auth:setup
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"type":1,"op":1}' \
https://127.0.0.1:22499/api/verification
Quote Subscriptions¶
Subscribe/unsubscribe quote push, query subscription state, and receive push via WebSocket /ws. All three use qot:read.
POST /api/query-subscription¶
proto_id: QOT_GET_SUB_INFO (3003)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"is_req_all_conn":true}' \
https://127.0.0.1:22499/api/query-subscription
GET /api/sub-info¶
proto_id: QOT_GET_SUB_INFO (3003)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
POST /api/subscribe¶
proto_id: QOT_SUB (3001)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbols":["HK.00700"],"sub_types":[1],"is_sub_or_un_sub":true}' \
https://127.0.0.1:22499/api/subscribe
POST /api/unsubscribe¶
proto_id: QOT_SUB (3001)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbols":["HK.00700"],"sub_types":[1],"is_sub_or_un_sub":false}' \
https://127.0.0.1:22499/api/unsubscribe
GET /ws¶
proto_id: — (non-proto / no backend forwarding)
Scope: legacy/public: —; scope-mode: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Legacy mode without keys.json stays public for compatibility. In scope-mode,
the handshake must carry ?token= or Authorization: Bearer <key>, and the key
must have qot:read.
Example:
Quote Queries¶
Real-time quotes, K-line, order book, broker queue, time-sharing, ticker, ticker statistics, risk-free rate, spread table, and quote quota. Quote reads generally require qot:read; see endpoint scopes for tape subscription maintenance and quote inquiries.
POST /api/bond-quote-info¶
proto_id: QOT_GET_BOND_QUOTE_INFO (2131755051)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"acc_id":123456,"env":1}' \
https://127.0.0.1:22499/api/bond-quote-info
POST /api/broker¶
proto_id: QOT_GET_BROKER (3014)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbol":"HK.00700"}' \
https://127.0.0.1:22499/api/broker
POST /api/capital-distribution¶
proto_id: QOT_GET_CAPITAL_DISTRIBUTION (3212)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbol":"HK.00700"}' \
https://127.0.0.1:22499/api/capital-distribution
POST /api/capital-flow¶
proto_id: QOT_GET_CAPITAL_FLOW (3211)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbol":"HK.00700","period_type":1}' \
https://127.0.0.1:22499/api/capital-flow
POST /api/chip-distribution¶
proto_id: QOT_GET_CHIP_DISTRIBUTION (2131755052)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/chip-distribution
POST /api/forex-rates¶
proto_id: QOT_GET_FOREX_RATES (2131755030)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/forex-rates
POST /api/history-kl-quota¶
proto_id: QOT_REQUEST_HISTORY_KL_QUOTA (3104)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Quota source: used_quota / remain_quota use the account's dynamic historical K-line quota returned by backend request after login.
FUTU_HISTORY_KL_QUOTA_MAX only overrides that dynamic quota when explicitly set. Before the dynamic quota arrives, Rust uses the C++ cold-start default 100 as a fail-closed fallback.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"b_get_detail":false}' \
https://127.0.0.1:22499/api/history-kl-quota
POST /api/history-kline¶
proto_id: QOT_REQUEST_HISTORY_KL (3103)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Note: REST kl_type accepts integers only; these values come from the public Qot_Common.KLType enum.
kl_type |
Period |
|---|---|
1 |
1-minute |
2 |
Day |
3 |
Week |
4 |
Month |
5 |
Year |
6 |
5-minute |
7 |
15-minute |
8 |
30-minute |
9 |
60-minute |
10 |
3-minute |
11 |
Quarter |
12 |
10-minute |
13 |
120-minute |
14 |
180-minute |
15 |
240-minute |
The string form ("day") is supported only at the MCP layer. Field count is alias-mapped to proto req_num (both accepted).
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"},"rehab_type":0,"kl_type":2,"max_count":100,"begin_time":"2026-01-01 00:00:00","end_time":"2026-04-01 23:59:59"}' \
https://127.0.0.1:22499/api/history-kline
POST /api/kline¶
proto_id: QOT_GET_KL (3006)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Note: Same as /api/history-kline — REST kl_type accepts integers only; proto field is canonical req_num, count is the v1.4.83+ alias.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbol":"HK.00700","rehab_type":0,"kl_type":2,"req_num":100}' \
https://127.0.0.1:22499/api/kline
POST /api/kline-pattern¶
proto_id: QOT_GET_KLINE_PATTERN (2131755021)
Scope: qot:read
Enabled by default: uses --kline-patterns. Evidence is source-aligned + local-green; live backend behavior remains unverified. Point/line values are restored from 1e9 scale and field presence is preserved.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"stock_id":7001,"kline_type":2,"extension_version":1}' \
https://127.0.0.1:22499/api/kline-pattern
POST /api/kline-pattern-catalog¶
proto_id: QOT_GET_KLINE_PATTERN_CATALOG (2131755025)
Scope: qot:read
Enabled by default: uses --kline-patterns. count<=0 requests all rows (Desktop sends -1); URLs/strings are returned unchanged and are not opened or validated by the daemon.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"filter":0,"count":-1,"start_count":0,"color":0,"extension_version":1}' \
https://127.0.0.1:22499/api/kline-pattern-catalog
POST /api/kline-pattern-performance¶
proto_id: QOT_GET_KLINE_PATTERN_PERFORMANCE (2131755024)
Scope: qot:read
Enabled by default / UNVERIFIED: controlled by --kline-pattern-performance. The pinned Desktop source has a proto and registry entry but no business caller, so responses must explicitly contain ret_code=0; profit fields remain signed raw values because the source defines no scale.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"shape":1,"duration":0,"extension_version":1}' \
https://127.0.0.1:22499/api/kline-pattern-performance
POST /api/kline-pattern-statistics¶
proto_id: QOT_GET_KLINE_PATTERN_STATISTICS (2131755022)
Scope: qot:read
Enabled by default: uses --kline-patterns. Forecast/backtest fields are descriptive statistics, not deterministic investment advice. URLs/strings are opaque metadata and are neither fetched nor rewritten by the daemon.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"stock_id":7001,"kline_type":2,"shape":1,"color":0,"extension_version":1}' \
https://127.0.0.1:22499/api/kline-pattern-statistics
POST /api/kline-pattern-stocks¶
proto_id: QOT_GET_KLINE_PATTERN_STOCKS (2131755023)
Scope: qot:read
Enabled by default: uses --kline-patterns. sort_type=-1 preserves backend-default ordering; count<=0 requests all rows; watchlist/holding ID order and duplicates are sent unchanged.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"kline_type":2,"shape":1,"market":3,"sort_order":1,"sort_type":-1,"count":-1,"start_count":0,"user_stock_list_mode":0,"extension_version":1}' \
https://127.0.0.1:22499/api/kline-pattern-stocks
POST /api/market-state¶
proto_id: QOT_GET_MARKET_STATE (3223)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbols":["HK.00700"]}' \
https://127.0.0.1:22499/api/market-state
POST /api/multi-day-volume-averages¶
proto_id: QOT_GET_MULTI_DAY_VOLUME_AVERAGES (2131755061)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/multi-day-volume-averages
POST /api/orderbook¶
proto_id: QOT_GET_ORDER_BOOK (3012)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbol":"HK.00700","depth":10}' \
https://127.0.0.1:22499/api/orderbook
POST /api/quote¶
proto_id: QOT_GET_BASIC_QOT (3004)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbol":"HK.00700"}' \
https://127.0.0.1:22499/api/quote
GET /api/quote-capability¶
proto_id: TEST_CMD (1008)
Scope: legacy/public: —; scope-mode: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
POST /api/request-hk-option-quote¶
proto_id: QOT_REQUEST_HK_OPTION_QUOTE (2131755090)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/request-hk-option-quote
GET /api/risk-free-rate¶
proto_id: QOT_GET_RISK_FREE_RATE (20231)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Purpose: Risk-free rate for HK / US / JP, required for Black-Scholes option pricing.
Field table (no required field):
| Field | Type | Required | Description |
|---|---|---|---|
rate_time |
int64 | optional | Unix ms timestamp; omit for latest rate |
Response: s2c includes hk_rate_pct / us_rate_pct / jp_rate_pct (percent, e.g. 4.5 for 4.5%). The raw uint64 (×10^9) values are also exposed so callers can verify on their own.
Example:
POST /api/risk-free-rate¶
proto_id: QOT_GET_RISK_FREE_RATE (20231)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Purpose: Risk-free rate for HK / US / JP, required for Black-Scholes option pricing.
Field table (no required field):
| Field | Type | Required | Description |
|---|---|---|---|
rate_time |
int64 | optional | Unix ms timestamp; omit for latest rate |
Response: s2c includes hk_rate_pct / us_rate_pct / jp_rate_pct (percent, e.g. 4.5 for 4.5%). The raw uint64 (×10^9) values are also exposed so callers can verify on their own.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/risk-free-rate
POST /api/rt¶
proto_id: QOT_GET_RT (3008)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbol":"HK.00700"}' \
https://127.0.0.1:22499/api/rt
POST /api/search-quote¶
proto_id: QOT_GET_SEARCH_QUOTE (3262)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"keyword":"AAPL","max_count":10}' \
https://127.0.0.1:22499/api/search-quote
POST /api/set-tape-reading-subscription¶
proto_id: QOT_SET_TAPE_READING_SUBSCRIPTION (2131755073)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/set-tape-reading-subscription
POST /api/snapshot¶
proto_id: QOT_GET_SECURITY_SNAPSHOT (3203)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbol":"HK.00700"}' \
https://127.0.0.1:22499/api/snapshot
GET /api/spread-table¶
proto_id: QOT_GET_SPREAD_TABLE (6503)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Purpose: Spread table for tick-size lookup across price bands (e.g. HK stocks 0.01~0.25 → step 0.001). Required for client-side price validation in PlaceOrder / ModifyOrder.
Field table (no business parameter):
| Field | Type | Required | Description |
|---|---|---|---|
reserved |
int | optional | Placeholder; always returns the full spread tables |
Response: s2c.spread_table_list contains each spread table (spread_code + spread_item_list); each item carries price_from / price_to / value as f64 (raw int64 ÷ 1e9 already applied).
Example:
POST /api/spread-table¶
proto_id: QOT_GET_SPREAD_TABLE (6503)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Purpose: Spread table for tick-size lookup across price bands (e.g. HK stocks 0.01~0.25 → step 0.001). Required for client-side price validation in PlaceOrder / ModifyOrder.
Field table (no business parameter):
| Field | Type | Required | Description |
|---|---|---|---|
reserved |
int | optional | Placeholder; always returns the full spread tables |
Response: s2c.spread_table_list contains each spread table (spread_code + spread_item_list); each item carries price_from / price_to / value as f64 (raw int64 ÷ 1e9 already applied).
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/spread-table
POST /api/static-info¶
proto_id: QOT_GET_STATIC_INFO (3202)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbols":["HK.00700","US.AAPL"]}' \
https://127.0.0.1:22499/api/static-info
POST /api/stock-advanced-indicators¶
proto_id: QOT_GET_STOCK_ADVANCED_INDICATORS (2131755043)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/stock-advanced-indicators
POST /api/tape-reading-events¶
proto_id: QOT_GET_TAPE_READING_EVENTS (2131755071)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/tape-reading-events
POST /api/tape-reading-statistics¶
proto_id: QOT_GET_TAPE_READING_STATISTICS (2131755072)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/tape-reading-statistics
POST /api/ticker¶
proto_id: QOT_GET_TICKER (3010)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbol":"HK.00700","count":50}' \
https://127.0.0.1:22499/api/ticker
POST /api/ticker-statistic¶
proto_id: QOT_GET_TICKER_STATISTIC (6365)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Purpose: Ticker statistics. Aggregates per-tick deals into time intervals (cumulative volume / turnover / avg price).
Field table:
| Field | Type | Required | Description |
|---|---|---|---|
security or symbol |
object/string | ✅ | Underlying; shorthand "HK.00700" |
interval_type |
int | ✅ | Aggregation granularity enum (see proto) |
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbol":"HK.00700","interval_type":1}' \
https://127.0.0.1:22499/api/ticker-statistic
POST /api/ticker-statistic-detail¶
proto_id: QOT_GET_TICKER_STATISTIC_DETAIL (6366)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/ticker-statistic-detail
POST /api/used-quota¶
proto_id: GET_USED_QUOTA (1010)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/used-quota
Plates / Filter / Metadata¶
Plates and industrial chains, cross-asset screening, trading days and sessions, suspensions, code changes, IPO lists, and indicator catalogs.
POST /api/bond-screen¶
proto_id: QOT_BOND_SCREEN (2131755020)
Scope: qot:read
Enablement and evidence boundary: start with --extended-data-reads; the feature is on by default. Current evidence is source-aligned + local-green; live backend behavior remains unverified.
data_max_count is 1..100; source_types accepts only 1 (Hong Kong) or 2 (Singapore). String-screen factor_id values are dynamic backend catalogs; range screens accept intervals only. Per the source contract, the single sort takes precedence over sorts.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"conditions":[{"type_id":2,"intervals":[{"lower":{"value":0}}]}],"data_from":0,"data_max_count":20,"source_types":[1],"extension_version":1}' \
https://127.0.0.1:22499/api/bond-screen
POST /api/code-change¶
proto_id: QOT_GET_CODE_CHANGE (3216)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"search":{"code_change_type_list":[1],"time_filter_list":[{"type":1,"begin_time":"2026-01-01","end_time":"2026-04-01"}]}}' \
https://127.0.0.1:22499/api/code-change
POST /api/etf-screen¶
proto_id: QOT_ETF_SCREEN (2131755017)
Scope: qot:read
Enablement and evidence boundary: start with --extended-data-reads; the feature is on by default. Current evidence is source-aligned + local-green; live backend behavior remains unverified.
data_max_count is 1..500; static market/field/period/content/sort catalogs are declared in the public proto. Dynamic issuer, region, sector, and holding subkeys are backend-owned selection data and must not be guessed locally.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"data_from":0,"data_max_count":20,"need_fields":[{"field_id":5}],"extension_version":1}' \
https://127.0.0.1:22499/api/etf-screen
POST /api/forex-constituents¶
proto_id: QOT_GET_FOREX_CONSTITUENTS (2131755034)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/forex-constituents
POST /api/fund-screen¶
proto_id: QOT_FUND_SCREEN (2131755018)
Scope: qot:read
Enablement and evidence boundary: start with --extended-data-reads; the feature is on by default. Current evidence is source-aligned + local-green; live backend behavior remains unverified.
data_max_count is 1..500; the full 33-field fund contract does not share a DTO with ETF/future/bond screeners. Company, theme, and set IDs are dynamic backend catalogs. This public protocol preserves the full backend contract rather than one Desktop list widget's selected/no-search/region defaults. Per the source contract, non-empty sorts takes precedence over the single sort.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"fund_types":[1],"risk_levels":[1],"currency_units":[1],"data_from":0,"data_max_count":20,"field_ids":[3],"source_types":[1],"extension_version":1}' \
https://127.0.0.1:22499/api/fund-screen
POST /api/future-screen¶
proto_id: QOT_FUTURE_SCREEN (2131755019)
Scope: qot:read
Enablement and evidence boundary: start with --extended-data-reads; the feature is on by default. Current evidence is source-aligned + local-green; live backend behavior remains unverified.
data_max_count is 1..100; crypto-future filtering is derived from the daemon's fresh quote entitlement. Fixed screen/factor catalogs are declared in the public proto; newly introduced factors remain owned by backend discovery. Per the source contract, the single sort takes precedence over sorts.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"conditions":[{"type_id":1,"factor_ids":[1]}],"data_from":0,"data_max_count":20,"extension_version":1}' \
https://127.0.0.1:22499/api/future-screen
POST /api/indicator-list¶
proto_id: QOT_GET_INDICATOR_LIST (3259)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/indicator-list
POST /api/industrial-chain-by-plate¶
proto_id: QOT_GET_INDUSTRIAL_CHAIN_BY_PLATE (3429)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"plate_id":1}' \
https://127.0.0.1:22499/api/industrial-chain-by-plate
POST /api/industrial-chain-detail¶
proto_id: QOT_GET_INDUSTRIAL_CHAIN_DETAIL (3428)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"chain_id":1}' \
https://127.0.0.1:22499/api/industrial-chain-detail
POST /api/industrial-chain-list¶
proto_id: QOT_GET_INDUSTRIAL_CHAIN_LIST (3427)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"count":20}' \
https://127.0.0.1:22499/api/industrial-chain-list
POST /api/industrial-plate-info¶
proto_id: QOT_GET_INDUSTRIAL_PLATE_INFO (3430)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"plate_id":1}' \
https://127.0.0.1:22499/api/industrial-plate-info
POST /api/industrial-plate-stock¶
proto_id: QOT_GET_INDUSTRIAL_PLATE_STOCK (3431)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"plate_id":1,"count":50}' \
https://127.0.0.1:22499/api/industrial-plate-stock
POST /api/ipo-list¶
proto_id: QOT_GET_IPO_LIST (3217)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Field table:
| Field | Type | Required | Description |
|---|---|---|---|
market |
int/string | ✅ | IPO endpoint-local market: 1/HK, 2/HK_FUTURE, 11/US, 21/CN/SH, 22/SZ, 31/SG, 41/JP, 61/MY |
Note: The backend distinguishes HK / US / A-share / SG / JP / MY. Wrong market returns invalid-market.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"c2s":{"market":1}}' \
https://127.0.0.1:22499/api/ipo-list
POST /api/list-plates¶
proto_id: QOT_GET_PLATE_SET (3204)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"plate_set_type":0}' \
https://127.0.0.1:22499/api/list-plates
POST /api/market-trading-sessions¶
proto_id: QOT_GET_MARKET_TRADING_SESSIONS (2131755010)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"items":[{"market_id":2,"begin_date":20261101,"num":1}],"extension_version":1}' \
https://127.0.0.1:22499/api/market-trading-sessions
POST /api/plate-security¶
proto_id: QOT_GET_PLATE_SECURITY (3205)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"plate":{"market":1,"code":"BK1001"}}' \
https://127.0.0.1:22499/api/plate-security
POST /api/plate-set¶
proto_id: QOT_GET_PLATE_SET (3204)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"plate_set_type":0}' \
https://127.0.0.1:22499/api/plate-set
POST /api/security-trading-sessions¶
proto_id: QOT_GET_SECURITY_TRADING_SESSIONS (2131755009)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"code":"AAPL","exchange":"US","begin_date":20261101,"num":1,"extension_version":1}' \
https://127.0.0.1:22499/api/security-trading-sessions
POST /api/stock-filter¶
proto_id: QOT_STOCK_FILTER (3215)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"begin":0,"num":50,"market":1,"plate":{"market":1,"code":"BK1001"}}' \
https://127.0.0.1:22499/api/stock-filter
POST /api/suspend¶
proto_id: QOT_GET_SUSPEND (3201)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbols":["HK.00700"],"begin_time":"2026-01-01","end_time":"2026-04-01"}' \
https://127.0.0.1:22499/api/suspend
POST /api/trading-days¶
proto_id: QOT_REQUEST_TRADE_DATE (3219)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"begin_time":"2026-01-01","end_time":"2026-04-01"}' \
https://127.0.0.1:22499/api/trading-days
Reference / Derivatives¶
Warrant references, option chains and research, futures contracts, rehab, holding changes, company profiles, financials, ratings, valuation, corporate actions, shareholders, insiders, screening, and unusual activity.
POST /api/bond-redemptions¶
proto_id: QOT_GET_BOND_REDEMPTIONS (2131755062)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"acc_id":123456,"env":1}' \
https://127.0.0.1:22499/api/bond-redemptions
POST /api/calendar-future-spreads¶
proto_id: QOT_GET_CALENDAR_FUTURE_SPREADS (2131755047)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/calendar-future-spreads
POST /api/calendar-future-underlyings¶
proto_id: QOT_GET_CALENDAR_FUTURE_UNDERLYINGS (2131755046)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/calendar-future-underlyings
POST /api/cbbc-basic-info¶
proto_id: QOT_GET_CBBC_BASIC_INFO (2131755044)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/cbbc-basic-info
POST /api/cbbc-distribution¶
proto_id: QOT_GET_CBBC_DISTRIBUTION (2131755045)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/cbbc-distribution
POST /api/company-executive-background¶
proto_id: QOT_GET_COMPANY_EXECUTIVE_BACKGROUND (3245)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"},"leader_name":"Pony Ma"}' \
https://127.0.0.1:22499/api/company-executive-background
POST /api/company-executives¶
proto_id: QOT_GET_COMPANY_EXECUTIVES (3244)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/company-executives
POST /api/company-operational-efficiency¶
proto_id: QOT_GET_COMPANY_OPERATIONAL_EFFICIENCY (3246)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/company-operational-efficiency
POST /api/company-profile¶
proto_id: QOT_GET_COMPANY_PROFILE (3243)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/company-profile
POST /api/corporate-actions-buybacks¶
proto_id: QOT_GET_CORPORATE_ACTIONS_BUYBACKS (3235)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/corporate-actions-buybacks
POST /api/corporate-actions-dividends¶
proto_id: QOT_GET_CORPORATE_ACTIONS_DIVIDENDS (3234)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/corporate-actions-dividends
POST /api/corporate-actions-stock-splits¶
proto_id: QOT_GET_CORPORATE_ACTIONS_STOCK_SPLITS (3236)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/corporate-actions-stock-splits
POST /api/daily-short-volume¶
proto_id: QOT_GET_DAILY_SHORT_VOLUME (3248)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/daily-short-volume
POST /api/derivative-unusual¶
proto_id: QOT_GET_DERIVATIVE_UNUSUAL (3803)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"stock_symbol":"HK.00700"}' \
https://127.0.0.1:22499/api/derivative-unusual
POST /api/earnings-expected-move¶
proto_id: QOT_GET_EARNINGS_EXPECTED_MOVE (2131755032)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/earnings-expected-move
POST /api/financial-unusual¶
proto_id: QOT_GET_FINANCIAL_UNUSUAL (3802)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"stock_symbol":"HK.00700"}' \
https://127.0.0.1:22499/api/financial-unusual
POST /api/financials-earnings-price-history¶
proto_id: QOT_GET_FINANCIALS_EARNINGS_PRICE_HISTORY (3226)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/financials-earnings-price-history
POST /api/financials-earnings-price-move¶
proto_id: QOT_GET_FINANCIALS_EARNINGS_PRICE_MOVE (3225)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/financials-earnings-price-move
POST /api/financials-revenue-breakdown¶
proto_id: QOT_GET_FINANCIALS_REVENUE_BREAKDOWN (3228)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/financials-revenue-breakdown
POST /api/financials-statements¶
proto_id: QOT_GET_FINANCIALS_STATEMENTS (3227)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/financials-statements
POST /api/future-info¶
proto_id: QOT_GET_FUTURE_INFO (3218)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Field table:
| Field | Type | Required | Description |
|---|---|---|---|
security_list or symbols |
array | ✅ | Futures contracts; e.g. ["HK.HSImain", "US.NQmain"] |
Note: An empty security_list triggers a backend no stock specified error; supply at least one contract.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"c2s":{"securityList":[{"market":1,"code":"HSImain"}]}}' \
https://127.0.0.1:22499/api/future-info
POST /api/get-reference¶
proto_id: QOT_GET_REFERENCE (3206)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Field table:
| Field | Type | Required | Description |
|---|---|---|---|
security or symbol |
object/string | ✅ | Underlying stock; shorthand "HK.00700" |
reference_type |
int | ✅ | 1=Warrant / 2=Future (main-continuous related contracts) |
Option NOT supported: The backend ReferenceType proto only defines Warrant / Future. Passing "reference_type":3 returns unsupported reference type. The MCP tool futu_get_reference likewise rejects anything other than warrant / future.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbol":"HK.00700","reference_type":1}' \
https://127.0.0.1:22499/api/get-reference
POST /api/get-silver-bond-dividends¶
proto_id: QOT_GET_SILVER_BOND_DIVIDENDS (2131755089)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/get-silver-bond-dividends
POST /api/holding-change¶
proto_id: QOT_GET_HOLDING_CHANGE_LIST (3208)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
⚠️ Deprecated: The upstream backend abandoned this endpoint after 2020-12-21. Calls return
ret_type=-1with"will be abandoned after 2020-12-21". No longer guaranteed to work; do not use in new code.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbol":"HK.00700","holder_category":1,"begin_time":"2026-01-01","end_time":"2026-04-01"}' \
https://127.0.0.1:22499/api/holding-change
POST /api/insider-holder-list¶
proto_id: QOT_GET_INSIDER_HOLDER_LIST (3241)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/insider-holder-list
POST /api/insider-trade-list¶
proto_id: QOT_GET_INSIDER_TRADE_LIST (3242)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/insider-trade-list
POST /api/option-chain¶
proto_id: QOT_GET_OPTION_CHAIN (3209)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Field table:
| Field | Type | Required | Description |
|---|---|---|---|
owner or symbol |
object/string | ✅ | Underlying stock (HK/US blue chips, HSI/HSCEI/major US indices); shorthand "HK.00700" |
begin_time |
string | ✅ | Strike date start (YYYY-MM-DD) |
end_time |
string | ✅ | Strike date end (YYYY-MM-DD) |
condition |
object | optional | Option filter (type / strike range / quote) |
Owner shorthand: Only top-level "owner":"HK.00700" auto-expands to a Security object; do not pass "security":{...} explicitly (proto field is owner, not security).
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"owner":"HK.00700","begin_time":"2026-05-01","end_time":"2026-06-01"}' \
https://127.0.0.1:22499/api/option-chain
POST /api/option-chain-metadata¶
proto_id: QOT_GET_OPTION_CHAIN_METADATA (2131755035)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/option-chain-metadata
POST /api/option-earnings-screener¶
proto_id: QOT_GET_OPTION_EARNINGS_SCREENER (3313)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"option_market":1,"count":50}' \
https://127.0.0.1:22499/api/option-earnings-screener
POST /api/option-event¶
proto_id: QOT_GET_OPTION_EVENT (3307)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"option_market":1,"count":50}' \
https://127.0.0.1:22499/api/option-event
POST /api/option-event-detail¶
proto_id: QOT_GET_OPTION_EVENT_DETAIL (2131755053)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/option-event-detail
POST /api/option-exercise-probability¶
proto_id: QOT_GET_OPTION_EXERCISE_PROBABILITY (3251)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":11,"code":"AAPL260116C200000"}}' \
https://127.0.0.1:22499/api/option-exercise-probability
POST /api/option-expiration-date¶
proto_id: QOT_GET_OPTION_EXPIRATION_DATE (3224)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Field table:
| Field | Type | Required | Description |
|---|---|---|---|
owner or symbol |
object/string | ✅ | Underlying stock; shorthand "HK.00700" |
index_option_type |
int | optional | HSI / HSCEI only: IndexOptionType |
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"owner":"HK.00700"}' \
https://127.0.0.1:22499/api/option-expiration-date
POST /api/option-gex-by-strike¶
proto_id: QOT_GET_OPTION_GEX_BY_STRIKE (2131755036)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/option-gex-by-strike
POST /api/option-gex-profile¶
proto_id: QOT_GET_OPTION_GEX_PROFILE (2131755037)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/option-gex-profile
POST /api/option-iv-smile¶
proto_id: QOT_GET_OPTION_IV_SMILE (2131755040)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/option-iv-smile
POST /api/option-iv-term-structure¶
proto_id: QOT_GET_OPTION_IV_TERM_STRUCTURE (2131755039)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/option-iv-term-structure
POST /api/option-market-statistic¶
proto_id: QOT_GET_OPTION_MARKET_STATISTIC (3301)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"option_market":1,"data_type":0,"begin_time":"2026-08-01","end_time":"2026-08-30"}' \
https://127.0.0.1:22499/api/option-market-statistic
POST /api/option-quote¶
proto_id: QOT_GET_OPTION_QUOTE (3255)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"c2s":{"multi_legs":[{"security":{"market":11,"code":"AAPL260116C200000"},"side":1,"qty_ratio":1.0}]}}' \
https://127.0.0.1:22499/api/option-quote
POST /api/option-rank¶
proto_id: QOT_GET_OPTION_RANK (3306)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"option_market":1,"sort_type":1,"count":50}' \
https://127.0.0.1:22499/api/option-rank
POST /api/option-screen¶
proto_id: QOT_OPTION_SCREEN (3253)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"page_from":0,"page_count":20}' \
https://127.0.0.1:22499/api/option-screen
POST /api/option-seller-screener¶
proto_id: QOT_GET_OPTION_SELLER_SCREENER (3314)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"option_market":1,"seller_type":1}' \
https://127.0.0.1:22499/api/option-seller-screener
POST /api/option-strategy¶
proto_id: QOT_GET_OPTION_STRATEGY (3256)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"c2s":{"owner":{"market":11,"code":"AAPL"},"option_strategy":1}}' \
https://127.0.0.1:22499/api/option-strategy
POST /api/option-strategy-analysis¶
proto_id: QOT_GET_OPTION_STRATEGY_ANALYSIS (3257)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"c2s":{"multi_legs":[{"security":{"market":11,"code":"AAPL260116C200000"},"side":1,"qty_ratio":1.0}]}}' \
https://127.0.0.1:22499/api/option-strategy-analysis
POST /api/option-strategy-spread¶
proto_id: QOT_GET_OPTION_STRATEGY_SPREAD (3258)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"c2s":{"owner":{"market":11,"code":"AAPL"},"option_strategy":4}}' \
https://127.0.0.1:22499/api/option-strategy-spread
POST /api/option-strike-prices¶
proto_id: QOT_GET_OPTION_STRIKE_PRICES (2131755038)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/option-strike-prices
POST /api/option-underlying-his-statistic¶
proto_id: QOT_GET_OPTION_UNDERLYING_HIS_STATISTIC (3302)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"owner":{"market":11,"code":"AAPL"},"begin_time":"2026-08-01","end_time":"2026-08-30"}' \
https://127.0.0.1:22499/api/option-underlying-his-statistic
POST /api/option-underlying-his-volatility¶
proto_id: QOT_GET_OPTION_UNDERLYING_HIS_VOLATILITY (3304)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"owner":{"market":11,"code":"AAPL"},"begin_time":"2026-08-01","end_time":"2026-08-30"}' \
https://127.0.0.1:22499/api/option-underlying-his-volatility
POST /api/option-underlying-overview¶
proto_id: QOT_GET_OPTION_UNDERLYING_OVERVIEW (3303)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"owner_list":[{"market":11,"code":"AAPL"}]}' \
https://127.0.0.1:22499/api/option-underlying-overview
POST /api/option-underlying-rank¶
proto_id: QOT_GET_OPTION_UNDERLYING_RANK (3305)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"option_market":1,"sort_type":1,"count":50}' \
https://127.0.0.1:22499/api/option-underlying-rank
POST /api/option-volatility¶
proto_id: QOT_GET_OPTION_VOLATILITY (3250)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":11,"code":"AAPL260116C200000"},"query_time_period":2,"hv_time_period":30}' \
https://127.0.0.1:22499/api/option-volatility
POST /api/option-volume-interest-distribution¶
proto_id: QOT_GET_OPTION_VOLUME_INTEREST_DISTRIBUTION (2131755041)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/option-volume-interest-distribution
POST /api/option-zero-dte-contract¶
proto_id: QOT_GET_OPTION_ZERO_DTE_CONTRACT (3312)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"owner":{"market":11,"code":"AAPL"},"strike_date_timestamp":1800000000,"chain_info":{"strike_date_timestamp":1800000000,"product_code":"AAPL","multiplier":100.0,"contract_share_size":100.0,"expiration_type":1,"underlying":{"market":11,"code":"AAPL"}}}' \
https://127.0.0.1:22499/api/option-zero-dte-contract
POST /api/option-zero-dte-screener¶
proto_id: QOT_GET_OPTION_ZERO_DTE_SCREENER (3311)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"option_market":1,"count":50}' \
https://127.0.0.1:22499/api/option-zero-dte-screener
POST /api/owner-plate¶
proto_id: QOT_GET_OWNER_PLATE (3207)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Field table:
| Field | Type | Required | Description |
|---|---|---|---|
security_list or symbols |
array | ✅ | Stock array; shorthand ["HK.00700"] auto-expands |
Note: Empty security_list returns empty plate list with no business meaning; supply at least one stock.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbols":["HK.00700"]}' \
https://127.0.0.1:22499/api/owner-plate
POST /api/rating-change¶
proto_id: QOT_GET_RATING_CHANGE (3426)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":11,"count":10}' \
https://127.0.0.1:22499/api/rating-change
POST /api/reference¶
proto_id: QOT_GET_REFERENCE (3206)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Note: /api/reference is equivalent to /api/get-reference (same proto_id 3206); /api/get-reference is the v1.4.74 alias. Same field contract — see /api/get-reference section.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbol":"HK.00700","reference_type":1}' \
https://127.0.0.1:22499/api/reference
POST /api/rehab¶
proto_id: QOT_REQUEST_REHAB (3105)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbols":["HK.00700"]}' \
https://127.0.0.1:22499/api/rehab
POST /api/related-stocks¶
proto_id: QOT_GET_RELATED_STOCKS (2131755031)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/related-stocks
POST /api/research-analyst-consensus¶
proto_id: QOT_GET_RESEARCH_ANALYST_CONSENSUS (3229)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/research-analyst-consensus
POST /api/research-morningstar-report¶
proto_id: QOT_GET_RESEARCH_MORNINGSTAR_REPORT (3231)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/research-morningstar-report
POST /api/research-rating-summary¶
proto_id: QOT_GET_RESEARCH_RATING_SUMMARY (3230)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/research-rating-summary
POST /api/shareholders-holder-detail¶
proto_id: QOT_GET_SHAREHOLDERS_HOLDER_DETAIL (3239)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/shareholders-holder-detail
POST /api/shareholders-holding-changes¶
proto_id: QOT_GET_SHAREHOLDERS_HOLDING_CHANGES (3238)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/shareholders-holding-changes
POST /api/shareholders-institutional¶
proto_id: QOT_GET_SHAREHOLDERS_INSTITUTIONAL (3240)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/shareholders-institutional
POST /api/shareholders-overview¶
proto_id: QOT_GET_SHAREHOLDERS_OVERVIEW (3237)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/shareholders-overview
POST /api/short-interest¶
proto_id: QOT_GET_SHORT_INTEREST (3249)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/short-interest
POST /api/stock-screen¶
proto_id: QOT_STOCK_SCREEN (3252)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"page_from":0,"page_count":20}' \
https://127.0.0.1:22499/api/stock-screen
POST /api/technical-unusual¶
proto_id: QOT_GET_TECHNICAL_UNUSUAL (3801)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"stock_symbol":"HK.00700"}' \
https://127.0.0.1:22499/api/technical-unusual
POST /api/top-ten-buy-sell-brokers¶
proto_id: QOT_GET_TOP_TEN_BUY_SELL_BROKERS (3247)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/top-ten-buy-sell-brokers
POST /api/valuation-detail¶
proto_id: QOT_GET_VALUATION_DETAIL (3232)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/valuation-detail
POST /api/valuation-plate-stock-list¶
proto_id: QOT_GET_VALUATION_PLATE_STOCK_LIST (3233)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":1,"code":"00700"}}' \
https://127.0.0.1:22499/api/valuation-plate-stock-list
POST /api/warrant¶
proto_id: QOT_GET_WARRANT (3210)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Core field table:
| Field | Type | Required | Description |
|---|---|---|---|
begin |
int | ✅ | Start row (pagination) |
num |
int | ✅ | Page size (≤200) |
sort_field |
int | ✅ | WarrantField sort enum |
ascend |
bool | ✅ | Ascending order |
owner or symbol |
object/string | optional | Underlying; shorthand "HK.00700" |
Full field set: includes type_list / issuer_list / strike-price ranges and other filters; see proto definition.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"begin":0,"num":50,"sort_field":1,"ascend":false,"owner":"HK.00700"}' \
https://127.0.0.1:22499/api/warrant
POST /api/warrant-screen¶
proto_id: QOT_WARRANT_SCREEN (3254)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market_type":1,"page_from":0,"page_count":20}' \
https://127.0.0.1:22499/api/warrant-screen
Market Rankings / Sentiment¶
Market heat maps, advance/decline distributions, popular securities, dividend and earnings rankings, short-selling rankings, and US session rankings.
POST /api/dividend-rank¶
proto_id: QOT_GET_DIVIDEND_RANK (3407)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"rank_type":1,"count":10}' \
https://127.0.0.1:22499/api/dividend-rank
POST /api/earnings-beat-rank¶
proto_id: QOT_GET_EARNINGS_BEAT_RANK (3406)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":11,"beat_type":1,"count":30}' \
https://127.0.0.1:22499/api/earnings-beat-rank
POST /api/heat-map-data¶
proto_id: QOT_GET_HEAT_MAP_DATA (3432)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"count":30}' \
https://127.0.0.1:22499/api/heat-map-data
POST /api/high-dividend-soe-rank¶
proto_id: QOT_GET_HIGH_DIVIDEND_SOE_RANK (3417)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"count":50}' \
https://127.0.0.1:22499/api/high-dividend-soe-rank
POST /api/hot-list¶
proto_id: QOT_GET_HOT_LIST (3414)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"count":50}' \
https://127.0.0.1:22499/api/hot-list
POST /api/margin-ranking¶
proto_id: QOT_GET_MARGIN_RANKING (2131755042)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/margin-ranking
POST /api/period-change-rank¶
proto_id: QOT_GET_PERIOD_CHANGE_RANK (3416)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"count":50}' \
https://127.0.0.1:22499/api/period-change-rank
POST /api/rise-fall-distribution¶
proto_id: QOT_GET_RISE_FALL_DISTRIBUTION (3433)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1}' \
https://127.0.0.1:22499/api/rise-fall-distribution
POST /api/short-selling-rank¶
proto_id: QOT_GET_SHORT_SELLING_RANK (3415)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":11,"count":10}' \
https://127.0.0.1:22499/api/short-selling-rank
POST /api/top-movers-rank¶
proto_id: QOT_GET_TOP_MOVERS_RANK (3413)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"count":50}' \
https://127.0.0.1:22499/api/top-movers-rank
POST /api/us-after-hours-rank¶
proto_id: QOT_GET_US_AFTER_HOURS_RANK (3411)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"count":50}' \
https://127.0.0.1:22499/api/us-after-hours-rank
POST /api/us-overnight-rank¶
proto_id: QOT_GET_US_OVERNIGHT_RANK (3412)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"count":50}' \
https://127.0.0.1:22499/api/us-overnight-rank
POST /api/us-pre-market-rank¶
proto_id: QOT_GET_US_PRE_MARKET_RANK (3410)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"count":50}' \
https://127.0.0.1:22499/api/us-pre-market-rank
News / Announcements¶
Latest and trending news, news search, security news, and watchlist news, announcements, and rating updates, plus platform announcements, news translation, and push settings.
POST /api/hot-news¶
proto_id: QOT_GET_HOT_NEWS (2131755011)
Scope: qot:read
Enablement and evidence boundary: start with --extended-data-reads; the feature is on by default. Current evidence is source-aligned + local-green; live backend behavior remains unverified.
Callers pass only page_size (1..50) and extension_version=1.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"page_size":20,"extension_version":1}' \
https://127.0.0.1:22499/api/hot-news
POST /api/latest-news¶
proto_id: QOT_GET_LATEST_NEWS (2131755012)
Scope: qot:read
Enablement and evidence boundary: start with --extended-data-reads; the feature is on by default. Current evidence is source-aligned + local-green; live backend behavior remains unverified.
page_flip=0 pages older; page_flip=1 requires a nonempty newest cursor. An empty cursor always means the first page. Read-only filter sidecars use include_flash_filter / include_market_filter and require a nonnegative filter_version.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"page_size":20,"seq_mark":"","page_flip":0,"tag_indexes":[0],"extension_version":1}' \
https://127.0.0.1:22499/api/latest-news
POST /api/news-push-settings¶
proto_id: QOT_GET_NEWS_PUSH_SETTINGS (2131755057)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/news-push-settings
POST /api/news-translation¶
proto_id: QOT_GET_NEWS_TRANSLATION (2131755033)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/news-translation
POST /api/platform-announcements¶
proto_id: QOT_GET_PLATFORM_ANNOUNCEMENTS (2131755054)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/platform-announcements
POST /api/platform-announcements-by-ids¶
proto_id: QOT_GET_PLATFORM_ANNOUNCEMENTS_BY_IDS (2131755055)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/platform-announcements-by-ids
POST /api/search-news¶
proto_id: QOT_GET_SEARCH_NEWS (3263)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"keyword":"earnings","max_count":10,"news_sub_type":0}' \
https://127.0.0.1:22499/api/search-news
POST /api/set-news-push-settings¶
proto_id: QOT_SET_NEWS_PUSH_SETTINGS (2131755058)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/set-news-push-settings
POST /api/stock-news¶
proto_id: QOT_GET_STOCK_NEWS (2131755016)
Scope: qot:read
Enablement and evidence boundary: start with --extended-data-reads; the feature is on by default. Current evidence is source-aligned + local-green; live backend behavior remains unverified.
For pagination, echo the previous response's seq_mark, dedup_ids, and request-level track_info; id_type accepts only 1 (security) or 2 (plate).
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"stock_id":7000700,"page_size":20,"id_type":1,"seq_mark":"","dedup_ids":[],"extension_version":1}' \
https://127.0.0.1:22499/api/stock-news
POST /api/watchlist-announcement¶
proto_id: QOT_GET_WATCHLIST_ANNOUNCEMENT (2131755014)
Scope: qot:read
Enablement and evidence boundary: start with --extended-data-reads; the feature is on by default. Current evidence is source-aligned + local-green; live backend behavior remains unverified.
stock_ids are explicit. notice_types accepts 0..5; 0 means all and must be used alone.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"page_size":20,"seq_mark":"","stock_ids":[7000700],"notice_types":[0],"extension_version":1}' \
https://127.0.0.1:22499/api/watchlist-announcement
POST /api/watchlist-news¶
proto_id: QOT_GET_WATCHLIST_NEWS (2131755013)
Scope: qot:read
Enablement and evidence boundary: start with --extended-data-reads; the feature is on by default. Current evidence is source-aligned + local-green; live backend behavior remains unverified.
stock_ids must be supplied explicitly and cannot be empty; there is no whole-market fallback.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"page_size":20,"seq_mark":"","stock_ids":[7000700],"extension_version":1}' \
https://127.0.0.1:22499/api/watchlist-news
POST /api/watchlist-rating¶
proto_id: QOT_GET_WATCHLIST_RATING (2131755015)
Scope: qot:read
Enablement and evidence boundary: start with --extended-data-reads; the feature is on by default. Current evidence is source-aligned + local-green; live backend behavior remains unverified.
stock_ids must be supplied explicitly and cannot be empty; there is no whole-market fallback.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"page_size":20,"seq_mark":"","stock_ids":[7000700],"extension_version":1}' \
https://127.0.0.1:22499/api/watchlist-rating
Calendars / Macroeconomics¶
Earnings, dividend, IPO, financial and economic calendars, macroeconomic indicators, and Federal Reserve rate expectations.
POST /api/dividend-calendar¶
proto_id: QOT_GET_DIVIDEND_CALENDAR (3408)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"date":"2026-06-24","count":20}' \
https://127.0.0.1:22499/api/dividend-calendar
POST /api/earnings-calendar¶
proto_id: QOT_GET_EARNINGS_CALENDAR (3401)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":11,"begin_date":"2026-06-24","end_date":"2026-06-25"}' \
https://127.0.0.1:22499/api/earnings-calendar
POST /api/economic-calendar¶
proto_id: QOT_GET_ECONOMIC_CALENDAR (3409)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"begin_date":"2026-06-24","end_date":"2026-06-24","market_list":[11],"count":50}' \
https://127.0.0.1:22499/api/economic-calendar
POST /api/fed-watch-dot-plot¶
proto_id: QOT_GET_FED_WATCH_DOT_PLOT (3405)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/fed-watch-dot-plot
POST /api/fed-watch-target-rate¶
proto_id: QOT_GET_FED_WATCH_TARGET_RATE (3404)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/fed-watch-target-rate
POST /api/financial-calendar¶
proto_id: QOT_GET_FINANCIAL_CALENDAR_VIEW_INTERNAL (20025)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market_list":[1],"count":20,"begin_date":"20260624","end_date":"20260625"}' \
https://127.0.0.1:22499/api/financial-calendar
POST /api/financial-calendar-target¶
proto_id: QOT_SEARCH_TARGET_FINANCIAL_CALENDAR (20426)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"stock_id":[7000700],"market_list":[1],"size":20,"start":0}' \
https://127.0.0.1:22499/api/financial-calendar-target
POST /api/holiday-calendar¶
proto_id: QOT_GET_HOLIDAY_CALENDAR (2131755063)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/holiday-calendar
POST /api/ipo-calendar¶
proto_id: QOT_GET_IPO_LIST (3217)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"event_types":["list"],"begin_date":"20260624","end_date":"20260630"}' \
https://127.0.0.1:22499/api/ipo-calendar
POST /api/macro-indicator-history¶
proto_id: QOT_GET_MACRO_INDICATOR_HISTORY (3403)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"indicator_id":88,"time":"2026-06-24","max_count":100}' \
https://127.0.0.1:22499/api/macro-indicator-history
POST /api/macro-indicator-list¶
proto_id: QOT_GET_MACRO_INDICATOR_LIST (3402)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"region":2}' \
https://127.0.0.1:22499/api/macro-indicator-list
Institutions / Holdings Research¶
Institution profiles, holdings, changes and distributions, plus ARK fund holdings and transaction activity.
POST /api/ark-active-transaction¶
proto_id: QOT_GET_ARK_ACTIVE_TRANSACTION (3425)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"holding_type":1,"cycle_type":1,"count":50}' \
https://127.0.0.1:22499/api/ark-active-transaction
POST /api/ark-fund-holding¶
proto_id: QOT_GET_ARK_FUND_HOLDING (3423)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"holding_type":1,"count":20}' \
https://127.0.0.1:22499/api/ark-fund-holding
POST /api/ark-stock-dynamic¶
proto_id: QOT_GET_ARK_STOCK_DYNAMIC (3424)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"security":{"market":11,"code":"AAPL"}}' \
https://127.0.0.1:22499/api/ark-stock-dynamic
POST /api/fund-investment-distribution¶
proto_id: QOT_GET_FUND_INVESTMENT_DISTRIBUTION (2131755050)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/fund-investment-distribution
POST /api/fund-top-holdings¶
proto_id: QOT_GET_FUND_TOP_HOLDINGS (2131755049)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/fund-top-holdings
POST /api/institution-distribution¶
proto_id: QOT_GET_INSTITUTION_DISTRIBUTION (3420)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":11,"institution_id":700}' \
https://127.0.0.1:22499/api/institution-distribution
POST /api/institution-holding-change¶
proto_id: QOT_GET_INSTITUTION_HOLDING_CHANGE (3421)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"institution_id":700,"count":20}' \
https://127.0.0.1:22499/api/institution-holding-change
POST /api/institution-holding-list¶
proto_id: QOT_GET_INSTITUTION_HOLDING_LIST (3422)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":41,"institution_id":701,"count":20}' \
https://127.0.0.1:22499/api/institution-holding-list
POST /api/institution-list¶
proto_id: QOT_GET_INSTITUTION_LIST (3418)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":11,"count":20}' \
https://127.0.0.1:22499/api/institution-list
POST /api/institution-profile¶
proto_id: QOT_GET_INSTITUTION_PROFILE (3419)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":11,"institution_id":700}' \
https://127.0.0.1:22499/api/institution-profile
POST /api/stock-holdings¶
proto_id: QOT_GET_STOCK_HOLDINGS (2131755048)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/stock-holdings
Watchlists / Private Notes¶
Watchlist groups and maintenance, private stock notes and labels. See each endpoint for read/write scopes; private notes require a configured API key.
POST /api/modify-user-security¶
proto_id: QOT_MODIFY_USER_SECURITY (3214)
Scope: qot:write (qot:read accepted for v1.8 compatibility)
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Stateful write: Mutates the user's watchlist. Unknown fields are loud-fail rejected since v1.4.84, but a successful call cannot be rolled back.
Field table (REST accepts int enums only):
| Field | Type | Required | Description |
|---|---|---|---|
group_name |
string | ✅ | Group name; ties resolve to first match |
op |
int | ✅ | 1=Add / 2=Del / 3=MoveOut |
security_list |
array | ✅ | Stock list; each item {market: int, code: string} |
No top-level symbol/symbols shorthand: must use explicit security_list.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"group_name":"Favorites","op":1,"security_list":[{"market":1,"code":"00700"}]}' \
https://127.0.0.1:22499/api/modify-user-security
POST /api/set-stock-note¶
proto_id: QOT_SET_STOCK_NOTE (2131755028)
Scope: qot:write (configured API key required; no qot:read fallback)
Private write / two independent default-on gates: requires both --stock-notes and --stock-note-writes, keys.json, and strict qot:write. The request is sent once and never auto-resubmitted. A route-fence rejection before writer admission is explicitly not sent; after the frame enters the writer queue, a route change or uncertain ACK returns SUBMITTED_UNKNOWN. Synchronous 0 means accepted only. DELETE may be confirmed by a private push that causes an actual state transition; CREATE/UPDATE must also pass 9432 reconciliation because 9430 carries no detail. Title/detail are never logged.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"operation":3,"stock_id":7001,"title":"watch","detail":"review later","is_display":1,"extension_version":1}' \
https://127.0.0.1:22499/api/set-stock-note
POST /api/stock-note-labels¶
proto_id: QOT_GET_STOCK_NOTE_LABELS (2131755026)
Scope: acc:read (configured API key required)
Private data / enabled by default: uses --stock-notes, configured keys.json, and acc:read. FULL(1) is encoded by the daemon as is_full=1 + stock_id=[0]; IDS(2) preserves caller order and duplicates.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"mode":1,"stock_ids":[],"extension_version":1}' \
https://127.0.0.1:22499/api/stock-note-labels
POST /api/stock-notes¶
proto_id: QOT_GET_STOCK_NOTES (2131755027)
Scope: acc:read (configured API key required)
Private data / enabled by default: uses --stock-notes and acc:read. Explicit nonzero IDs are sent unchanged; an ordinary query never mutates or persists the authoritative basic cache.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"stock_ids":[7001],"extension_version":1}' \
https://127.0.0.1:22499/api/stock-notes
POST /api/user-security¶
proto_id: QOT_GET_USER_SECURITY (3213)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"group_name":"Favorites"}' \
https://127.0.0.1:22499/api/user-security
POST /api/user-security-groups¶
proto_id: QOT_GET_USER_SECURITY_GROUP (3222)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"group_type":3}' \
https://127.0.0.1:22499/api/user-security-groups
Price / Event Alerts¶
Query/set/modify/delete price reminders and manage option-event alerts. Since v1.8.0 alert writes use qot:write (qot:read remains compatible for this major); reads stay on qot:read.
POST /api/alert-system-notify-setting¶
proto_id: QOT_GET_ALERT_SYSTEM_NOTIFY_SETTING (2131755059)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/alert-system-notify-setting
POST /api/common-reminder-business-info¶
proto_id: QOT_GET_COMMON_REMINDER_BUSINESS_INFO (2131755068)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/common-reminder-business-info
POST /api/common-reminder-items¶
proto_id: QOT_GET_COMMON_REMINDER_ITEMS (2131755067)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/common-reminder-items
POST /api/common-reminder-settings¶
proto_id: QOT_GET_COMMON_REMINDER_SETTINGS (2131755066)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/common-reminder-settings
POST /api/mutate-reminder-settings¶
proto_id: QOT_MUTATE_REMINDER_SETTINGS (2131755065)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/mutate-reminder-settings
POST /api/option-event-alert¶
proto_id: QOT_GET_OPTION_EVENT_ALERT (3308)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"count":50}' \
https://127.0.0.1:22499/api/option-event-alert
POST /api/price-reminder¶
proto_id: QOT_GET_PRICE_REMINDER (3221)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbol":"HK.00700"}' \
https://127.0.0.1:22499/api/price-reminder
POST /api/reminder-settings¶
proto_id: QOT_GET_REMINDER_SETTINGS (2131755064)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/reminder-settings
POST /api/set-alert-system-notify-setting¶
proto_id: QOT_SET_ALERT_SYSTEM_NOTIFY_SETTING (2131755060)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/set-alert-system-notify-setting
POST /api/set-common-reminders¶
proto_id: QOT_SET_COMMON_REMINDERS (2131755069)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/set-common-reminders
POST /api/set-option-event-alert¶
proto_id: QOT_SET_OPTION_EVENT_ALERT (3309)
Scope: qot:write (qot:read accepted for v1.8 compatibility)
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"oper_type":1,"alert_list":[{"enable":true,"underlying":{"market":11,"code":"AAPL"}}]}' \
https://127.0.0.1:22499/api/set-option-event-alert
POST /api/set-price-reminder¶
proto_id: QOT_SET_PRICE_REMINDER (3220)
Scope: qot:write (qot:read accepted for v1.8 compatibility)
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Stateful write: Add / modify / delete a price alert.
Field table (REST accepts int enums only; proto field is type, not reminder_type):
| Field | Type | Required | Description |
|---|---|---|---|
security or symbol |
object/string | ✅ | Stock; shorthand "HK.00700" |
op |
int | ✅ | 1=Add / 2=Del / 3=Enable / 4=Disable / 5=Modify / 6=DelAll |
key |
int64 | for Modify/Del | Alert key from GetPriceReminder |
type |
int | for Add | PriceReminderType (1=PriceUp / 2=PriceDown / ...) |
freq |
int | for Add | PriceReminderFreq (1=Always / 2=OnceADay / 3=OnlyOnce); on Modify the backend preserves the old value when omitted |
value |
f64 | for Add | Alert value (3 decimals max); on Modify the backend preserves the old value when omitted |
note |
string | optional | Note (≤20 chars in CN) |
Add (op=1) required: type + freq + value. The gateway aligns with the reference implementation and rejects Add without all three.
Modify (op=5) does not require type / freq / value: the gateway fetches the existing alert first, applies user-provided field overrides, and preserves omitted fields (aligning with the overwrite-style Modify semantics).
reminder_session_list (optional, array): PriceReminderMarketStatus values — 1=Open / 2=USPre / 3=USAfter / 4=USOverNight. Any value outside 1..4 is loud-rejected by the gateway (-1 + error text). For US stocks an empty list defaults to [1, 2, 3]; for non-US securities the list is cleared.
Note: REST does not accept "op":"SetAdd" string form; only MCP layer maps strings to int.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"symbol":"HK.00700","op":1,"type":1,"freq":1,"value":300.0}' \
https://127.0.0.1:22499/api/set-price-reminder
Trading Accounts (Read)¶
Accounts, funds, positions, orders and fills, margin and fee previews, asset and return trends, order relations, algorithm-order logs, and position corporate actions. Requires acc:read.
POST /api/acc-cash-flow¶
proto_id: TRD_FLOW_SUMMARY (2226)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"acc_id":123456,"env":1,"clearing_date":"2026-04-01"}' \
https://127.0.0.1:22499/api/acc-cash-flow
POST /api/account-flag¶
proto_id: TRD_GET_ACCOUNT_FLAG (22705)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"acc_id":123456,"env":1}' \
https://127.0.0.1:22499/api/account-flag
GET /api/accounts¶
proto_id: TRD_GET_ACC_LIST (2001)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
POST /api/biz-group¶
proto_id: TRD_GET_BIZ_GROUP (22703)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"acc_id":123456,"env":1,"market":1}' \
https://127.0.0.1:22499/api/biz-group
POST /api/bond-answer-state¶
proto_id: TRD_GET_BOND_ANSWER_STATE (22709)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"acc_id":123456,"env":1}' \
https://127.0.0.1:22499/api/bond-answer-state
POST /api/bond-position-list¶
proto_id: TRD_GET_BOND_POSITION_LIST (22708)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"acc_id":123456,"env":1}' \
https://127.0.0.1:22499/api/bond-position-list
POST /api/bond-single-asset¶
proto_id: TRD_GET_BOND_SINGLE_ASSET (22707)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"acc_id":123456,"env":1}' \
https://127.0.0.1:22499/api/bond-single-asset
POST /api/bond-total-asset¶
proto_id: TRD_GET_BOND_TOTAL_ASSET (22706)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"acc_id":123456,"env":1}' \
https://127.0.0.1:22499/api/bond-total-asset
POST /api/bond-trade-reminder¶
proto_id: TRD_GET_BOND_TRADE_REMINDER (22710)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"acc_id":123456,"env":1}' \
https://127.0.0.1:22499/api/bond-trade-reminder
POST /api/cash-detail¶
proto_id: TRD_GET_CASH_DETAIL (22702)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"acc_id":123456,"env":1,"flow_id":"<flow_id>"}' \
https://127.0.0.1:22499/api/cash-detail
POST /api/cash-log¶
proto_id: TRD_GET_CASH_LOG (22701)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"acc_id":123456,"env":1,"begin_time":"2026-01-01","end_time":"2026-04-01"}' \
https://127.0.0.1:22499/api/cash-log
POST /api/combo-max-trd-qtys¶
proto_id: TRD_GET_COMBO_MAX_TRD_QTYS (2112)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"c2s":{"header":{"trd_env":1,"acc_id":123456,"trd_market":2},"combo_legs":[{"security":{"market":11,"code":"AAPL260116C200000"},"side":1,"qty_ratio":1.0},{"security":{"market":11,"code":"AAPL260116C205000"},"side":2,"qty_ratio":1.0}],"qty":1.0,"price":1.0,"order_type":1}}' \
https://127.0.0.1:22499/api/combo-max-trd-qtys
POST /api/flow-summary¶
proto_id: TRD_FLOW_SUMMARY (2226)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"acc_id":123456,"env":1,"clearing_date":"2026-04-01"}' \
https://127.0.0.1:22499/api/flow-summary
POST /api/funds¶
proto_id: TRD_GET_FUNDS (2101)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"acc_id":123456,"env":1}' \
https://127.0.0.1:22499/api/funds
POST /api/get-bond-account-positions¶
proto_id: TRD_GET_BOND_ACCOUNT_POSITIONS (2132803606)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/get-bond-account-positions
POST /api/get-forex-account-quote-context¶
proto_id: TRD_GET_FOREX_ACCOUNT_QUOTE_CONTEXT (2132803613)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/get-forex-account-quote-context
POST /api/get-forex-accounts¶
proto_id: TRD_GET_FOREX_ACCOUNTS (2132803609)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/get-forex-accounts
POST /api/get-forex-assets¶
proto_id: TRD_GET_FOREX_ASSETS (2132803612)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/get-forex-assets
POST /api/get-forex-order-detail¶
proto_id: TRD_GET_FOREX_ORDER_DETAIL (2132803628)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/get-forex-order-detail
POST /api/get-forex-orders¶
proto_id: TRD_GET_FOREX_ORDERS (2132803627)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/get-forex-orders
POST /api/get-forex-risk-control¶
proto_id: TRD_GET_FOREX_RISK_CONTROL (2132803610)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/get-forex-risk-control
POST /api/get-forex-symbol-configs¶
proto_id: TRD_GET_FOREX_SYMBOL_CONFIGS (2132803614)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/get-forex-symbol-configs
POST /api/get-fund-account-positions¶
proto_id: TRD_GET_FUND_ACCOUNT_POSITIONS (2132803607)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/get-fund-account-positions
POST /api/get-fund-position-details¶
proto_id: TRD_GET_FUND_POSITION_DETAILS (2132803608)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/get-fund-position-details
POST /api/get-wealth-holdings¶
proto_id: TRD_GET_WEALTH_HOLDINGS (2132803605)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/get-wealth-holdings
POST /api/history-order-fills¶
proto_id: TRD_GET_HISTORY_ORDER_FILL_LIST (2222)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"acc_id":123456,"env":1,"begin_time":"2026-01-01 00:00:00","end_time":"2026-04-01 23:59:59"}' \
https://127.0.0.1:22499/api/history-order-fills
POST /api/history-orders¶
proto_id: TRD_GET_HISTORY_ORDER_LIST (2221)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"acc_id":123456,"env":1,"begin_time":"2026-01-01 00:00:00","end_time":"2026-04-01 23:59:59"}' \
https://127.0.0.1:22499/api/history-orders
GET /api/list-accounts¶
proto_id: TRD_GET_ACC_LIST (2001)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
POST /api/margin-info¶
proto_id: TRD_GET_MARGIN_INFO (22704)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"acc_id":123456,"env":1,"market":1}' \
https://127.0.0.1:22499/api/margin-info
POST /api/margin-ratio¶
proto_id: TRD_GET_MARGIN_RATIO (2223)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"acc_id":123456,"env":1,"symbols":["HK.00700"]}' \
https://127.0.0.1:22499/api/margin-ratio
POST /api/max-trd-qtys¶
proto_id: TRD_GET_MAX_TRD_QTYS (2111)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"acc_id":123456,"env":1,"code":"00700","price":300.0,"order_type":1}' \
https://127.0.0.1:22499/api/max-trd-qtys
POST /api/order-fee¶
proto_id: TRD_GET_ORDER_FEE (2225)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"acc_id":123456,"env":1,"order_id_ex_list":["987"]}' \
https://127.0.0.1:22499/api/order-fee
POST /api/order-fills¶
proto_id: TRD_GET_ORDER_FILL_LIST (2211)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"acc_id":123456,"env":1}' \
https://127.0.0.1:22499/api/order-fills
POST /api/orders¶
proto_id: TRD_GET_ORDER_LIST (2201)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"acc_id":123456,"env":1}' \
https://127.0.0.1:22499/api/orders
POST /api/positions¶
proto_id: TRD_GET_POSITION_LIST (2102)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"acc_id":123456,"env":1}' \
https://127.0.0.1:22499/api/positions
POST /api/preview-forex-margin¶
proto_id: TRD_PREVIEW_FOREX_MARGIN (2132803611)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/preview-forex-margin
POST /api/preview-order-impact¶
proto_id: TRD_PREVIEW_ORDER_IMPACT (22711)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"header":{"trd_env":1,"acc_id":9001,"trd_market":2},"order":{"single":{"security":{"code":"AAPL","market_id":11,"stock_market":2,"exchange":"US","currency":"USD","security_type":1},"side":1,"order_type":2,"volume":{"quantity":"10"}}},"extension_version":1}' \
https://127.0.0.1:22499/api/preview-order-impact
GET /api/token-state¶
proto_id: GET_TOKEN_STATE (1326)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
POST /api/token-state¶
proto_id: GET_TOKEN_STATE (1326)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"acc_id":123456}' \
https://127.0.0.1:22499/api/token-state
POST /api/trd/algo-order-logs¶
proto_id: TRD_GET_ALGO_ORDER_LOGS (22723)
Scope: acc:read
Backend read enabled by default: uses --extended-data-reads and acc:read. page_index is zero-based and page_size is 1..50. With fetch_all=true, the daemon uses only total_cnt to fetch all pages; there is no page_flag/completed. A later-page failure never returns a silent partial result.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"header":{"trd_env":1,"acc_id":900001,"trd_market":2},"algo_order_id":"ORDER_ID","page_index":0,"page_size":50,"fetch_all":false,"extension_version":1}' \
https://127.0.0.1:22499/api/trd/algo-order-logs
POST /api/trd/asset-trend¶
proto_id: TRD_GET_ASSET_TREND (22712)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"header":{"trd_env":1,"acc_id":9001,"trd_market":2},"range":{"query_type":3,"currency":"USD","start_date":"2026-08-01 00:00:00","end_date":"2026-08-30 23:59:59","time_location":"America/New_York","price_context":{"use_pre_market":true,"use_after_hours":false,"use_overnight":true}},"extension_version":1}' \
https://127.0.0.1:22499/api/trd/asset-trend
POST /api/trd/broker-option-strategies¶
proto_id: TRD_GET_BROKER_OPTION_STRATEGIES (2132803595)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/broker-option-strategies
POST /api/trd/broker-total-assets¶
proto_id: TRD_GET_BROKER_TOTAL_ASSETS (2132803601)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/broker-total-assets
POST /api/trd/cash-sweep-configuration¶
proto_id: TRD_GET_CASH_SWEEP_CONFIGURATION (2132803603)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/cash-sweep-configuration
POST /api/trd/cash-sweep-redemption-capacity¶
proto_id: TRD_GET_CASH_SWEEP_REDEMPTION_CAPACITY (2132803604)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/cash-sweep-redemption-capacity
POST /api/trd/fractional-share-whitelist¶
proto_id: TRD_GET_FRACTIONAL_SHARE_WHITELIST (2132803600)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/fractional-share-whitelist
POST /api/trd/future-position-breakdown¶
proto_id: TRD_GET_FUTURE_POSITION_BREAKDOWN (2132803593)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/future-position-breakdown
POST /api/trd/future-subpositions¶
proto_id: TRD_GET_FUTURE_SUBPOSITIONS (2132803588)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/future-subpositions
POST /api/trd/get-account-auto-exchange-setting¶
proto_id: TRD_GET_ACCOUNT_AUTO_EXCHANGE_SETTING (2132803621)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/get-account-auto-exchange-setting
POST /api/trd/get-account-financing-setting¶
proto_id: TRD_GET_ACCOUNT_FINANCING_SETTING (2132803619)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/get-account-financing-setting
POST /api/trd/get-account-foreign-exchange-setting¶
proto_id: TRD_GET_ACCOUNT_FOREIGN_EXCHANGE_SETTING (2132803623)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/get-account-foreign-exchange-setting
POST /api/trd/get-account-local-exchange-setting¶
proto_id: TRD_GET_ACCOUNT_LOCAL_EXCHANGE_SETTING (2132803625)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/get-account-local-exchange-setting
POST /api/trd/legacy-future-fee-config¶
proto_id: TRD_GET_LEGACY_FUTURE_FEE_CONFIG (2132803597)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/legacy-future-fee-config
POST /api/trd/option-combo-eligibility¶
proto_id: TRD_GET_OPTION_COMBO_ELIGIBILITY (2132803594)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/option-combo-eligibility
POST /api/trd/order-dates¶
proto_id: TRD_GET_ORDER_DATES (2132803586)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/order-dates
POST /api/trd/order-fill-details¶
proto_id: TRD_GET_ORDER_FILL_DETAILS (2132803585)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/order-fill-details
POST /api/trd/order-relations¶
proto_id: TRD_GET_ORDER_RELATIONS (22715)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"header":{"trd_env":1,"acc_id":9001,"trd_market":2},"order_id_ex":"ORDER_ID","extension_version":1}' \
https://127.0.0.1:22499/api/trd/order-relations
POST /api/trd/position-corporate-actions¶
proto_id: TRD_GET_POSITION_CORPORATE_ACTIONS (22716)
Scope: acc:read
Enablement and evidence boundary: start with --extended-data-reads; the feature is on by default. Current evidence is source-aligned + local-green; live backend behavior remains unverified.
The instrument set comes only from the account's fresh position snapshot; callers cannot supply or override positions/symbols. The daemon queries yesterday through tomorrow in each market timezone and completes stock and derivative backend pagination independently. Mapping or per-job failures are explicit partial status.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"header":{"trd_env":1,"acc_id":900000001,"trd_market":2},"extension_version":1}' \
https://127.0.0.1:22499/api/trd/position-corporate-actions
POST /api/trd/premium-entitlements¶
proto_id: TRD_GET_PREMIUM_ENTITLEMENTS (2132803599)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/premium-entitlements
POST /api/trd/return-calendar¶
proto_id: TRD_GET_RETURN_CALENDAR (22714)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"header":{"trd_env":1,"acc_id":9001,"trd_market":2},"currency":"USD","query_type":1,"method":2,"time":1788112000000,"calendar_date":"2026-08-01 00:00:00","time_location":"America/New_York","price_context":{"use_pre_market":true,"use_after_hours":false,"use_overnight":true},"extension_version":1}' \
https://127.0.0.1:22499/api/trd/return-calendar
POST /api/trd/sub-account-fill-quantities¶
proto_id: TRD_GET_SUB_ACCOUNT_FILL_QUANTITIES (2132803591)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/sub-account-fill-quantities
POST /api/trd/symbol-history-fills¶
proto_id: TRD_GET_SYMBOL_HISTORY_FILLS (2132803590)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/symbol-history-fills
POST /api/trd/symbol-history-orders¶
proto_id: TRD_GET_SYMBOL_HISTORY_ORDERS (2132803589)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/symbol-history-orders
POST /api/trd/symbol-trade-counts¶
proto_id: TRD_GET_SYMBOL_TRADE_COUNTS (2132803592)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/symbol-trade-counts
POST /api/trd/today-fill-statistics¶
proto_id: TRD_GET_TODAY_FILL_STATISTICS (2132803587)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/today-fill-statistics
POST /api/trd/trade-password-state¶
proto_id: TRD_GET_TRADE_PASSWORD_STATE (2132803602)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/trade-password-state
POST /api/trd/transaction-fee-plan¶
proto_id: TRD_GET_TRANSACTION_FEE_PLAN (2132803596)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/transaction-fee-plan
POST /api/trd/yield-trend¶
proto_id: TRD_GET_YIELD_TREND (22713)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"header":{"trd_env":1,"acc_id":9001,"trd_market":2},"range":{"query_type":3,"currency":"USD","start_date":"2026-08-01 00:00:00","end_date":"2026-08-30 23:59:59","time_location":"America/New_York","price_context":{"use_pre_market":true,"use_after_hours":false,"use_overnight":true}},"method":2,"extension_version":1}' \
https://127.0.0.1:22499/api/trd/yield-trend
Trading Write¶
Place order, modify order, cancel one order, cancel-all, unlock trade cipher, account push sub. Place/modify/cancel requires trade:real / trade:simulate (env-double-check) + --enable-trading. Since v1.4.104 /api/unlock-trade strictly requires trade:unlock (no longer satisfied by other trade super-scopes).
POST /api/cancel-all-order¶
proto_id: TRD_MODIFY_ORDER (2205)
Scope: trade:real or trade:simulate (based on env)
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"acc_id":123456,"env":1,"market":1}' \
https://127.0.0.1:22499/api/cancel-all-order
POST /api/cancel-forex-order¶
proto_id: TRD_CANCEL_FOREX_ORDER (2132803629)
Scope: trade:real
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/cancel-forex-order
POST /api/cancel-order¶
proto_id: TRD_MODIFY_ORDER (2205)
Scope: trade:real or trade:simulate (based on env)
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Semantic single-order cancel endpoint: it still sends Trd_ModifyOrder(Cancel) underneath, but REST clients only need the trading account, env, market, and either order_id or order_id_ex; low-level packet_id / modify_order_op are not required.
Friendly fields: flat bodies accept env (real / simulate / sim), market (US / HK / official non-fund trading-market int), and optional op (cancel / 2). If op is provided, it must mean cancel.
Response semantics: ret_type=0 only means the backend accepted the Cancel operation request; it is not proof of the final cancelled state. The Rust daemon runs one bounded authoritative order refresh before returning the ACK to help REST/CLI follow-up order reads converge sooner. It does not implicitly refresh positions after the cancel ACK; can_sell_qty still comes from later trade push events or an explicit positions query with refresh_cache=true. Final state still comes from push events or refresh queries.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"acc_id":123456,"env":"real","market":"US","order_id_ex":"FH1C8ABB517AE56000"}' \
https://127.0.0.1:22499/api/cancel-order
POST /api/combo-order¶
proto_id: TRD_PLACE_COMBO_ORDER (2227)
Scope: trade:real or trade:simulate (based on env)
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Note: REST clients may omit packet_id; the daemon fills it from the current connection before forwarding.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"c2s":{"header":{"trd_env":1,"acc_id":123456,"trd_market":2},"combo_legs":[{"security":{"market":11,"code":"AAPL260116C200000"},"side":1,"qty_ratio":1.0},{"security":{"market":11,"code":"AAPL260116C205000"},"side":2,"qty_ratio":1.0}],"qty":1.0,"price":1.0,"order_type":1}}' \
https://127.0.0.1:22499/api/combo-order
POST /api/confirm-forex-order¶
proto_id: TRD_CONFIRM_FOREX_ORDER (2132803631)
Scope: trade:real
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/confirm-forex-order
POST /api/modify-forex-order¶
proto_id: TRD_MODIFY_FOREX_ORDER (2132803632)
Scope: trade:real
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/modify-forex-order
POST /api/modify-order¶
proto_id: TRD_MODIFY_ORDER (2205)
Scope: trade:real or trade:simulate (based on env)
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Field table (REST accepts int enums only):
| Field | Type | Required | Description |
|---|---|---|---|
c2s.header.trd_env |
int | ✅ | 0=Real / 1=Simulate |
c2s.header.acc_id |
uint64 | ✅ | Trading account ID |
c2s.header.trd_market |
int | ✅ | Trading market enum |
order_id / order_id_ex |
uint64 / string | ✅ | Order to modify / cancel; pass one of them |
modify_order_op |
int | ✅ | 1=Normal modify / 2=Cancel / 3=Disable / 4=Enable / 5=DeleteOutofdate |
qty / price |
float | Required for Normal modify depending on original order type | New quantity / price |
Single-order cancel: prefer the semantic /api/cancel-order endpoint. This low-level endpoint remains compatible with the historical modify_order_op: 2 cancel shape; /api/cancel-all-order is the bulk-cancel endpoint.
Low-level strict endpoint: /api/modify-order does not accept the flat env / market / op=cancel friendly fields from /api/cancel-order; when using the c2s shape, pass fields according to the low-level ModifyOrder contract. Normal REST single-order cancels should use /api/cancel-order directly.
Response semantics: ret_type=0 means the backend accepted the Modify/Cancel operation request; it is not proof of the final filled/cancelled state. Final order status should be read from trade push events or later order queries with refresh_cache=true; sellable quantity should be read from trade push events or explicit position refresh queries. This matches the official OpenD ModifyOrder ACK semantics. For a successful single-order cancel, the Rust daemon also runs one bounded authoritative order refresh before returning the ACK to help REST/CLI follow-up order reads converge sooner. It does not implicitly refresh positions after the cancel ACK, avoiding unrelated account-info query failures in cancel result handling. Refresh timeout/failure does not rewrite a backend-accepted cancel into a failure; final state still comes from push events or refresh queries.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"c2s":{"header":{"trd_env":1,"acc_id":123456,"trd_market":1},"order_id":987,"modify_order_op":2}}' \
https://127.0.0.1:22499/api/modify-order
POST /api/order¶
proto_id: TRD_PLACE_ORDER (2202)
Scope: trade:real or trade:simulate (based on env)
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"market":1,"acc_id":123456,"env":1,"side":1,"code":"00700","qty":100,"price":300.0}' \
https://127.0.0.1:22499/api/order
POST /api/reconfirm-order¶
proto_id: TRD_RECONFIRM_ORDER (2237)
Scope: trade:real or trade:simulate (based on env)
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"acc_id":123456,"order_id":"987","reconfirm_op":1}' \
https://127.0.0.1:22499/api/reconfirm-order
POST /api/set-forex-position-stops¶
proto_id: TRD_SET_FOREX_POSITION_STOPS (2132803630)
Scope: trade:real
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/set-forex-position-stops
POST /api/sub-acc-push¶
proto_id: TRD_SUB_ACC_PUSH (2008)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"acc_id_list":[123456]}' \
https://127.0.0.1:22499/api/sub-acc-push
POST /api/trd/batch-close-positions¶
proto_id: TRD_BATCH_CLOSE_POSITIONS (22727)
Scope: trade:real
Real-money write, disabled by default: requires --enable-position-actions. Targets must be explicit, deduplicated, non-portfolio positions with requested quantity no greater than the fresh closable balance. Japanese brokers and unsupported markets are rejected. Supply qty as decimal text; quantity comparisons do not round through floating point.
US fractional closes also require a universal account, confirmed non-DVP settlement, valid dynamic configuration and membership in the current broker's stock whitelist. Fractional requests allow up to four decimal places and a maximum of 999999999.9999. Refresh positions if the original decimal balance is unavailable. An integer request against a fractional balance does not require fractional eligibility. Any ineligible target rejects the entire batch.
Fractional quantities use the regular session; Canadian brokers retain the existing unspecified-session behavior. Other side, order-type and session fields come from fresh position and security facts. Account, configuration, connection or position changes invalidate admission before writing. Unconfirmed trades are never automatically resent. Offline tests cover the new fractional path; live-account verification remains pending. KRX retains local market contracts TrdMarket=18, TrdSecMarket=121, and QotMarket=111.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"header":{"trd_env":1,"acc_id":900001,"trd_market":2},"idempotency_key":"batch-demo-1","mode":1,"target_list":[{"position_id":9002,"qty":"10"}],"extension_version":1}' \
https://127.0.0.1:22499/api/trd/batch-close-positions
POST /api/trd/begin-forex-unlock¶
proto_id: TRD_BEGIN_FOREX_UNLOCK (2132803615)
Scope: trade:unlock
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/begin-forex-unlock
POST /api/trd/cancel-order-group¶
proto_id: TRD_CANCEL_ORDER_GROUP (22719)
Scope: trade:real
Real-money write, disabled by default: cancels only a complete authoritative current server order group; requires --enable-group-orders and trade:real.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"header":{"trd_env":1,"acc_id":900001,"trd_market":2},"initial":{"idempotency_key":"group-cancel-demo-1","group_type":3,"order_id_list":["ORDER_ID"]},"extension_version":1}' \
https://127.0.0.1:22499/api/trd/cancel-order-group
POST /api/trd/clear-futures-positions¶
proto_id: TRD_CLEAR_FUTURES_POSITIONS (22726)
Scope: trade:real
Real-money write, disabled by default: explicit targets use custom_contract=true and may include supported futures options, but not calendar-spread futures. Account-wide clear requires both all_positions=true and daemon flag --allow-all-position-clear; any unsupported contract in scope rejects the whole action. A synchronous result=0 is admission only; final state requires one unique original-req_id 4718/push result.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"header":{"trd_env":1,"acc_id":900001,"trd_market":5},"idempotency_key":"clear-demo-1","position_id_list":[9001],"price_type":1,"all_positions":false,"extension_version":1}' \
https://127.0.0.1:22499/api/trd/clear-futures-positions
POST /api/trd/complete-forex-unlock¶
proto_id: TRD_COMPLETE_FOREX_UNLOCK (2132803616)
Scope: trade:unlock
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/complete-forex-unlock
POST /api/trd/delete-order-group¶
proto_id: TRD_DELETE_ORDER_GROUP (22720)
Scope: trade:real
Real-money write, disabled by default: deletes only a complete authoritative current server order group; requires --enable-group-orders and trade:real.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"header":{"trd_env":1,"acc_id":900001,"trd_market":2},"initial":{"idempotency_key":"group-delete-demo-1","group_type":3,"order_id_list":["ORDER_ID"]},"extension_version":1}' \
https://127.0.0.1:22499/api/trd/delete-order-group
POST /api/trd/forex-unlock-status¶
proto_id: TRD_GET_FOREX_UNLOCK_STATUS (2132803618)
Scope: trade:unlock
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/forex-unlock-status
POST /api/trd/lock-forex-trade¶
proto_id: TRD_LOCK_FOREX_TRADE (2132803617)
Scope: trade:unlock
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/lock-forex-trade
POST /api/trd/modify-algo-order¶
proto_id: TRD_MODIFY_ALGO_ORDER (22722)
Scope: trade:real
Real-money write, disabled by default: modifies only a nonterminal authoritative current algorithm-order snapshot. Product, market, and algorithm market/limit shape cannot change; modify never overwrites the server vendor and revalidates static/live/customer-company facts. Requires --enable-algo-orders and trade:real.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"header":{"trd_env":1,"acc_id":900001,"trd_market":2},"initial":{"idempotency_key":"algo-modify-1","order_id":"ORDER_ID","order_version":1,"new_qty":"200","algo":{"algo_type":2,"start_time":1788138000000000,"end_time":1788141600000000,"vwap":{"participation_rate":"0.25"}}},"extension_version":1}' \
https://127.0.0.1:22499/api/trd/modify-algo-order
POST /api/trd/modify-order-group¶
proto_id: TRD_MODIFY_ORDER_GROUP (22718)
Scope: trade:real
Real-money write, disabled by default: accepts only one authoritative current server order group; requires --enable-group-orders and trade:real. Never auto-resubmit an unknown result.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"header":{"trd_env":1,"acc_id":900001,"trd_market":2},"initial":{"idempotency_key":"group-modify-demo-1","group_type":3,"order_list":[{"order_id":"ORDER_ID","order_version":1,"new_price":"101"}]},"extension_version":1}' \
https://127.0.0.1:22499/api/trd/modify-order-group
POST /api/trd/place-algo-order¶
proto_id: TRD_PLACE_ALGO_ORDER (22721)
Scope: trade:real
Real-money write, disabled by default: explicitly enable --enable-algo-orders and satisfy trade:real, the source-pinned product/market-limit/side/round-lot matrix, live order_ability_config_v3, dynamic customer-company and required BCAN facts, static-security, broker/cipher, and durable-intent gates. The API exposes typed market/limit variants for six algorithms, but sends only combinations allowed by the pinned rows (for example, US rejects Slicer/Peg and Iceberg market; CN, HK common, and HK futures use their own rows). Evidence is source-aligned + local-green; live backend is unverified. Unknown outcomes are never auto-resubmitted.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"header":{"trd_env":1,"acc_id":900001,"trd_market":2},"initial":{"idempotency_key":"algo-demo-1","client_order_id":"algo-client-1","code":"AAPL","sec_market":2,"trd_side":1,"qty":"100","price_mode":2,"limit_price":"100","lot_type":2,"order_trade_time_type":1,"position_open_type":1,"pdt_protection":true,"algo":{"algo_type":2,"start_time":1788138000000000,"end_time":1788141600000000,"vwap":{"participation_rate":"0.25"}}},"extension_version":1}' \
https://127.0.0.1:22499/api/trd/place-algo-order
POST /api/trd/place-order-group¶
proto_id: TRD_PLACE_ORDER_GROUP (22717)
Scope: trade:real
Real-money write, disabled by default: explicitly enable --enable-group-orders and satisfy trade:real, account/broker/cipher/capability, and durable-intent gates. Evidence is source-aligned + local-green only; live backend behavior is unverified. Timeout/disconnect returns an unknown result and is never auto-resubmitted.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"header":{"trd_env":1,"acc_id":900001,"trd_market":2},"initial":{"idempotency_key":"group-demo-1","group_type":3,"order_list":[{"acc_id":900001,"client_order_id":"leg-1","code":"AAPL","sec_market":2,"trd_side":1,"order_type":1,"qty":"1","price":"100","lot_type":2,"time_in_force":0,"order_trade_time_type":1,"children_relation":0,"brother_relation":0}],"pdt_protection":true},"extension_version":1}' \
https://127.0.0.1:22499/api/trd/place-order-group
POST /api/trd/reverse-position¶
proto_id: TRD_REVERSE_POSITION (22724)
Scope: trade:real
Real-money write, disabled by default: accepts only a fresh authoritative position and complete stock-list facts for an ordinary monthly future. Close and implicit-open symbols, sides, and notionals are authorized atomically. After one backend request, success requires a fresh current-order snapshot plus order-group details to prove two distinct orders in one relation_type=1 group with exact symbol/side/qty/static identity; unknown outcomes are never auto-resubmitted.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"header":{"trd_env":1,"acc_id":900001,"trd_market":5},"initial":{"idempotency_key":"reverse-demo-1","position_id":9001,"price_type":1},"extension_version":1}' \
https://127.0.0.1:22499/api/trd/reverse-position
POST /api/trd/roll-position¶
proto_id: TRD_ROLL_POSITION (22725)
Scope: trade:real
Real-money write, disabled by default: source and target must be different ordinary monthly futures sharing one non-zero linkage_future_id, and source-close/target-open symbols and sides are checked separately. backend request carries no target price, so the daemon does not treat a quote cache as trade notional; API keys with per-order or daily value limits fail closed. After one backend request, a fresh current-order snapshot plus order-group details must prove both relation_type=2 members.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"header":{"trd_env":1,"acc_id":900001,"trd_market":5},"initial":{"idempotency_key":"roll-demo-1","position_id":9001,"target_code":"HSI2610","target_sec_market":1},"extension_version":1}' \
https://127.0.0.1:22499/api/trd/roll-position
POST /api/trd/set-account-auto-exchange-setting¶
proto_id: TRD_SET_ACCOUNT_AUTO_EXCHANGE_SETTING (2132803622)
Scope: trade:real
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/set-account-auto-exchange-setting
POST /api/trd/set-account-financing-setting¶
proto_id: TRD_SET_ACCOUNT_FINANCING_SETTING (2132803620)
Scope: trade:real
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/set-account-financing-setting
POST /api/trd/set-account-foreign-exchange-setting¶
proto_id: TRD_SET_ACCOUNT_FOREIGN_EXCHANGE_SETTING (2132803624)
Scope: trade:real
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/set-account-foreign-exchange-setting
POST /api/trd/set-account-local-exchange-setting¶
proto_id: TRD_SET_ACCOUNT_LOCAL_EXCHANGE_SETTING (2132803626)
Scope: trade:real
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/trd/set-account-local-exchange-setting
POST /api/unlock-trade¶
proto_id: TRD_UNLOCK_TRADE (2005)
Scope: trade:unlock
Transport boundary: remote calls are supported over the daemon's native HTTPS.
Configure rest_tls_cert and rest_tls_key, verify the server certificate, and use
an API key with the trade:unlock scope. Configured API-key authentication requires TLS
even on loopback listeners; reverse proxies must also use HTTPS upstream.
Non-loopback plaintext requests that reach this route receive 403 with diagnostic key
rest.unlock_trade.local_transport_required; plaintext sent to a TLS listener cannot complete the TLS handshake.
Forwarded / X-Forwarded-Proto headers cannot substitute for actual TLS. Account allowlists still apply.
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"unlock":true,"pwd_md5":"<md5-of-trade-password>"}' \
https://127.0.0.1:22499/api/unlock-trade
POST /api/unsub-acc-push¶
proto_id: — (non-proto / no backend forwarding)
Scope: acc:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{"acc_id_list":[123456]}' \
https://127.0.0.1:22499/api/unsub-acc-push
Quantitative Strategies / Cloud Sync¶
Cloud strategy and archive synchronization, cloud quota, and running data maintenance. See each endpoint for scopes and configuration requirements.
POST /api/create-quant-cloud-archives¶
proto_id: QOT_CREATE_QUANT_CLOUD_ARCHIVES (2131755081)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/create-quant-cloud-archives
POST /api/create-quant-cloud-strategies¶
proto_id: QOT_CREATE_QUANT_CLOUD_STRATEGIES (2131755077)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/create-quant-cloud-strategies
POST /api/delete-quant-cloud-archives¶
proto_id: QOT_DELETE_QUANT_CLOUD_ARCHIVES (2131755083)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/delete-quant-cloud-archives
POST /api/delete-quant-cloud-strategies¶
proto_id: QOT_DELETE_QUANT_CLOUD_STRATEGIES (2131755079)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/delete-quant-cloud-strategies
POST /api/get-quant-cloud-archives¶
proto_id: QOT_GET_QUANT_CLOUD_ARCHIVES (2131755080)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/get-quant-cloud-archives
POST /api/get-quant-cloud-quota¶
proto_id: QOT_GET_QUANT_CLOUD_QUOTA (2131755084)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/get-quant-cloud-quota
POST /api/get-quant-cloud-strategies¶
proto_id: QOT_GET_QUANT_CLOUD_STRATEGIES (2131755076)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/get-quant-cloud-strategies
POST /api/get-quant-running-data¶
proto_id: QOT_GET_QUANT_RUNNING_DATA (2131755087)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/get-quant-running-data
POST /api/get-quant-running-inventory¶
proto_id: QOT_GET_QUANT_RUNNING_INVENTORY (2131755086)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/get-quant-running-inventory
POST /api/update-quant-cloud-archive¶
proto_id: QOT_UPDATE_QUANT_CLOUD_ARCHIVE (2131755082)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/update-quant-cloud-archive
POST /api/update-quant-cloud-strategy¶
proto_id: QOT_UPDATE_QUANT_CLOUD_STRATEGY (2131755078)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/update-quant-cloud-strategy
POST /api/upsert-quant-running-data¶
proto_id: QOT_UPSERT_QUANT_RUNNING_DATA (2131755088)
Scope: qot:read
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/upsert-quant-running-data
Admin¶
Daemon management endpoints. Requires admin scope.
Runtime contract:
- GET /api/admin/status: Synchronous read-only snapshot. Includes last_reload_refresh field (never_run / running / succeeded / failed / skipped / not_applicable) for monitoring the background reload refresh task.
- POST /api/admin/shutdown: Returns 200 synchronously, then triggers daemon exit through the internal shutdown signal.
- POST /api/admin/reload: Synchronously clears cipher cache and returns immediately; credentials refresh runs in the background (check /api/admin/status → last_reload_refresh for outcome).
Body validation: POST /api/admin/shutdown + POST /api/admin/reload accept only empty body / {} / null. Any user-supplied field returns 400 (handler does not read body).
POST /api/admin/reload¶
proto_id: — (non-proto / no backend forwarding)
Scope: admin
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/admin/reload
POST /api/admin/shutdown¶
proto_id: — (non-proto / no backend forwarding)
Scope: admin
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
Example:
curl -X POST -H "Authorization: Bearer $FUTU_API_KEY" -H 'Content-Type: application/json' \
-d '{}' \
https://127.0.0.1:22499/api/admin/shutdown
GET /api/admin/status¶
proto_id: — (non-proto / no backend forwarding)
Scope: admin
Parameters / Response: Follow this endpoint’s field table and linked contract; the example illustrates the request shape.
platform and every brokers[] entry also include lifecycle_state,
lifecycle_generation, and optional last_lifecycle_event. Broker reconnect
counters and the latest attempt/success/failure timestamps come from the same
lifecycle snapshot, so operators can tell whether recovery is still progressing.
Example:
Further reading¶
- MCP tool docs: /reference/mcp-tools
- gRPC proto_id table: /reference/grpc-api
- Common error codes + pits: /guide/common-pitfalls