ETF & Fund HoldingsETF与基金持仓明细

该接口返回 ETF 和公募基金持有资产的详细明细:每只成分证券的名称、代码、ISIN、市值与权重占比,并实时更新,用于看清基金的资产构成与投资策略。

GEThttps://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 个参数
参数类型要求示例说明
symbolstring必填SPYETF 或公募基金交易代码,例如 SPY(标普 500 ETF)、QQQ(纳指 100 ETF)、VOO、VWO。

调用代码示例

Python 关键代码

ETF与基金持仓明细路径为 /stable/etf/holdings(必填 symbol),响应 JSON 展开 asset(资产名称)、name(名称)、isin(国际证券识别码) 共 9 列。

Python(核心参数与字段清洗逻辑)
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:空列表防守与 asset(资产名称)提取

调用 /stable/etf/holdings 拉取ETF与基金持仓明细(必填 symbol)时,若条件未命中会返回 [];读取 asset(AAPL)与 name 前须先判断 not df.empty。

落库主键与口径对接 /stable/etf/holdings:以 (symbol, isin, name) 防重并提取 sharesNumber(持股数量)

/stable/etf/holdings 的首条样本含 sharesNumber=181418073;日常增量任务按 (symbol, isin, name) 合并即可保持本地库与上游一致。

返回数据

9 个字段

本接口示例响应共包含 9 个字段(数值型 3 个,文本/日期/布尔型 6 个)。下表列出全部字段名、类型、首条记录真实样本值与中文释义,实际返回会因接口与数据状态有所不同。

字段类型示例值说明
symbolstring"SPY"证券代码
assetstring"AAPL"资产名称
namestring"APPLE INC"名称
isinstring"US0378331005"国际证券识别码
securityCusipstring"037833100"证券 CUSIP 代码
sharesNumbernumber181418073持股数量
weightPercentagenumber7.79997012权重(%)
marketValuenumber61679458958持仓市值
updatedAtstring"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/infoETF 和公募基金的财务与结构信息,股票代码、基金名称、费率、管理规模等关键指标
ETF 基金国家配置ETF & Fund Country Allocation/stable/etf/country-weightings指定 ETF 或公募基金在全球各国家与地区的资产配置权重分布
ETF持仓分布查询ETF Asset Exposure/stable/etf/asset-exposure被动型基金对单只底层股票的反向持仓敞口穿透查询

EtfAndMutualFunds(ETF 与基金)全部接口目录 →

需要稳定访问 ETF与基金持仓明细 数据?注册即可获取专属 API Key,免费体验全部接口。
免费试用 1 个月