Skip to content

Get User Security

GET /v1/quote/user-security

Get the watchlist (user security list) for a specified group. Returns each security's code, name, lot size, security type, and derivative information.

Request Parameters

ParameterTypePositionRequiredDescription
group_namestringqueryyesGroup name (URL-encoded), max 100 characters. Group names can be obtained from user-security-group.
X-Futu-Client-NnidstringheaderyesUser identity (Moomoo ID).

Request Example

bash
curl -G "$ip/v1/quote/user-security" \
  --data-urlencode 'group_name=美股期权' \
  -H 'X-Futu-Client-Nnid: 99034182' | jq

Response Fields

FieldTypeDescription
codestringSecurity code, e.g. US.AAPL.
namestringSecurity name.
lot_sizeintShares per lot (options=contract shares, futures=contract multiplier).
stock_typestringSecurity type: STOCK / ETF / WARRANT / IDX / DRVT / FUTURE / FOREX / CRYPTO / BOND etc.
stock_child_typeintSecurity child type numeric value.
stock_ownerstringUnderlying code; empty string for non-derivatives.
option_typestringOption direction: ALL (non-option) / CALL / PUT.
strike_timestringOption strike date (yyyy-MM-dd); empty string for non-options.
strike_pricedoubleOption strike price; 0 for non-options.
listing_datestringListing date (yyyy-MM-dd); empty string if unavailable.
stock_idintSecurity internal numeric ID.
main_contractboolWhether it is a futures main continuous contract; always false for non-futures.
last_trade_timestringOption/futures last trading date (yyyy-MM-dd); empty string if not applicable.

Supported Markets

  • Markets: No restriction. Watchlist can contain securities from HK / US / A-shares / JP / SG / AU / KR / MY / CA and any other market.
  • Categories: No restriction. Stocks / ETF / warrants / options / futures / indices / bonds / cryptocurrency etc. can all appear.
  • An empty group returns security_list as an empty array (valid, not an error).

Error Codes

ret_codeerror.codeTrigger ConditionHandling
0--Success (empty group returns empty array).Parse security_list normally.
-3invalid_parameterMissing group_name / exceeds 100 chars / group name does not exist.Validate input; use user-security-group to confirm group name.
-9permission_deniedMissing X-Futu-Client-Nnid auth header.Add user identity and retry.
-5internal_errorGateway orchestration / backend RPC error.Retry; contact support if persistent.

Response Example

json
{
  "ret_code": 0,
  "ret_msg": "success",
  "data": {
    "security_list": [
      {
        "code": "US.SPY260526C735000",
        "name": "SPY 260526 735.00C",
        "lot_size": 100,
        "stock_type": "DRVT",
        "stock_child_type": 8002,
        "stock_owner": "US.SPY",
        "option_type": "CALL",
        "strike_time": "2026-05-26",
        "strike_price": 735.0,
        "listing_date": "",
        "stock_id": 507601755,
        "main_contract": false,
        "last_trade_time": ""
      }
    ]
  }
}