ETF & Fund HoldingsETF与基金持仓明细
该接口返回 ETF 和公募基金持有资产的详细明细:每只成分证券的名称、代码、ISIN、市值与权重占比,并实时更新,用于看清基金的资产构成与投资策略。
https://quote-fmp.com/stable/etf/holdings?symbol=SPY数据更新周期
N/A · 不适用固定周期
接口说明
- 持仓组合明细:查看 ETF 或公募基金持有的具体资产,包括资产名称、代码、ISIN、市值和权重百分比,帮助投资者理解基金对特定股票、板块或市场的敞口。
- 实时更新:接口提供实时更新的基金持仓信息,确保随时掌握最新的基金构成数据,借助
name(名称)与isin(国际证券识别码) 等数值,方便研究员在长周期序列上识别趋势拐点。 - 投资策略分析:利用持仓数据评估不同 ETF 和公募基金的投资策略,通过分析成分证券及其权重,对潜在风险与机会做出有依据的判断。
- 上下游关联接口:Fund & ETF Disclosures by Date(基金ETF按日披露) · ETF Sector Weighting(ETF 板块权重) · Institutional Ownership Filings(机构持股申报) · ETF Symbol Search(ETF代码检索)
请求参数
1 个参数| 参数 | 类型 | 要求 | 示例 | 说明 |
|---|---|---|---|---|
symbol | string | 必填 | SPY | ETF 或公募基金交易代码,例如 SPY(标普 500 ETF)、QQQ(纳指 100 ETF)、VOO、VWO。 |
调用代码示例
Python 关键代码ETF与基金持仓明细路径为 /stable/etf/holdings(必填 symbol),响应 JSON 展开 asset(资产名称)、name(名称)、isin(国际证券识别码) 共 9 列。
resp = requests.get(
"https://quote-fmp.com/stable/etf/holdings",
params={"symbol": "SPY", "apikey": FMP_KEY},
timeout=15,
)
resp.raise_for_status()
df = pd.DataFrame(resp.json())
# 按 updatedAt 升序重排并数值化 sharesNumber(持股数量)
df["sharesNumber"] = pd.to_numeric(df["sharesNumber"], errors="coerce")
df = df.sort_values("updatedAt").reset_index(drop=True)参数使用和避坑
2 组参数组合 · 2 条避坑以下列出本接口在高频投研与回测场景下的常用 Query 参数组合写法:
| 投研场景 | Query 参数组合示例 | 返回数据特征与用途 |
|---|---|---|
| 查询 SPY 的基金成分持仓 | symbol=SPY | 向 /stable/etf/holdings 传入基金代码 SPY。核对 asset 所标识的成分证券、weightPercentage 权重和 sharesNumber 持股数;不要把成分股代码当作被查询基金。 |
| 切换 QQQ 比较两只基金的基金成分持仓 | symbol=QQQ | 保持接口不变,将基金代码改为 QQQ,与 SPY 按业务字段对齐。先从基金目录确认代码及覆盖,返回空数组时不要改用成分股 NVDA 代替基金。 |
调用 /stable/etf/holdings 拉取ETF与基金持仓明细(必填 symbol)时,若条件未命中会返回 [];读取 asset(AAPL)与 name 前须先判断 not df.empty。
/stable/etf/holdings 的首条样本含 sharesNumber=181418073;日常增量任务按 (symbol, isin, name) 合并即可保持本地库与上游一致。
返回数据
9 个字段本接口示例响应共包含 9 个字段(数值型 3 个,文本/日期/布尔型 6 个)。下表列出全部字段名、类型、首条记录真实样本值与中文释义,实际返回会因接口与数据状态有所不同。
| 字段 | 类型 | 示例值 | 说明 |
|---|---|---|---|
symbol | string | "SPY" | 证券代码 |
asset | string | "AAPL" | 资产名称 |
name | string | "APPLE INC" | 名称 |
isin | string | "US0378331005" | 国际证券识别码 |
securityCusip | string | "037833100" | 证券 CUSIP 代码 |
sharesNumber | number | 181418073 | 持股数量 |
weightPercentage | number | 7.79997012 | 权重(%) |
marketValue | number | 61679458958 | 持仓市值 |
updatedAt | string | "2026-07-30 08:07:21" | 更新时间 |
查看响应数据示例(原始 JSON)
[
{
"symbol": "SPY",
"asset": "AAPL",
"name": "APPLE INC",
"isin": "US0378331005",
"securityCusip": "037833100",
"sharesNumber": 181418073,
"weightPercentage": 7.79997012,
"marketValue": 61679458958,
"updatedAt": "2026-07-30 08:07:21"
}
]常见问题解答(FAQ)
2 个问题ETF与基金持仓明细(/stable/etf/holdings)产出的 asset 等字段,与 ETF与基金资料 的返回内容有何侧重?
ETF与基金持仓明细(端点 /stable/etf/holdings,必填 symbol)返回 asset(资产名称)及 name(APPLE INC)共 9 列;若业务需要 ETF & Mutual Fund Information(ETF与基金资料),可改调 /stable/etf/info(必填 symbol)。
工程团队在封装 /stable/etf/holdings(ETF与基金持仓明细)客户端时,应采用怎样的拉取逻辑?
标准流程是向 /stable/etf/holdings 传入标准 symbol(港股带 .HK、A 股带 .SS);在拿到 ETF与基金持仓明细 的 asset 与 name 后,及时释放内存中的原始文本流。
同模块相关接口对比
Holdings本接口路径 /stable/etf/holdings,必填参数 symbol。 同一模块「Holdings」下共 4 个接口,下表列出其余 3 个, 按粒度与查询维度对比,避免选错接口。
| 接口 | 路径 | 核心差异与适用场景 |
|---|---|---|
| ETF与基金资料ETF & Mutual Fund Information | /stable/etf/info | ETF 和公募基金的财务与结构信息,股票代码、基金名称、费率、管理规模等关键指标 |
| ETF 基金国家配置ETF & Fund Country Allocation | /stable/etf/country-weightings | 指定 ETF 或公募基金在全球各国家与地区的资产配置权重分布 |
| ETF持仓分布查询ETF Asset Exposure | /stable/etf/asset-exposure | 被动型基金对单只底层股票的反向持仓敞口穿透查询 |