Stock Quote
POST/v1/quote/stock-quoteBatch get real-time stock quotes (lightweight snapshot), aligned with the Quote base quote pushed via subscription. Compared to get_market_snapshot, the field set is more compact and suitable for multi-symbol polling.
Request Parameters
| Parameter | Type | Position | Required | Description |
|---|---|---|---|---|
code_list | string[] | body | yes | List of symbol codes. |
Request Example
bash
curl -s -X POST "$ip/v1/quote/stock-quote" \
-H "Content-Type: application/json" \
-H "X-Futu-Client-Nnid: 76879657" \
-d '{"code_list":["HK.09988","BMD.FCPOmain","HK.TCH260629C390000"]}' | jqResponse Fields
Returns data.quote_list[], each element is one symbol quote. Fields not applicable to a category are returned as 0 / empty string; sub-object field sets are stable.
Common Fields (returned for all categories)
| Field | Type | Description |
|---|---|---|
| code | string | Symbol code (e.g. HK.09988). |
| name | string | Symbol name. |
| data_time | int64 | Exchange quote time, millisecond timestamp. |
| data_date | string | Trading date in the symbol's market timezone, YYYY-MM-DD. |
| last_price | double | Latest price. |
| open_price | double | Today's open. |
| high_price | double | Today's high. |
| low_price | double | Today's low. |
| prev_close_price | double | Previous close. |
| volume | int64 | Volume (shares/contracts). |
| turnover | double | Turnover (currency unit). |
| turnover_rate | double | Turnover rate (percentage, e.g. 0.353 means 0.353%). |
| amplitude | double | Amplitude (percentage). |
| sec_status | string | Security status, see enum sec_status |
| suspension | bool | Whether suspended. |
| dark_status | string | Dark pool status, see enum dark_status |
| listing_date | string | Listing date (market timezone YYYY-MM-DD), empty string if missing. |
option_ex_data Sub-object (only meaningful for options; all fields are 0 or empty string for other categories)
| Field | Type | Description |
|---|---|---|
| strike_price | double | Strike price. |
| contract_size | int64 | Contract size. |
| open_interest | int64 | Open interest. |
| implied_volatility | double | Implied volatility (percentage). |
| premium | double | Option premium. |
| delta | double | Delta. |
| gamma | double | Gamma. |
| vega | double | Vega. |
| theta | double | Theta. |
| rho | double | Rho. |
| net_open_interest | int64 | Net open interest. |
| contract_nominal_value | double | Contract nominal value. |
| owner_lot_multiplier | int64 | Underlying lot multiplier. |
| contract_multiplier | int64 | Contract multiplier. |
| option_type | string | Option direction, see enum option_type |
| index_option_type | int32 | Index option type. |
| expiry_date_distance | int64 | Days to expiry (negative if expired). |
| option_area_type | string | Option exercise type, see enum option_area_type |
future_ex_data Sub-object (only meaningful for futures; all fields are 0 for other categories)
| Field | Type | Description |
|---|---|---|
| last_settle_price | double | Previous settlement price. |
| position | int64 | Open interest (position). |
| position_change | int64 | Position change. |
pre_market / after_market / overnight Sub-objects (0 when not in that session)
| Field | Type | Description |
|---|---|---|
| price | double | Session price. |
| high_price | double | Session high. |
| low_price | double | Session low. |
| volume | int64 | Session volume. |
| turnover | double | Session turnover. |
| change_val | double | Change value. |
| change_rate | double | Change rate (percentage). |
| amplitude | double | Amplitude (percentage). |
Note: SH STAR Market's after_market.volume / after_market.turnover are auto-merged into the STAR Market after-hours segment (kcb).
Supported Markets
- Code must use a supported market prefix from the 13 markets listed below; otherwise returns
invalid_symbol. - If all codes in code_list are invalid ->
invalid_symbol; if partially invalid -> only valid codes are returned (compare request and response to identify dropped codes).
Supported market prefixes and categories:
| Prefix | Market | Supported Categories |
|---|---|---|
| HK | Hong Kong | Equity / Trust / REIT / Warrant / CBBC / Inline Warrant / Index / Sector / ETF / Option |
| US | United States | Equity / ETF / Index |
| SH | Shanghai | Equity / ETF / Index / Sector |
| SZ | Shenzhen | Equity / ETF / Index / Sector |
| BJ | Beijing | Equity / Index |
| SG | Singapore | Equity / ETF / Index |
| JP | Japan | Equity / Index |
| AU | Australia | Equity / Index |
| CA | Canada | Equity / ETF / Index |
| BMS | Malaysia Main Board | Equity / Index |
| BMD | Malaysia Derivatives | Futures |
| EC | Digital Currency Composite | CRYPTO |
| FX | Forex | FOREX |
Error Codes
| ret_code | error.code | Trigger Condition | Recommended Action |
|---|---|---|---|
| 0 | — | Success (including cases where some codes are invalid but valid ones are returned) | Compare data.quote_list[].code with request code_list to identify dropped codes |
| -3 | invalid_parameter | Missing code_list / element count is 0 / elements are not strings | Correct request body and retry |
| -4 | internal_error | Gateway failed to construct backend request | Retry; if persistent, contact gateway support |
| -6 | internal_error | Gateway response conversion failed | Retry; if persistent, contact gateway support |
| -7 | invalid_symbol | All codes in code_list cannot be parsed (unsupported prefix / code does not exist) | Check that market prefix is within supported range; use search API to confirm code validity |
Response Example
json
{
"ret_code": 0,
"ret_msg": "success",
"data": {
"quote_list": [
{
"code": "HK.09988",
"name": "阿里巴巴-W",
"data_time": 1780371968000,
"data_date": "2026-06-02",
"last_price": 129.0,
"open_price": 124.1,
"high_price": 130.3,
"low_price": 123.4,
"prev_close_price": 122.8,
"volume": 68361418,
"turnover": 8734113777,
"turnover_rate": 0.356,
"amplitude": 5.619,
"sec_status": "NORMAL",
"suspension": false,
"dark_status": "N/A",
"listing_date": "2019-11-26",
"option_ex_data": {
"strike_price": 0, "contract_size": 0, "open_interest": 0,
"implied_volatility": 0, "premium": 0,
"delta": 0, "gamma": 0, "vega": 0, "theta": 0, "rho": 0,
"net_open_interest": 0, "contract_nominal_value": 0,
"owner_lot_multiplier": 0, "contract_multiplier": 0,
"option_type": "", "index_option_type": 0,
"expiry_date_distance": 0, "option_area_type": ""
},
"future_ex_data": { "last_settle_price": 0, "position": 0, "position_change": 0 },
"pre_market": { "price": 0, "high_price": 0, "low_price": 0, "volume": 0, "turnover": 0, "change_val": 0, "change_rate": 0, "amplitude": 0 },
"after_market": { "price": 0, "high_price": 0, "low_price": 0, "volume": 0, "turnover": 0, "change_val": 0, "change_rate": 0, "amplitude": 0 },
"overnight": { "price": 0, "high_price": 0, "low_price": 0, "volume": 0, "turnover": 0, "change_val": 0, "change_rate": 0, "amplitude": 0 }
},
{
"code": "BMD.FCPOmain",
"name": "原棕榈油期货主连 (2608)",
"data_time": 1780048799823,
"data_date": "2026-05-29",
"last_price": 4535,
"open_price": 4547,
"high_price": 4570,
"low_price": 4518,
"prev_close_price": 4537,
"volume": 24953,
"turnover": 0,
"turnover_rate": 0,
"amplitude": 1.146,
"sec_status": "NORMAL",
"suspension": false,
"dark_status": "N/A",
"listing_date": "",
"option_ex_data": { "strike_price": 0, "contract_size": 0, "option_type": "", "option_area_type": "" },
"future_ex_data": { "last_settle_price": 4537, "position": 95578, "position_change": 22908 },
"pre_market": { "price": 0, "volume": 0 },
"after_market": { "price": 0, "volume": 0 },
"overnight": { "price": 0, "volume": 0 }
},
{
"code": "HK.TCH260629C390000",
"name": "腾讯 260629 390.00 购",
"data_time": 1780363800000,
"data_date": "2026-06-02",
"last_price": 48.22,
"prev_close_price": 48.22,
"sec_status": "NORMAL",
"suspension": false,
"dark_status": "N/A",
"option_ex_data": {
"strike_price": 390, "contract_size": 100, "open_interest": 243,
"implied_volatility": 0, "premium": -5.84,
"delta": 0, "gamma": 0, "vega": 0, "theta": 0, "rho": 0,
"net_open_interest": 81, "contract_nominal_value": 46540,
"owner_lot_multiplier": 1000, "contract_multiplier": 100,
"option_type": "CALL", "index_option_type": 1,
"expiry_date_distance": 27, "option_area_type": "AMERICAN"
},
"future_ex_data": { "last_settle_price": 0, "position": 0, "position_change": 0 }
}
]
}
}