Combo Option Spread
GET/api/v1.0/quote/{symbol}/option-strategy-spreadQuery the backend spread list and default spread for an underlying + strategy + expiry. Returns spread_list (already restored to real prices) and default_spread.
Use the spread with the spread parameter of Combo Option Strategy to list combos. 1/2/6/15/100 usually publish no spreads (spread_list empty); 4/7/8/9/11/13/14/16 return a list, and those strategies require spread when listing combos.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
symbol | string | path | yes | Option underlying code, US only. e.g. US.AAPL. |
strategy | int | query | yes | Combo strategy type. See Naming Dictionary. |
expire_time | string | query | yes | Near expiry date yyyy-MM-dd, e.g. 2026-08-21. |
far_expire_time | string | query | conditionally | Far expiry date yyyy-MM-dd. Required for CalendarSpread(15) / DiagonalSpread(16), and must be later than expire_time. |
index_option_type | int | query | no | US index option type; required only for US index underlyings. Use the US block (1000+) in the Naming Dictionary. |
filter_standard | string | query | no | Filter by standard/non-standard, default ALL. See Naming Dictionary. |
Request Example
bash
curl 'https://webapi.moomoo.com/api/v1.0/quote/US.AAPL/option-strategy-spread?strategy=4&expire_time=2026-08-21' | jq
curl 'https://webapi.moomoo.com/api/v1.0/quote/US.AAPL/option-strategy-spread?strategy=15&expire_time=2026-08-21&far_expire_time=2026-09-18' | jqResponse Fields
Returns a data object:
| Field | Type | Description |
|---|---|---|
spread_list | number[] | Spread list (already restored to real prices). Empty array when there is no spread. |
default_spread | number | Default spread (already restored to real prices). May be omitted when spread_list is empty. |
Supported Markets
- US only (including US index options); HK / JP return
ret_code=-8 unsupported. - Index underlyings must pass
index_option_type(US block); regular stocks should not pass this parameter. expire_timemust be a real expiry date of the underlying (use Option Expiration Date).strategyvalues and whetherfar_expire_timeis required: Naming Dictionary.
Error Codes
| ret_code | error.code | Trigger Scenario | Suggested Handling |
|---|---|---|---|
| 0 | — | Success (including empty spread_list) | — |
| -3 | invalid_parameter | symbol / strategy / expire_time missing or invalid; date is not yyyy-MM-dd; CalendarSpread / DiagonalSpread missing far_expire_time, or far expiry is not later than near expiry | 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 is not US | This market does not support combo options, no need to retry |
| -5 | internal_error | Gateway internal error / backend call failure / timeout | Retry later or contact platform |
Response Example
json
{
"ret_code": 0,
"ret_msg": "",
"data": {
"spread_list": [2.5, 5, 7.5, 10],
"default_spread": 5
}
}