Combinable event-contract events and the MVC ticker that must
GET/api/v1.0/quote/valid-combosList combinable event-contract events and the MVC ticker that must be passed through to RFQ. Returns combo_events[] with event_code, event_name, combo_contracts (KS symbols), series_code, category / competition / competition_scope; data.mvc is the opaque RFQ passthrough; pagination has completed / page_flag / count. Public symbols use KS.{futu_symbol}, not the OpenD EC. prefix. No subscribe required. For combo RFQ use quote.combo_quotes and pass mvc through unchanged.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
category | string | query | no | Primary category filter: raw exchange value or English name, e.g. SPORTS / Sports; numeric category id also accepted |
competition | string | query | no | Competition filter: raw tag or English name; numeric id also accepted. Prefer sending category together |
series | string | query | no | Series symbol filter, e.g. KS.KXNFLGAME |
page_flag | string | query | no | Page cursor. Omit or pass empty on the first page; pass back pagination.page_flag. Stop only when pagination.completed is true |
page_size | int | query | no | Page size, default 200, max 200 |
Example
bash
curl -X GET 'https://webapi.futunn.com/api/v1.0/quote/valid-combos' \
-H 'Authorization: Bearer <AccessToken>' | jqResponse parameters
| Name | Type | Description |
|---|---|---|
data.combo_events | object[] | |
data.combo_events[].event_code | string | Event symbol, e.g. KS.KXNFLGAME-26SEP12PITNE |
data.combo_events[].event_name | string | Event English name |
data.combo_events[].combo_contracts | string[] | KS symbols that may be used as a combo leg from this event. Pick at most one per event and combine with a contract from another event; two contracts from the same event are rejected |
data.combo_events[].series_code | string | Parent series symbol, e.g. KS.KXNFLGAME |
data.combo_events[].category | string | Raw primary category, e.g. SPORTS |
data.combo_events[].competition | string | Raw competition value |
data.combo_events[].competition_scope | string | Raw competition scope value |
data.mvc | string | MVC origin ticker; must be passed through unchanged to combo RFQ |
data.mvc_exchange | string | MVC exchange code; may be passed through to combo RFQ |
pagination.completed | bool | True when this is the last page. Stop paging only when completed is true |
pagination.page_flag | string | Next page cursor. Pass it back as page_flag while completed is false; empty on the last page |
pagination.total | int | Total number of matched rows |
Errors
| ret_code | error.code | Description |
|---|---|---|
| 0 | — | Success |
| -3 | invalid_parameter | Missing or invalid parameter |
| -8 | unsupported | Not supported |
| -10 | no_data | No data |
Response example
json
{
"ret_code": 0,
"ret_msg": "success",
"data": {
"combo_events": [
{
"event_code": "example",
"event_name": "example",
"combo_contracts": ["KS.example.CONTRACT"],
"series_code": "example",
"category": "example",
"competition": "example",
"competition_scope": "example"
}
],
"mvc": "example",
"mvc_exchange": "example"
},
"pagination": {
"page_flag": "",
"completed": true,
"total": 0
}
}