Calendars / Macroeconomics¶
futu_get_financial_calendar¶
- Scope:
qot:read - Python SDK equivalent:
Rust enhanced financial-calendar view - Route: MCP JSON-RPC
tools/callwith name ="futu_get_financial_calendar"
Description:
Read-only financial calendar view. Rust enhancement backed by the mobile calendar service; not a C++ FTAPI parity endpoint.
Request arguments:
| Field | Type | Required | Alias | Description |
|---|---|---|---|---|
begin_date |
string | ✅ | beginDate |
Start date in YYYYMMDD. Alias: beginDate |
end_date |
string | ✅ | endDate |
Exclusive end date in YYYYMMDD. Alias: endDate |
market_list |
array of i32 | ✓ default default |
marketList |
Financial calendar market enum list: HK=1, US=2, CN=3, AU=4, SG=5, CA=6, JP=7, MY=8. Alias: marketList |
pub_type_list |
array of i32 | ✓ default default |
pubTypeList |
Publication type list: 0=regular/same day, 1=pre-market, 2=after-hours. Alias: pubTypeList |
stock_type_list |
array of i32 | ✓ default default |
stockTypeList |
Stock filter type list: 1=watchlist, 2=holding, 3=special watch. Alias: stockTypeList |
watchlist_only |
boolean | ✓ default default |
watchlistOnly |
Convenience switch for watchlist-only calendar view. Pass watchlist_stock_ids when you want client-cache-exact filtering. Alias: watchlistOnly |
positions_only |
boolean | ✓ default default |
positionsOnly |
Convenience switch for position-only calendar view. Pass holding_stock_ids when you want client-cache-exact filtering. Alias: positionsOnly |
count |
i32? | — | — | Result limit, 1-1000. Omit to use backend default. |
ranking_type |
i32? | — | rankingType |
Ranking type. Alias: rankingType |
estimate_type_list |
array of i32 | ✓ default default_financial_calendar_estimate_type_list |
estimateTypeList |
Estimate type list: 1=EPS_GAAP, 2=REVENUE, 3=EBIT. Defaults to [1,2,3]. Alias: estimateTypeList |
custom_filter_list |
array of FinancialCalendarCustomFilterReq | ✓ default default |
customFilterList |
Custom filters. Alias: customFilterList |
watchlist_stock_ids |
array of u64 | ✓ default default |
watchlistStockIds |
Explicit watchlist stock_id list. Alias: watchlistStockIds |
holding_stock_ids |
array of u64 | ✓ default default |
holdingStockIds |
Explicit holding stock_id list. Alias: holdingStockIds |
⚠️ Unknown fields:
deny_unknown_fieldsis enabled — any field not listed above returns anunknown fielderror (previously silently dropped).Runtime validation: this request type has a
validate()method that adds runtime required-field / enum-value validation on top of the JSON schema.
JSON-RPC call example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "futu_get_financial_calendar",
"arguments": {
"begin_date": "…",
"end_date": "…",
"market_list": [],
"pub_type_list": [],
"stock_type_list": [],
"watchlist_only": false,
"positions_only": false,
"count": 100,
"estimate_type_list": [],
"custom_filter_list": [],
"watchlist_stock_ids": [],
"holding_stock_ids": []
}
}
}
Response: JSON text matching the corresponding REST endpoint / Python SDK. On failure MCP CallToolResult.is_error=true + content carries {"error": "...", "status": "error"}.
futu_search_target_financial_calendar¶
- Scope:
qot:read - Python SDK equivalent:
Rust enhanced financial-calendar target search - Route: MCP JSON-RPC
tools/callwith name ="futu_search_target_financial_calendar"
Description:
Target-stock financial calendar search. Rust enhancement backed by the mobile calendar service; not a C++ FTAPI parity endpoint.
Request arguments:
| Field | Type | Required | Alias | Description |
|---|---|---|---|---|
stock_id |
array of u64 | ✅ | stockId |
Backend stock_id list to query. Alias: stockId |
market_list |
array of i32 | ✓ default default |
marketList |
Financial calendar market enum list: HK=1, US=2, CN=3, AU=4, SG=5, CA=6, JP=7, MY=8. Alias: marketList |
size |
i32 | ✅ | — | Number of calendar rows to fetch; must be positive. |
start |
i32? | — | — | Pagination start offset. Alias: start |
⚠️ Unknown fields:
deny_unknown_fieldsis enabled — any field not listed above returns anunknown fielderror (previously silently dropped).Runtime validation: this request type has a
validate()method that adds runtime required-field / enum-value validation on top of the JSON schema.
JSON-RPC call example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "futu_search_target_financial_calendar",
"arguments": {
"stock_id": [],
"market_list": [],
"size": 0
}
}
}
Response: JSON text matching the corresponding REST endpoint / Python SDK. On failure MCP CallToolResult.is_error=true + content carries {"error": "...", "status": "error"}.
futu_get_ipo_calendar¶
- Scope:
qot:read - Python SDK equivalent:
OpenQuoteContext.get_ipo_list (calendar view) - Route: MCP JSON-RPC
tools/callwith name ="futu_get_ipo_calendar"
Description:
IPO calendar projection over get_ipo_list. Rust read-only enhancement for calendar-style IPO monitoring; not a separate C++ FTAPI endpoint.
Request arguments:
| Field | Type | Required | Alias | Description |
|---|---|---|---|---|
market |
i32 | ✅ | — | Market code accepted by the IPO calendar projection. Accept int (1=HK, 2=HK_FUTURE, 11=US, 21=SH/CN, 22=SZ, 31=SG, 41=JP, 61=MY) OR string. |
event_types |
array of string | ✓ default default |
eventTypes |
IPO calendar event filter: list/apply/apply_start/apply_end/winning/approval/issue_confirm/price_confirm_start/price_confirm_end/inquiry_start/inquiry_end/draw. Alias: eventTypes |
begin_date |
string? | — | beginDate |
Optional begin date YYYYMMDD. Alias: beginDate |
end_date |
string? | — | endDate |
Optional end date YYYYMMDD. Alias: endDate |
⚠️ Unknown fields:
deny_unknown_fieldsis enabled — any field not listed above returns anunknown fielderror (previously silently dropped).Runtime validation: this request type has a
validate()method that adds runtime required-field / enum-value validation on top of the JSON schema.
JSON-RPC call example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "futu_get_ipo_calendar",
"arguments": {
"market": "HK",
"event_types": []
}
}
}
Response: JSON text matching the corresponding REST endpoint / Python SDK. On failure MCP CallToolResult.is_error=true + content carries {"error": "...", "status": "error"}.
futu_get_earnings_calendar¶
- Scope:
qot:read - Python SDK equivalent:
OpenQuoteContext.get_earnings_calendar - Route: MCP JSON-RPC
tools/callwith name ="futu_get_earnings_calendar"
Description:
Get earnings calendar data. Public QOT 3401. c2s_json must be generated-proto JSON.
Request arguments:
| Field | Type | Required | Alias | Description |
|---|---|---|---|---|
c2s_json |
string | ✅ | — | Official generated C2S JSON. Field names use generated proto serde snake_case, e.g. multi_legs / combo_legs / order_type. |
api_key |
string? | — | — | Optional per-call API key plaintext. HTTP scope mode still requires a valid Bearer on every /mcp request; this field overrides that identity for the tool handler. In stdio mode: tool argument > startup key. |
⚠️ Unknown fields:
deny_unknown_fieldsis enabled — any field not listed above returns anunknown fielderror (previously silently dropped).
JSON-RPC call example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "futu_get_earnings_calendar",
"arguments": {
"c2s_json": "…",
"api_key": "optional-per-call-api-key"
}
}
}
Response: JSON text matching the corresponding REST endpoint / Python SDK. On failure MCP CallToolResult.is_error=true + content carries {"error": "...", "status": "error"}.
futu_get_macro_indicator_list¶
- Scope:
qot:read - Python SDK equivalent:
OpenQuoteContext.get_macro_indicator_list - Route: MCP JSON-RPC
tools/callwith name ="futu_get_macro_indicator_list"
Description:
Get macro indicator list. Public QOT 3402. c2s_json must be generated-proto JSON.
Request arguments:
| Field | Type | Required | Alias | Description |
|---|---|---|---|---|
c2s_json |
string | ✅ | — | Official generated C2S JSON. Field names use generated proto serde snake_case, e.g. multi_legs / combo_legs / order_type. |
api_key |
string? | — | — | Optional per-call API key plaintext. HTTP scope mode still requires a valid Bearer on every /mcp request; this field overrides that identity for the tool handler. In stdio mode: tool argument > startup key. |
⚠️ Unknown fields:
deny_unknown_fieldsis enabled — any field not listed above returns anunknown fielderror (previously silently dropped).
JSON-RPC call example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "futu_get_macro_indicator_list",
"arguments": {
"c2s_json": "…",
"api_key": "optional-per-call-api-key"
}
}
}
Response: JSON text matching the corresponding REST endpoint / Python SDK. On failure MCP CallToolResult.is_error=true + content carries {"error": "...", "status": "error"}.
futu_get_macro_indicator_history¶
- Scope:
qot:read - Python SDK equivalent:
OpenQuoteContext.get_macro_indicator_history - Route: MCP JSON-RPC
tools/callwith name ="futu_get_macro_indicator_history"
Description:
Get macro indicator history. Public QOT 3403. c2s_json must be generated-proto JSON.
Request arguments:
| Field | Type | Required | Alias | Description |
|---|---|---|---|---|
c2s_json |
string | ✅ | — | Official generated C2S JSON. Field names use generated proto serde snake_case, e.g. multi_legs / combo_legs / order_type. |
api_key |
string? | — | — | Optional per-call API key plaintext. HTTP scope mode still requires a valid Bearer on every /mcp request; this field overrides that identity for the tool handler. In stdio mode: tool argument > startup key. |
⚠️ Unknown fields:
deny_unknown_fieldsis enabled — any field not listed above returns anunknown fielderror (previously silently dropped).
JSON-RPC call example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "futu_get_macro_indicator_history",
"arguments": {
"c2s_json": "…",
"api_key": "optional-per-call-api-key"
}
}
}
Response: JSON text matching the corresponding REST endpoint / Python SDK. On failure MCP CallToolResult.is_error=true + content carries {"error": "...", "status": "error"}.
futu_get_fed_watch_target_rate¶
- Scope:
qot:read - Python SDK equivalent:
OpenQuoteContext.get_fed_watch_target_rate - Route: MCP JSON-RPC
tools/callwith name ="futu_get_fed_watch_target_rate"
Description:
Get FedWatch target-rate data. Public QOT 3404. c2s_json must be generated-proto JSON.
Request arguments:
| Field | Type | Required | Alias | Description |
|---|---|---|---|---|
c2s_json |
string | ✅ | — | Official generated C2S JSON. Field names use generated proto serde snake_case, e.g. multi_legs / combo_legs / order_type. |
api_key |
string? | — | — | Optional per-call API key plaintext. HTTP scope mode still requires a valid Bearer on every /mcp request; this field overrides that identity for the tool handler. In stdio mode: tool argument > startup key. |
⚠️ Unknown fields:
deny_unknown_fieldsis enabled — any field not listed above returns anunknown fielderror (previously silently dropped).
JSON-RPC call example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "futu_get_fed_watch_target_rate",
"arguments": {
"c2s_json": "…",
"api_key": "optional-per-call-api-key"
}
}
}
Response: JSON text matching the corresponding REST endpoint / Python SDK. On failure MCP CallToolResult.is_error=true + content carries {"error": "...", "status": "error"}.
futu_get_fed_watch_dot_plot¶
- Scope:
qot:read - Python SDK equivalent:
OpenQuoteContext.get_fed_watch_dot_plot - Route: MCP JSON-RPC
tools/callwith name ="futu_get_fed_watch_dot_plot"
Description:
Get FedWatch dot-plot data. Public QOT 3405. c2s_json must be generated-proto JSON.
Request arguments:
| Field | Type | Required | Alias | Description |
|---|---|---|---|---|
c2s_json |
string | ✅ | — | Official generated C2S JSON. Field names use generated proto serde snake_case, e.g. multi_legs / combo_legs / order_type. |
api_key |
string? | — | — | Optional per-call API key plaintext. HTTP scope mode still requires a valid Bearer on every /mcp request; this field overrides that identity for the tool handler. In stdio mode: tool argument > startup key. |
⚠️ Unknown fields:
deny_unknown_fieldsis enabled — any field not listed above returns anunknown fielderror (previously silently dropped).
JSON-RPC call example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "futu_get_fed_watch_dot_plot",
"arguments": {
"c2s_json": "…",
"api_key": "optional-per-call-api-key"
}
}
}
Response: JSON text matching the corresponding REST endpoint / Python SDK. On failure MCP CallToolResult.is_error=true + content carries {"error": "...", "status": "error"}.
futu_get_dividend_calendar¶
- Scope:
qot:read - Python SDK equivalent:
OpenQuoteContext.get_dividend_calendar - Route: MCP JSON-RPC
tools/callwith name ="futu_get_dividend_calendar"
Description:
Get dividend calendar data. Public QOT 3408. c2s_json must be generated-proto JSON.
Request arguments:
| Field | Type | Required | Alias | Description |
|---|---|---|---|---|
c2s_json |
string | ✅ | — | Official generated C2S JSON. Field names use generated proto serde snake_case, e.g. multi_legs / combo_legs / order_type. |
api_key |
string? | — | — | Optional per-call API key plaintext. HTTP scope mode still requires a valid Bearer on every /mcp request; this field overrides that identity for the tool handler. In stdio mode: tool argument > startup key. |
⚠️ Unknown fields:
deny_unknown_fieldsis enabled — any field not listed above returns anunknown fielderror (previously silently dropped).
JSON-RPC call example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "futu_get_dividend_calendar",
"arguments": {
"c2s_json": "…",
"api_key": "optional-per-call-api-key"
}
}
}
Response: JSON text matching the corresponding REST endpoint / Python SDK. On failure MCP CallToolResult.is_error=true + content carries {"error": "...", "status": "error"}.
futu_get_economic_calendar¶
- Scope:
qot:read - Python SDK equivalent:
OpenQuoteContext.get_economic_calendar - Route: MCP JSON-RPC
tools/callwith name ="futu_get_economic_calendar"
Description:
Get economic calendar data. Public QOT 3409. c2s_json must be generated-proto JSON.
Request arguments:
| Field | Type | Required | Alias | Description |
|---|---|---|---|---|
c2s_json |
string | ✅ | — | Official generated C2S JSON. Field names use generated proto serde snake_case, e.g. multi_legs / combo_legs / order_type. |
api_key |
string? | — | — | Optional per-call API key plaintext. HTTP scope mode still requires a valid Bearer on every /mcp request; this field overrides that identity for the tool handler. In stdio mode: tool argument > startup key. |
⚠️ Unknown fields:
deny_unknown_fieldsis enabled — any field not listed above returns anunknown fielderror (previously silently dropped).
JSON-RPC call example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "futu_get_economic_calendar",
"arguments": {
"c2s_json": "…",
"api_key": "optional-per-call-api-key"
}
}
}
Response: JSON text matching the corresponding REST endpoint / Python SDK. On failure MCP CallToolResult.is_error=true + content carries {"error": "...", "status": "error"}.