Option Max Pain
GET/api/v1.0/quote/{code}/option-max-painGet Option Max Pain strike price and per-strike Call/Put Pain (Option Market Value) bar chart data across expiry dates. Returns max pain and pain values by strike price for each expiry date. Supported markets: HK / US / JP; expire_time accepts comma-separated yyyy-MM-dd dates, or omit for all available expiries.
Request
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
code | string | path | yes | Option underlying code (path param), e.g. US.AAPL / US.TSLA / HK.00700 |
expire_time | string | query | no | Expiry date filter in yyyy-MM-dd (comma-separated); omit for all available expiries |
index_option_type | int | query | no | Index option type (only for index underlyings; omit for equities) |
filter_standard | string | query | no | Filter by standard / non-standard options; default ALL |
only_max_pain | bool | query | no | Whether to return only the max_pain_strike per chain without per-strike bar items; default false |
Example
bash
curl -X GET 'https://webapi.moomoo.com/api/v1.0/quote/US.AAPL/option-max-pain?expire_time=1&index_option_type=1&filter_standard=1' \
-H 'Authorization: Bearer <AccessToken>' | jqResponse
| Field | Type | Description |
|---|---|---|
data.update_time | integer | Server calculation update timestamp (Unix milliseconds) |
data.chains | object | Per-expiry Max Pain data list |
data.chains[].strike_date | integer | Expiry date YYYY-MM-DD |
data.chains[].left_day | integer | Days to expiry |
data.chains[].max_pain_strike | string | Max Pain strike price for this expiry chain (divided by 1e9) |
data.chains[].items | object | Per-strike Call/Put Pain bar items sorted by strike_price ascending |
data.chains[].items[].strike_price | string | Strike price (divided by 1e9) |
data.chains[].items[].call_pain | string | Call Pain value at this strike (divided by 1e3) |
data.chains[].items[].put_pain | string | Put Pain value at this strike (divided by 1e3) |
data.chains[].items[].total_pain | string | Total Pain value at this strike (divided by 1e3) |
Errors
| ret_code | error.code | Description |
|---|---|---|
| 0 | — | Success |
| -3 | invalid_parameter | Missing or invalid parameter |
| -7 | invalid_symbol | Unknown symbol |
| -8 | unsupported | Market or product is not supported |
| -9 | permission_denied | Missing permission |
| -10 | no_data | No data |
| -11 | rate_limited | Too many requests |
Sample
json
{
"ret_code": 0,
"ret_msg": "success",
"data": {
"update_time": 0,
"chains": "example"
}
}