Skip to content

Option Expiration Date ​

GET /api/v1.0/quote/{symbol}/option-expiration

Get 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 ​

NameTypeInRequiredDescription
symbolstringpathyesOption 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_typeintquerynoIndex 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_standardstringquerynoFilter by standard / non-standard options; ALL=all (default), STANDARD=standard only, NON_STANDARD=non-standard only (FLEX / adjusted contracts)
filter_expiration_cyclesstringquerynoFilter by expiration cycle, comma-separated using values from response expiration_cycle enum (e.g. MONTH,QUARTERLY); empty = no filter

Example ​

bash
curl 'https://webapi.moomoo.com/api/v1.0/quote/US.AAPL/option-expiration' | jq

Response ​

NameTypeDescription
data.expiration_listobject[]
data.expiration_list[].strike_timestringStrike date, format yyyy-MM-dd, e.g. 2026-05-28
data.expiration_list[].option_expiry_date_distanceintDays to expiry (negative = already expired), e.g. 5
data.expiration_list[].expiration_cycleintExpiration cycle. Values: MONTH / WEEK / END_OF_MONTH / QUARTERLY / WEEKMON / WEEKTUE / WEEKWED / WEEKTHU / WEEKFRI / N/A

Errors ​

ret_codeerror.codeWhen
0—Success
-3invalid_parameterA parameter is missing or not in the allowed set
-7invalid_symbolSymbol is not in the security master
-8unsupportedMarket or instrument is outside this API
-9permission_deniedAuthenticated, but without quote permission
-10no_dataNothing is returned
-11rate_limitedPer-user rate limit

Response example ​

json
{
  "ret_code": 0,
  "ret_msg": "success",
  "data": {
    "expiration_list": [
      {
        "strike_time": "example",
        "option_expiry_date_distance": 0,
        "expiration_cycle": 0
      }
    ]
  }
}