Warrant Screen
POST/api/v1.0/quote/warrant-screenWarrant screening -- filter within the warrant market (CALL warrants / PUT warrants / BULL CBBCs / BEAR CBBCs / INLINE warrants) by combining dimensions such as issuer, underlying, price, strike price, maturity date, street ratio, implied volatility, leverage, delta, warrant status, etc. Supports multi-level sorting and pagination.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
market_type | int | body | no | Default 1 (HK). Allowed values: 1=HK (Hong Kong), 4=SG (Singapore), 15=MY (Malaysia). |
is_delay | bool | body | no | Whether to use delayed data. Default false. |
only_count | bool | body | no | Return count only without detail list. Default false. |
stock_owner | string | body | no | Underlying code (convenience parameter, auto-converted to a single screen_groups condition, e.g. HK.00700). Use screen_groups for complex filtering. |
screen_groups | object[] | body | no | Filter condition list. Each element structure: {field_id, interval{lower{value,is_included}, upper{value,is_included}}, choices[{content_type, value}]}. Discrete selection uses choices (multiple elements = OR); range filtering uses interval. See the wrnt_field enum table below for field_id values. |
sorts | object[] | body | no | Sort condition list. Each element: {sort_field_id, sort_flag}. sort_flag=true for descending, false for ascending. |
next_key | string | body | no | Pagination cursor. Leave empty for first page; pass back previous page's pagination.next_key. |
limit | int | body | no | Page size. Default 200, max 1000. |
Enum wrnt_field (filter / sort field_id)
| field_id | Meaning | Type / Precision |
|---|---|---|
| 4 | ISSUER_ID Issuer ID | choice |
| 5 | STOCK_OWNER Underlying ID | choice |
| 6 | WARRANT_TYPE Warrant type | choice (1=CALL, 2=PUT, 3=BULL, 4=BEAR, 5=INLINE) |
| 7 | CONVERSION_RATIO Conversion ratio | interval, x1e3 |
| 8 | CURRENT_PRICE Current price | interval, x1e3 |
| 9 | STREET_RATIO Street ratio | interval, x1e3 |
| 10 | VOLUME Volume | interval |
| 11 | MATURITY_DATE Maturity date | interval (second-level timestamp) |
| 12 | STRIKE_PRICE Strike price | interval, x1e3 |
| 13 | PREMIUM Premium | interval, x1e5 |
| 14 | RECOVERY_PRICE Call price | interval, x1e3 |
| 15 | IMPLIED_VOLATILITY Implied volatility | interval, x1e2 |
| 16 | LEVERAGE_RATIO Leverage | interval, x1e3 |
| 17 | PRICE_RECOVERY_RATIO Underlying distance to call price % | interval, x1e5 |
| 18 | DELTA Delta | interval, x1e3 |
| 19 | STATUS Status | choice (0=NORMAL, 2=STOP_TRADE, 3=PRE_IPO) |
| 20 | IPO_TIME Listing time | interval (second-level timestamp) |
| 21 | BUY_VOL Bid volume | interval |
| 22 | SELL_VOL Ask volume | interval |
| 23 | EFFECTIVE_LEVERAGE Effective leverage | interval, x1e3 |
| 24 | LAST_CLOSE_PRICE Previous close | interval, x1e3 |
| 25 | TURNOVER Turnover | interval |
| 26 | SELL_PRICE Ask price | interval, x1e3 |
| 27 | BUY_PRICE Bid price | interval, x1e3 |
| 28 | HIGH_PRICE High price | interval, x1e3 |
| 29 | LOW_PRICE Low price | interval, x1e3 |
| 30 | RATIO_ITM_OTM In/out of the money % | interval, x1e5 |
| 31 | BREAK_EVEN_POINT Break-even point | interval, x1e5 |
| 32 | AMPLITUDE Amplitude % | interval, x1e5 |
| 33 | SCORE_FAXING SG score | interval, x1e5 |
| 34 | LAST_TRADE_DATE Last trading date | interval (second-level timestamp) |
| 35 | STREET_VOLUME Street volume | interval |
| 36 | LOT_SIZE Shares per lot | interval |
| 37 | ISSUE_SIZE Issue size | interval |
| 38 | IPO_PRICE Issue price | interval, x1e3 |
| 39 | LOWER_STRIKE_PRICE Lower strike price | interval, x1e3 (INLINE only) |
| 40 | UPPER_STRIKE_PRICE Upper strike price | interval, x1e3 (INLINE only) |
| 41 | IW_PRICE_STATUS In/out of range | choice (0=Within, 1=Outside upper, 2=Outside lower) |
| 42 | SENSITIVITY Sensitivity | interval, x1e3 |
| 43 | CONVERSION_PRICE Conversion price | interval |
| 44 | CHANGE_RATE Change rate % | interval, x1e3 |
| 45 | CHANGE_VALUE Change value | interval |
| 51 | SCORE Score | interval, x1e5 |
| 52 | FILTER_NO_TRADE Filter no-trade | choice (0=No filter, 1=Filter) |
| 53 | CURRENCY_CODE Currency | interval |
| 54 | STOCK_OWNER_PRICE Underlying price | interval, x1e3 |
Request Example
bash
curl -X POST "https://webapi.moomoo.com/api/v1.0/quote/warrant-screen" \
-H "Content-Type: application/json" \
-d '{"market_type":1,"limit":3,"screen_groups":[{"field_id":6,"choices":[{"content_type":1,"value":1}]},{"field_id":5,"choices":[{"content_type":1,"value":54047868453564}]},{"field_id":19,"choices":[{"content_type":1,"value":0}]}],"sorts":[{"sort_field_id":16,"sort_flag":true}]}' | jqResponse Fields
General fields:
| Field | Type | Description |
|---|---|---|
code | string | Warrant code, e.g. HK.18869. |
name | string | Warrant English name. |
sc_name | string | Warrant Simplified Chinese name. |
tc_name | string | Warrant Traditional Chinese name. |
stock_owner | string | Underlying code, e.g. HK.00700. |
type | string | Warrant type: CALL / PUT / BULL / BEAR / INLINE / N/A. |
issuer | string | Issuer two-letter code (BC, BI, BP, CS, CT, DB, DC, EA, GS, HS, JP, KC, MB, ML, NM, RB, RS, SC, SG, UB, HT, VT, MS, GJ, XZ, HU, KS, CI). |
status | string | Warrant status: NORMAL / STOP_TRADE / PENDING_LISTING / N/A. |
maturity_time | string | Maturity date (yyyy-MM-dd). |
maturity_timestamp | int | Maturity date, millisecond timestamp. |
list_time | string | Listing date (yyyy-MM-dd). |
list_timestamp | int | Listing time, millisecond timestamp. |
last_trade_time | string | Last trading date (yyyy-MM-dd). |
last_trade_timestamp | int | Last trading date, millisecond timestamp. |
lot_size | int | Shares per lot. |
issue_size | int | Issue size (shares). |
Price / Volume:
| Field | Type | Description |
|---|---|---|
cur_price | float | Warrant current price. |
last_close_price | float | Previous close price. |
high_price | float | High price. |
low_price | float | Low price. |
bid_price | float | Best bid price. |
ask_price | float | Best ask price. |
bid_vol | int | Best bid volume (shares). |
ask_vol | int | Best ask volume (shares). |
volume | int | Volume (shares). |
turnover | float | Turnover. |
price_change_val | float | Price change (cur_price - last_close_price). |
change_rate | float | Change rate, unit %. |
amplitude | float | Amplitude, unit %. |
Derivative indicators:
| Field | Type | Description |
|---|---|---|
strike_price | float | Strike price. |
conversion_ratio | float | Conversion ratio. |
conversion_price | float | Conversion price. |
break_even_point | float | Break-even point. |
premium | float | Premium, unit %. |
ipop | float | In/out of the money, unit % (positive=ITM / negative=OTM). |
leverage | float | Leverage ratio. |
effective_leverage | float | Effective leverage. |
delta | float | Delta. |
implied_volatility | float | Implied volatility, unit %. |
score | float | Warrant score. |
street_rate | float | Street ratio, unit %. |
street_vol | int | Street volume (shares). |
CBBC / Inline warrant specific:
| Field | Type | Description |
|---|---|---|
recovery_price | float | Call price (BULL/BEAR only). |
price_recovery_ratio | float | Underlying distance to call price % (BULL/BEAR only). |
upper_strike_price | float | Upper strike price (INLINE only). |
lower_strike_price | float | Lower strike price (INLINE only). |
inline_price_status | string | In/out of range: WITH_IN / OUTSIDE / N/A. |
Pagination:
| Field | Type | Description |
|---|---|---|
pagination.total | int | Total number of warrants matching the criteria. |
pagination.has_more | bool | Whether there is a next page. |
pagination.next_key | string | Next page cursor; "-1" when no more pages. |
Scope & Limits
- Supported markets: HK (Hong Kong) / SG (Singapore) / MY (Malaysia) (
market_typevalues 1 / 4 / 15). Other markets are not supported. - Supported categories: CALL (call warrants), PUT (put warrants), BULL (bull CBBCs), BEAR (bear CBBCs), INLINE (inline warrants).
- Single page
limitmax 1000;next_keyis an opaque cursor. - Valid but empty results (e.g. no warrants of that type in a market, overly strict filters) return
ret_code=0+data.warrants=[]+all_count=0.
Error Codes
| ret_code | error.code | Trigger Condition | Handling |
|---|---|---|---|
| -3 | invalid_parameter | market_type not in [1,4,15] / limit out of range (>1000) / invalid next_key / other invalid parameter types. | Correct request body and retry. |
| -7 | invalid_symbol | stock_owner code cannot be resolved in the securities cache. | Verify underlying code validity via basic API, then retry. |
| -2 / -4 / -6 | internal_error | Gateway internal error (route not ready / backend request construction failure / response conversion failure). | Retry; contact gateway support if errors persist. |
Response Example
json
{
"ret_code": 0,
"ret_msg": "success",
"data": {
"warrants": [
{
"code": "HK.25894",
"name": "腾讯摩通六七购B.C",
"stock_owner": "HK.00700",
"issuer": "JP",
"type": "CALL",
"status": "NORMAL",
"strike_price": 778.27,
"cur_price": 0.01,
"leverage": 453.2,
"premium": 71.948,
"street_rate": 5.9,
"maturity_time": "2026-07-29"
}
]
},
"pagination": { "has_more": true, "next_key": "3", "total": 335 }
}