Option Expiration Date
GET/v1/quote/{symbol}/option-expirationGet the list of option expiration dates for a given underlying symbol.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
symbol | string | path | yes | Option underlying code, e.g. HK.00700, US.AAPL, HK.800000 (HSI). |
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, default ALL. See Naming Dictionary. |
filter_expiration_cycles | string | query | no | Filter by expiration cycle, comma-separated (e.g. MONTH,QUARTERLY), omit or empty string = no filter. See Naming Dictionary. |
Request Example
bash
curl '$ip/v1/quote/HK.00700/option-expiration' | jqResponse Fields
Returns data.expiration_list[], each element is one expiration date record:
| Field | Type | Description |
|---|---|---|
strike_time | string | Strike date, format yyyy-MM-dd. |
option_expiry_date_distance | int | Days until expiration (negative = already expired). |
expiration_cycle | string | Expiration cycle. See Naming Dictionary. |
Supported Markets
- Supported markets: HK / US / JP; other markets return
ret_code=-8 unsupported. - Supported categories: HK/US/JP equities; HK HSI / HSCEI / HSTECH and mini indices; US VIX / XSP / DJX / OEX / RUT and other indices; JP N225 / N225M / TOPIX.
- Index underlyings must pass
index_option_type, otherwise returns empty; regular stocks should not pass this parameter.
Error Codes
| ret_code | error.code | Trigger Scenario | Suggested Handling |
|---|---|---|---|
| 0 | — | Success | — |
| -3 | invalid_parameter | symbol missing / invalid; index_option_type / filter_standard / filter_expiration_cycles value not in enum set | 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 currently no option expiration dates (including empty after filtering) | Treat as no option data for this underlying |
| -5 | internal_error | Gateway internal error / backend call failure / timeout | Retry later or contact platform |
Response Example
json
{
"ret_code": 0,
"ret_msg": "",
"data": {
"expiration_list": [
{ "strike_time": "2026-06-29", "option_expiry_date_distance": 25, "expiration_cycle": "MONTH" },
{ "strike_time": "2026-07-30", "option_expiry_date_distance": 56, "expiration_cycle": "MONTH" },
{ "strike_time": "2026-12-30", "option_expiry_date_distance": 209, "expiration_cycle": "QUARTERLY" }
]
}
}