Option Expiration Date
GET/api/v1.0/quote/{symbol}/option-expirationGet the option expiry date list for a given underlying. Returns: strike date (yyyy-MM-dd), days to expiry (negative = already expired), expiration cycle (MONTH / WEEK / END_OF_MONTH / QUARTERLY / WEEKMON-FRI / N/A). Supported markets: HK / US / JP; other markets return ret_code=-8 unsupported. Supports HK/US/JP equities, plus HK indices (HSI / HSCEI / HSTECH, etc.) and US indices (VIX / XSP / DJX / OEX / RUT and various sector indices); index_option_type is required for index underlyings, omitted for ordinary equities. Currently unavailable indices: US..SPX, US..NDX (no data available; removed from index_option_type enum). For option chain contracts use quote.option_chain; for IV / HV analysis use quote.option_volatility; for exercise probability use quote.option_exercise_probability.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
symbol | string | path | yes | Option underlying symbol (path param). Supports HK/US equities / HK indices (HSI, HSCEI, HSTECH) / US indices SPX/VIX/NDX etc., e.g. HK.00700 |
index_option_type | int | query | no | Index option type (only for index underlyings; omit for equities). HK: 1=HSI/2=HSCEI/3=Mini-HSI/4=Mini-HSCEI/5=HSTECH; US: 1000=fallback/1001=VIX/1003=XSP/1005=EFS/1006=MXS/1007=DJX/1008=OEX/1009=SIXB/1010=SIXI/1011=SIXM/1012=SIXU/1013=SIXV/1014=XEO/1015=BKX/1016=XAU/1017=OSX/1018=SOX/1019=UTY/1020=RUT/1021=SIXRE/1022=XND/1023=CBTX/1024=MBTX; JP: 2001=N225/2002=N225M/2003=TOPIX. SPX(1002)/NDX(1004) currently have no data available and are removed |
filter_standard | string | query | no | Filter by standard / non-standard options; ALL=all (default), STANDARD=standard only, NON_STANDARD=non-standard only (FLEX / adjusted contracts) |
filter_expiration_cycles | string | query | no | Filter by expiration cycle, comma-separated using values from response expiration_cycle enum (e.g. MONTH,QUARTERLY); empty = no filter |
Example
curl 'https://webapi.moomoo.com/api/v1.0/quote/US.AAPL/option-expiration' | jqResponse
| Name | Type | Description |
|---|---|---|
data.expiration_list | object[] | |
data.expiration_list[].strike_time | string | Strike date, format yyyy-MM-dd, e.g. 2026-05-28 |
data.expiration_list[].option_expiry_date_distance | int | Days to expiry (negative = already expired), e.g. 5 |
data.expiration_list[].expiration_cycle | int | Expiration cycle. Values: MONTH / WEEK / END_OF_MONTH / QUARTERLY / WEEKMON / WEEKTUE / WEEKWED / WEEKTHU / WEEKFRI / N/A |
Errors
| ret_code | error.code | When |
|---|---|---|
| 0 | — | Success |
| -3 | invalid_parameter | A parameter is missing or not in the allowed set |
| -7 | invalid_symbol | Symbol is not in the security master |
| -8 | unsupported | Market or instrument is outside this API |
| -9 | permission_denied | Authenticated, but without quote permission |
| -10 | no_data | Nothing is returned |
| -11 | rate_limited | Per-user rate limit |
Response example
{
"ret_code": 0,
"ret_msg": "success",
"data": {
"expiration_list": [
{
"strike_time": "example",
"option_expiry_date_distance": 0,
"expiration_cycle": 0
}
]
}
}