Top 10 ETF Holdings
GET/api/v1.0/quote/{symbol}/etf/top-holdingsGet top 10 constituent holdings and portfolio weights for an ETF. Returns: update_time, constituent code, holding_name, and holding_rate (percent).
Request
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
symbol | string | path | yes | ETF symbol (path param), e.g. US.SPY / US.QQQ / HK.02800 |
Example
bash
curl -X GET 'https://webapi.moomoo.com/api/v1.0/quote/US.AAPL/etf/top-holdings' \
-H 'Authorization: Bearer <AccessToken>' | jqResponse
| Field | Type | Description |
|---|---|---|
data.items | object[] | |
data.update_time | integer | Holdings disclosure update timestamp in milliseconds |
data.items[].code | string | Constituent stock symbol (empty when unmapped) |
data.items[].holding_name | string | Constituent stock name |
data.items[].holding_rate | number | Portfolio weight in percent |
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": "example",
"items": [
{
"code": "example",
"holding_name": "example",
"holding_rate": "example"
}
]
}
}