Free ETF Holdings API
Data, Fields & Integration免费 ETF 持仓 API
成分股、权重与接入方法
Use a free ETF holdings API to retrieve constituents and weights by ticker, then verify coverage, as-of dates, fields, history, and limits before integration.
通过免费 ETF 持仓 API 按代码获取成分股和持仓权重,
并在接入前核对覆盖范围、数据日期、字段、历史深度与限制。
Free ETF holdings API: what to expect免费 ETF 持仓 API 能提供什么
Resolve an ETF to the correct fund and share class, then retrieve the complete portfolio represented by a stated as-of date—not merely the first page or top positions.
A useful JSON response includes stable constituent IDs, name, asset type, weight, quantity, market value, currency, country, sector, and portfolio date, plus cash and derivatives.
Separate a durable free tier from a time-limited trial. Check quotas, endpoint access, attribution, caching, and commercial-use rights.
Keep portfolio as-of, source publication, provider processing, and retrieval times separately. Later corrections must create a revision rather than silently rewriting the original snapshot.
先把 ETF 准确解析到基金与份额类别,再获取特定持仓日期对应的完整组合,而不是只取第一页或前几大持仓。
实用 JSON 应包含稳定成分标识、名称、资产类型、权重、数量、市值、币种、国家、行业和组合日期,并保留现金与衍生品。
区分长期免费套餐与限时试用,并检查额度、接口权限、署名、缓存和商业使用许可。
组合日期、来源发布日期、供应商处理时间和抓取时间应分别保存;后续更正必须形成修订版本,不能无声覆盖原快照。
ETF holdings data API fields and freshnessETF 持仓数据接口的字段与时效
A useful ETF holdings API should expose the full constituent list, percentage weights, shares, market value, sector exposure, identifiers, pagination, and historical snapshots. “Latest” does not necessarily mean real time: the response should state the date represented by the portfolio.
实用的 ETF 持仓 API 应提供完整成分股、持仓权重、股数、市值、行业分布、标识符、分页信息和历史快照。“最新”不一定代表实时数据,因此响应必须明确标注该份持仓对应的日期。
Completeness also depends on the fund structure. Equity tickers may be only one part of the portfolio: bond identifiers, futures, swaps, options, collateral, receivables, payables, and cash can affect exposure and the weight total. Preserve the provider's asset-type labels and distinguish reported positions from look-through exposure inferred from another fund or derivative.
完整性还取决于基金结构。股票代码可能只是组合的一部分,债券标识、期货、掉期、期权、抵押品、应收应付和现金都会影响实际敞口与权重合计。应保留供应商的资产类型标签,并区分基金直接报告的头寸与通过其他基金或衍生品推导出的穿透敞口。
Full holdings versus top 10 holdings完整成分股与前十大持仓
Some free endpoints return only top holdings even when a fund owns hundreds or thousands of positions. Check total count, pagination, page limits, cash and derivative rows, and whether weights reconcile to the provider's documented basis.
部分免费接口只返回前十大持仓,即使基金实际包含数百或数千项资产。应核对持仓总数、分页方式、单页上限、现金与衍生品记录,以及权重的计算口径是否符合供应商说明。
Historical ETF holdings API snapshots历史 ETF 持仓 API 快照
For backtests, use point-in-time snapshots with both as-of and filing or processed dates. This reduces look-ahead bias and makes revisions visible. Historical access is often priced separately from current holdings.
进行回测时,应使用同时包含持仓日期、申报日期或处理日期的时点快照,以减少前视偏差并识别后续修订。历史持仓功能往往需要更高等级的套餐。
Weight reconciliation and overlap analysis权重核对与重合度分析
Before calculating concentration or overlap, align portfolio dates, normalize percentage versus decimal units, map securities by stable IDs, and define how cash, derivatives, short positions, and fund-of-fund rows are treated. Weight totals may differ from 100% for legitimate reasons, but the residual needs an explanation rather than automatic rescaling.
计算集中度或重合度前,应对齐组合日期,统一百分比与小数单位,用稳定 ID 映射证券,并明确现金、衍生品、空头头寸和基金中基金记录的处理方式。权重合计因合理原因可能不等于 100%,但残差需要解释,不能一律自动缩放。
Where to get ETF holdings data for free免费 ETF 持仓数据可以从哪里获取
There is no single best source for every ETF workflow. Issuer files are often the closest view of a fund's current portfolio, while an API can provide a consistent schema across many issuers. Regulatory data is valuable for independently traceable history, but it follows a disclosure schedule rather than a daily portfolio feed. Choose the source by the decision your product must support.
没有一种来源适合所有 ETF 场景。发行人文件通常最接近基金当前组合,聚合 API 则更便于跨发行人使用统一结构;监管数据适合建立可追溯的历史记录,但遵循披露周期,并非每日持仓源。应先明确产品需要支持什么决策,再选择数据来源。
| Source route数据来源 | Best fit适用场景 | Verify before use使用前核对 |
|---|---|---|
| Issuer holdings files发行人持仓文件 | Current holdings for a known ETF, daily monitoring, and issuer-specific research.查询指定 ETF 的当前持仓、每日监控与单一发行人研究。 | Whether the download is the full portfolio, its as-of date, file stability, terms, and how cash or derivatives are represented.是否为完整组合、持仓日期、文件地址稳定性、使用条款,以及现金和衍生品的表示方式。 |
| Alpha Vantage ETF ProfileAlpha Vantage ETF Profile | A convenient API response for ETF profile data and holdings when supported.以统一 API 响应获取受支持 ETF 的概况与持仓。 | Fund coverage, returned holding depth, update date, current free allowance, and whether your commercial use is permitted.基金覆盖范围、返回的持仓深度、更新日期、当前免费额度及商业使用权限。 |
| Financial Modeling Prep ETF holdingsFinancial Modeling Prep ETF 持仓 | Developers who want a normalized provider interface alongside other market and fundamental datasets.希望在同一供应商接口中结合行情、基本面与 ETF 持仓的开发者。 | Endpoint availability on the current plan, pagination, fields, history, rate limits, and redistribution rights.当前套餐是否开放接口、分页、字段、历史深度、限流与再分发权限。 |
| SEC Form N-PORT datasetsSEC Form N-PORT 数据集 | Auditable US registered-fund research and historical verification.可审计的美国注册基金研究与历史验证。 | Reporting period versus publication date, series and class mapping, amended filings, and the reporting lag.报告期与公开日期、系列和份额类别映射、修订申报以及披露滞后。 |
Do not confuse portfolio holdings, creation baskets, and index constituents不要混淆实际持仓、申赎篮子与指数成分
Portfolio holdings describe assets held by the fund for a stated date. A creation or redemption basket is the set of securities and cash an authorized participant may deliver or receive for a creation unit; it can differ from the complete portfolio. Index constituents describe the benchmark methodology and membership, not necessarily the fund's exact positions. Sampling, cash management, derivatives, fees, corporate actions, and rebalance timing can all create differences.
实际持仓表示基金在指定日期持有的资产;申购或赎回篮子表示授权参与商为一个创设单位交付或收取的证券与现金,它可能不是完整组合;指数成分反映基准指数的规则与成员,并不等于基金当日的精确头寸。抽样复制、现金管理、衍生品、费用、公司行动和调仓时点都会造成差异。
Practical rule: if the product says “what this ETF owns,” use a dated portfolio-holdings source. Use basket data for creation/redemption operations and benchmark constituents for index research. Labeling one dataset as another can produce convincing but incorrect exposure and overlap results.
实用判断:如果产品要回答“这只 ETF 持有什么”,应使用带明确日期的实际持仓。申赎业务使用篮子数据,指数研究使用基准成分。把三者混用,可能生成看似合理、实际错误的敞口和重合度结果。
Worked example: compare two ETFs without top-10 bias实例:避免前十大持仓偏差的 ETF 重合度计算
Suppose ETF A and ETF B share six names in their top 10. That does not establish high portfolio overlap: A may hold 500 securities while B holds 100, and the common names may have very different weights. Retrieve full portfolios for the same as-of date, map each security with a stable identifier, and calculate common weight as the sum of min(weight_A, weight_B) for every matched holding. Report excluded cash, unmatched derivatives, missing identifiers, and each portfolio's residual next to the result.
假设 ETF A 与 ETF B 的前十大持仓中有六只相同证券,这并不能证明整体重合度很高:A 可能持有 500 项资产,B 只有 100 项,而且共同证券的权重可能相差很大。应取得同一持仓日期的完整组合,用稳定标识匹配证券,并对每个共同持仓计算 min(weight_A, weight_B) 后求和。同时列出被排除的现金、无法匹配的衍生品、缺失标识和两边的权重残差。
Choose by use case按使用场景选择方案
Prefer the issuer file or a provider that clearly identifies the portfolio date. Show the date and coverage beside the holdings.
Require complete lists, stable IDs, consistent asset types, aligned dates, and an explicit overlap formula.
Store publication time and revisions in addition to the portfolio date. Regulatory history can validate what was knowable.
Return provenance, completeness, residuals, and warnings with the normalized rows so the Agent can qualify its answer.
优先使用发行人文件,或选择能明确给出持仓日期的供应商,并在持仓旁展示日期与覆盖范围。
必须取得完整列表、稳定标识和一致的资产类型,对齐日期,并公开重合度计算公式。
除持仓日期外,还要保存公开时间与修订记录;监管历史数据可用于验证当时可知的信息。
除标准化记录外,还应返回来源、完整性、残差和警告,使 Agent 能对答案附加必要条件。
How to evaluate a free ETF holdings API如何评估免费 ETF 成分股 API
| Check检查项 | Verify需要核对 | Why it matters重要原因 |
|---|---|---|
| Coverage覆盖范围 | Markets, active and delisted ETFs, ticker and identifier lookup.覆盖的市场、存续与退市 ETF,以及代码和标识符查询。 | Avoids silent gaps.避免出现未提示的数据缺口。 |
| Completeness完整性 | Full list, total count, pagination, cash, derivatives, weight basis.完整列表、总数、分页、现金、衍生品与权重口径。 | Top holdings alone cannot support overlap or exposure analysis.仅前十大持仓不足以分析重合度和暴露。 |
| Freshness数据时效 | As-of, filing, processed dates, update schedule, revisions.持仓日期、申报日期、处理日期、更新频率与修订规则。 | Prevents stale data from appearing current.避免把过期数据误当作当前持仓。 |
| Fields字段 | Ticker, CUSIP/ISIN, name, weight, shares, value, sector, country.代码、CUSIP/ISIN、名称、权重、股数、市值、行业、国家。 | Supports joining and normalization.支持关联与标准化。 |
| Free limits免费限制 | Quota, rate limit, history, license, attribution, caching.额度、限流、历史、许可、署名与缓存。 | A trial may not support production.试用未必适合生产环境。 |
| Asset types资产类型 | Equities, bonds, cash, derivatives, collateral, short positions.股票、债券、现金、衍生品、抵押品与空头头寸。 | Ticker-only rows can materially understate exposure.只返回股票代码会严重低估敞口。 |
| Revision model修订模型 | Publication time, processed time, correction ID, version history.发布时间、处理时间、更正标识与版本历史。 | Makes changed snapshots auditable.使历史快照变化可以审计。 |
| Weight quality权重质量 | Unit, sign, residual, duplicates, fund-of-fund treatment.单位、正负号、残差、重复项与基金中基金处理。 | Controls concentration and overlap calculations.决定集中度与重合度计算是否可靠。 |
Integrate an ETF holdings REST API with JSON接入返回 JSON 的 ETF 持仓 REST API
Step 1: test SPY and QQQ holdings by ticker步骤 1:按代码测试 SPY 与 QQQ 持仓
Create a free key if required, call the documented endpoint, and inspect HTTP status, authentication, rate-limit headers, total holdings count, pagination, and the resolved as-of date.
如果接口要求鉴权,先申请免费 API 密钥,再按文档调用接口,并检查 HTTP 状态码、鉴权结果、限流响应头、持仓总数、分页信息和实际持仓日期。
Step 2: normalize ETF constituent fields步骤 2:标准化 ETF 成分股字段
Map provider fields into a stable model such as fund_ticker, as_of_date, holding_ticker, name, weight, shares, market_value, and identifiers. Preserve the raw response for audit.
将供应商字段映射到稳定的内部数据模型,例如 fund_ticker、as_of_date、holding_ticker、name、weight、shares、market_value 和 identifiers,同时保留原始响应,便于审计和排查问题。
Step 3: validate completeness and change handling步骤 3:验证完整性与变更处理
Follow every page, compare returned count with metadata, test missing tickers and rate limits, and alert on schema changes. Store snapshots by as-of date rather than overwriting the previous portfolio.
遍历全部分页,核对返回条数与元数据,测试无效代码和限流场景,并在接口结构发生变化时触发告警。按持仓日期分别保存快照,不要覆盖上一期数据。
Step 4: reconcile weights and asset types步骤 4:核对权重与资产类型
Normalize units without discarding the raw value, check duplicates by stable ID, and calculate reported long, short, cash, derivative, and unexplained residual totals separately. Quarantine rows with ambiguous signs or identifiers rather than forcing them into equity exposure.
在保留原始值的前提下统一单位,用稳定 ID 检查重复项,并分别计算多头、空头、现金、衍生品和未解释残差。符号或标识不明确的记录应隔离复核,不要强行计入股票敞口。
Step 5: build revision-aware snapshots步骤 5:建立可识别修订的快照
Use fund ID, share class, portfolio date, source publication time, and provider revision as the snapshot key. If a corrected file arrives, preserve both versions and record what changed so a backtest can select only the version available at its simulated time.
用基金 ID、份额类别、组合日期、来源发布时间和供应商修订号共同确定快照。收到更正文件时应保留新旧版本并记录差异,使回测只能选择模拟时点当时已经可用的版本。
Use QVeris to find ETF holdings data capabilities用 QVeris 查找 ETF 持仓数据能力
QVeris helps developers and agents discover, inspect, and call available financial-data capabilities. Open the QVeris provider details to inspect ETF holdings providers, inspect inputs and outputs, and verify the current provider contract before integration.
QVeris 帮助开发者与 Agent 发现、检查并调用可用的金融数据能力。打开 QVeris 服务商详情,查看 ETF 持仓数据供应商、检查输入输出,并在接入前核对服务条款和接口约定。
- Search specifically for complete holdings, historical holdings, or constituents; price and profile APIs may not include them.
- Inspect fund identifiers, asset types, portfolio and publication dates, pagination, revision behavior, limits, and licensing before calling.
- Require a completeness report with returned rows, provider total, weight totals by asset type, residual, and missing identifiers.
- Keep provider-specific parsing and corrections behind a normalized, revision-aware application interface.
- 明确搜索完整持仓、历史持仓或成分股能力;价格与概况 API 不一定包含它们。
- 调用前检查基金标识、资产类型、组合与发布日期、分页、修订行为、限制和许可。
- 要求输出完整性报告,包括返回行数、供应商总数、各资产类型权重、残差与缺失标识。
- 将供应商特定解析与更正逻辑放在标准化、可识别修订的应用接口之后。
FAQ
Yes, some providers offer free tiers, trials, or free endpoints. Verify that holdings—not only prices or profiles—are included, and check quota, history, licensing, and commercial-use terms.
Call an ETF holdings API by ticker, then follow pagination until the returned count matches the endpoint metadata. Do not assume the first page or top holdings is complete.
Sometimes, but history depth is often limited or paid separately. Check snapshot dates, delisted-fund coverage, corrections, and point-in-time semantics.
Useful fields include fund ticker, as-of date, constituent ticker and name, weight, shares, market value, identifiers, sector, country, and source metadata.
It varies by fund and source. Some issuer files update daily, while regulatory disclosures may be less frequent. Trust the response's as-of date, not the request time.
No. QVeris can help discover and inspect capabilities, but provider availability, pricing, limits, and licensing remain provider-controlled and may change.
Cash, derivatives, short positions, accruals, rounding, leverage, and partial coverage can create a residual. Inspect asset types and the provider's weight basis before rescaling or treating the difference as an error.
Align portfolio dates, map securities by stable IDs, normalize weights, and define cash, derivatives, and look-through rules. Then calculate common weight or another disclosed overlap measure.
As-of identifies the portfolio represented; publication indicates when that snapshot became available. Backtests need both so they do not use a portfolio before it was knowable.
部分供应商提供免费套餐、试用或免费接口,但要确认免费范围确实包含持仓,而不只是价格或基金概况,并核对额度和许可。
按 ETF 代码调用持仓接口并遍历全部分页,直到返回数量与元数据一致。不要把第一页或前十大持仓当成完整列表。
有些接口包含历史数据,但可查询的时间范围通常有限,也可能需要单独付费。应检查快照日期、退市基金覆盖范围、修订记录和时点定义。
实用字段包括基金代码、数据日期、成分股代码与名称、权重、股数、市值、标识符、行业、国家和来源元数据。
更新频率取决于基金和来源。发行人文件可能每日更新,监管披露通常更慢,应以响应中的数据日期为准。
不能。QVeris 可帮助发现和检查能力,但可用性、价格、限制和许可仍由供应商控制,并可能变化。
现金、衍生品、空头、应计项目、四舍五入、杠杆或不完整覆盖都可能形成残差。重新缩放或判为错误前,应先检查资产类型和供应商权重口径。
先对齐组合日期,用稳定 ID 映射证券并统一权重,再明确现金、衍生品和穿透规则,然后计算共同权重或其他公开说明的重合指标。
持仓日期说明快照代表哪一天的组合,发布日期说明该快照何时对外可得。回测必须同时使用两者,避免提前使用尚不可知的持仓。
