Option Chain
GET/v1/quote/{symbol}/option-chainGet the option chain for a given underlying symbol within a specified expiration date range.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
symbol | string | path | yes | Option underlying code, e.g. HK.00700, US.AAPL, HK.800000 (HSI). |
start | string | query | no | Start expiration date yyyy-MM-dd (inclusive), omit for no lower bound. |
end | string | query | no | End expiration date yyyy-MM-dd (inclusive), omit for no upper bound. |
index_option_type | int | query | no | Index option type, required only for index underlyings, omit for regular stocks. See Naming Dictionary. |
filter_standard | string | query | no | Filter by standard/non-standard options, default ALL. See Naming Dictionary. |
Request Example
bash
curl '$ip/v1/quote/HK.00700/option-chain?start=2026-05-01&end=2026-05-31' | jqResponse Fields
Returns data.option_chain[], each element is one CALL or PUT contract:
| Field | Type | Description |
|---|---|---|
code | string | Option contract code, e.g. HK.TCH260528C230000. |
stock_id | uint64 | Option contract internal numeric ID. |
name | string | Contract name, e.g. 腾讯 260528 230.00 购. |
lot_size | int | Shares per lot, e.g. 100. |
stock_type | string | Security type, fixed DRVT for option contracts. |
option_type | string | Option direction: CALL / PUT. |
stock_owner | string | Underlying stock code, e.g. HK.00700. |
strike_time | string | Strike date yyyy-MM-dd. |
strike_price | number | Strike price (restored to actual value). |
index_option_type | string | Index option type: NORMAL / SMALL / N/A. |
expiration_cycle | string | Expiration cycle. See Naming Dictionary. |
option_standard_type | string | Option standard type: STANDARD / NON_STANDARD / N/A. |
Supported Markets
- Supported markets: HK / US / JP; other markets return
ret_code=-8 unsupported. - Index underlyings must pass
index_option_type; regular stocks should not pass this parameter. - Backend returns a maximum of 20 expiration dates per query (nearest dates first); for more expiration dates, split requests by
start/endranges.
Error Codes
| ret_code | error.code | Trigger Scenario | Suggested Handling |
|---|---|---|---|
| 0 | — | Success | — |
| -3 | invalid_parameter | symbol / start / end / index_option_type / filter_standard value is invalid | Correct request parameters and retry |
| -7 | invalid_symbol | Path symbol not found in security database | Verify code validity via search API |
| -8 | unsupported | symbol market not in HK / US / JP | This market does not support option chain, no need to retry |
| -10 | no_data | Valid underlying but no option contracts in current date range (including empty after filtering) | Treat as no option data for this underlying in current range |
| -5 | internal_error | Gateway internal error / backend call failure / timeout | Retry later or contact platform |
Response Example
json
{
"ret_code": 0,
"ret_msg": "",
"data": {
"option_chain": [
{
"code": "HK.TCH260528C230000",
"stock_id": 81210697,
"name": "腾讯 260528 230.00 购",
"lot_size": 100,
"stock_type": "DRVT",
"option_type": "CALL",
"stock_owner": "HK.00700",
"strike_time": "2026-05-28",
"strike_price": 230,
"index_option_type": "N/A",
"expiration_cycle": "MONTH",
"option_standard_type": "STANDARD"
}
]
}
}