Skip to content

Get the HK IPO list ​

GET /api/v1.0/quote/ipo-list/hk

Get the HK IPO list. Data is fetched from the current user's primary broker (broker selection is not exposed); when no broker is available for the HK market for this user, an empty list may be returned. Use request_type to switch between subscribing / waiting-to-list / upcoming (default, includes both). Includes only recent IPOs; does not include historical IPOs. For US IPOs use quote.ipo_list_us; A-shares quote.ipo_list_cn; Singapore quote.ipo_list_sg; Malaysia quote.ipo_list_my; Japan quote.ipo_list_jp.

Parameters ​

NameTypeInRequiredDescription
request_typeintquerynoRequest type: 9=COMMON_APPLYING (currently subscribing) / 10=COMMON_WAITING_IPO (waiting to list) / 11=COMMON_TO_BE_List (default, subscribing + waiting)

Example ​

bash
curl 'https://webapi.moomoo.com/api/v1.0/quote/ipo-list/hk' | jq

Response ​

NameTypeDescription
data.codestringStock symbol (with market prefix), e.g. HK.12233
data.namestringEnglish name
data.sc_namestringSimplified Chinese name
data.tc_namestringTraditional Chinese name
data.list_timestringListing date string, format yyyy-MM-dd; "--" when missing
data.list_timestampintListing time, millisecond timestamp; 0 when missing
data.ipo_price_minnumberLower bound of the IPO offer price range (HKD); 0 when missing
data.ipo_price_maxnumberUpper bound of the IPO offer price range (HKD); 0 when missing
data.list_pricenumberOffer price (final pricing, HKD); 0 when missing
data.lot_sizestringShares per lot
data.entrance_pricenumberEntrance fee (HKD)
data.apply_start_timestampintSubscription start time, millisecond timestamp; 0 when missing
data.apply_end_timestringSubscription deadline date string, format yyyy-MM-dd
data.apply_end_timestampintSubscription deadline time, millisecond timestamp; 0 when missing
data.apply_countdown_secsintSubscription deadline countdown (seconds); 0 when missing
data.is_apply_startedintWhether subscription has started (start_apply_flag==1)
data.is_support_applyintWhether subscription is supported (eipo_flag != 0)
data.is_subscribe_statusintWhether subscription is currently open (started and the deadline has not passed)
data.apply_multiplestringSubscription multiple (string), e.g. 12.5
data.lucky_ratiostringOne-lot winning ratio (string), e.g. 30%
data.win_ratio_msgstringWinning probability description, e.g. "Apply xx.xx lots to guarantee one"
data.lucky_timestringWinning announcement date string, format yyyy-MM-dd; "--" when missing
data.lucky_timestampintWinning announcement time, millisecond timestamp; 0 when missing
data.margin_fee_rationumberMargin subscription fee ratio (percentage)
data.margin_fee_ratio_minnumberMinimum margin subscription fee ratio (percentage); 0 when missing
data.margin_fee_ratio_maxnumberMaximum margin subscription fee ratio (percentage); 0 when missing
data.margin_lever_rationumberMargin leverage ratio
data.real_margin_lever_rationumberReal available margin leverage ratio; 0 when missing
data.margin_ratenumberMargin rate (4-digit precision)
data.dark_trade_datestringDark trade date string; empty when missing
data.dark_trade_timestampintDark trade date timestamp (ms); 0 when missing
data.dark_trade_periodstringDark trade period text, e.g. 16:15~18:30; empty when missing
data.dark_trade_start_timestampintDark trade start time, ms timestamp; 0 when missing
data.dark_trade_end_timestampintDark trade end time, ms timestamp; 0 when missing
data.is_support_dark_tradeintWhether dark trade is supported
data.is_support_intl_placingintWhether the stock supports international placing
data.show_intl_placing_infointWhether to display international placing info to the current user (based on assets)
data.intl_placing_apply_start_timestampintInternational placing subscription start time, ms timestamp; 0 when missing
data.intl_placing_apply_end_timestampintInternational placing subscription deadline, ms timestamp; 0 when missing
data.intl_placing_apply_limitnumberInternational placing minimum subscription amount (HKD)
data.intl_placing_apply_limit_strstringInternational placing minimum subscription amount as a formatted string
data.placing_countdown_secsintInternational placing deadline countdown (seconds); 0 when missing
data.offer_typeintOffer type: UNSUPPORTED / PUBLIC_OFFER_ONLY / INTERNATIONAL_PLACING_ONLY / PUBLIC_AND_INTER_PLACING
data.security_typeintSecurity type: NORMAL / SPAC / HK_IBOND / HK_CLIMATE_BOND / HK_SILVER_BOND / HK_ETF / SG_ETF
data.etf_distributorsstringETF distributor (only set for ETF IPOs)
data.etf_ipo_price_displaystringETF offer price display text (only set for ETF IPOs)
data.apply_statusintPublic offering apply status: NOT_APPLIED / APPLY_PENDING / APPLY_PROCESSING / APPLY_WON / APPLY_LOST
data.placing_apply_statusintInternational placing apply status (same values as apply_status)
data.etf_apply_statusintETF apply status (same values as apply_status, only set for ETF IPOs)

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": {
    "code": "US.AAPL",
    "name": "example",
    "sc_name": "example",
    "tc_name": "example",
    "list_time": "example",
    "list_timestamp": 1710000000000000,
    "ipo_price_min": 1.2,
    "ipo_price_max": 1.2,
    "list_price": 1.2,
    "lot_size": "example",
    "entrance_price": 1.2,
    "apply_start_timestamp": 1710000000000000,
    "apply_end_time": "example",
    "apply_end_timestamp": 1710000000000000,
    "apply_countdown_secs": 0,
    "is_apply_started": 0,
    "is_support_apply": 0,
    "is_subscribe_status": 0,
    "apply_multiple": "example",
    "lucky_ratio": "example",
    "win_ratio_msg": "example",
    "lucky_time": "example",
    "lucky_timestamp": 1710000000000000,
    "margin_fee_ratio": 1.2,
    "margin_fee_ratio_min": 1.2,
    "margin_fee_ratio_max": 1.2,
    "margin_lever_ratio": 1.2,
    "real_margin_lever_ratio": 1.2,
    "margin_rate": 1.2,
    "dark_trade_date": "2026-10-16",
    "dark_trade_timestamp": 1710000000000000,
    "dark_trade_period": "example",
    "dark_trade_start_timestamp": 1710000000000000,
    "dark_trade_end_timestamp": 1710000000000000,
    "is_support_dark_trade": 0,
    "is_support_intl_placing": 0,
    "show_intl_placing_info": 0,
    "intl_placing_apply_start_timestamp": 1710000000000000,
    "intl_placing_apply_end_timestamp": 1710000000000000,
    "intl_placing_apply_limit": 1.2,
    "intl_placing_apply_limit_str": "example",
    "placing_countdown_secs": 0,
    "offer_type": 0,
    "security_type": 0,
    "etf_distributors": "example",
    "etf_ipo_price_display": "example",
    "apply_status": 0,
    "placing_apply_status": 0,
    "etf_apply_status": 0
  }
}