Free ETF Data API
Sources, Limits & Python免费 ETF 数据 API
数据源、额度与 Python
Find a free ETF data API for prices, history, holdings, and fund profiles—then verify limits, licensing, and a working request before you build.
寻找可提供 ETF 行情、历史数据、持仓和基金资料的免费接口,
并在开发前核对额度、许可与实际请求结果。
TL;DR摘要
Decide whether you need quotes, historical OHLCV, adjusted prices, holdings, NAV, AUM, expense ratio, or distributions.
Check daily calls, burst limits, delayed data, history depth, attribution, redistribution, and commercial-use terms.
Use a liquid symbol, inspect timestamps and null values, then repeat the request near the stated rate limit.
QVeris can help agents discover and call available financial-data capabilities without hard-coding every provider into the workflow.
明确需要实时行情、历史 OHLCV、复权价格、持仓、净值、资产规模、费率还是分红数据。
核对每日调用量、瞬时频率、数据延迟、历史深度、署名要求、再分发与商用许可。
选择流动性较高的代码,检查时间戳和空值,再接近公开频率上限重复调用。
QVeris 可帮助 Agent 发现并调用可用的金融数据能力,避免把每个供应商写死在工作流中。
What a free ETF data API should provide免费 ETF 数据 API 应提供哪些数据
A useful ETF database API is more than a quote endpoint. Match the provider to the dataset your application actually consumes, and record the observation time for every response.
实用的 ETF 数据接口不只是一个报价端点。应按应用真正使用的数据集选择数据源,并为每次响应保留观测时间。
Model ETF data as linked datasets with different clocks. Quotes may update intraday, official NAV is usually tied to a valuation point, holdings can lag by days or longer, assets and shares change with creations and redemptions, and distributions have declaration, ex, record, and payment dates. A single generic timestamp cannot describe all of them.
ETF 数据应被建模为一组更新时间不同的关联数据集。行情可以盘中更新,官方净值通常对应特定估值时点,持仓可能滞后数日甚至更久,资产规模和份额会随申购赎回变化,分派还包含宣布日、除权日、登记日和支付日。一个笼统的 timestamp 无法描述全部口径。
Prices and historical ETF data行情与 ETF 历史数据
For charts and backtests, verify daily or intraday OHLCV, adjusted-close methodology, split and distribution handling, exchange timezone, and history depth. “Historical” may mean only a recent window on a free plan.
用于图表和回测时,应核对日线或分钟 OHLCV、复权方法、拆分与分红处理、交易所时区以及历史深度。免费方案中的“历史数据”可能只包含近期窗口。
ETF profiles, NAV, fees, and identifiersETF 基金资料、净值、费率与标识符
Fund-level research commonly needs ticker, name, exchange, currency, issuer, inception date, NAV, AUM, expense ratio, benchmark, category, and stable identifiers such as ISIN or FIGI.
基金研究通常需要代码、名称、交易所、币种、发行人、成立日期、净值、资产规模、费率、跟踪指数、类别,以及 ISIN 或 FIGI 等稳定标识。
ETF holdings and allocation dataETF 持仓与资产配置数据
A free ETF holdings API should expose constituent identifiers, names, weights, an as-of date, and ideally sector or asset-class allocations. A top-ten list is not the same as complete holdings.
ETF 持仓接口应提供成分标识、名称、权重和数据日期,最好还包含行业或资产类别配置。前十大持仓并不等于完整持仓。
Distributions, corporate actions, and total return分派、公司行动与总回报
Preserve distribution type, amount, currency, declaration, ex, record, and payment dates, plus split or share-class events. Adjusted price and total-return series must document reinvestment and tax assumptions.
应保存分派类型、金额、币种、宣布日、除权日、登记日和支付日,以及拆分或份额类别事件。复权价格与总回报序列还必须说明再投资和税务假设。
Fund, share class, and listing identity基金、份额类别与上市标识
Keep the legal fund, share class, exchange listing, ticker, trading currency, domicile, and stable identifiers separate. The same strategy may have multiple listings or hedged classes, while reused tickers can refer to different instruments over time.
应分别保存法律基金、份额类别、交易所上市、代码、交易币种、注册地和稳定标识。同一策略可能有多地上市或汇率对冲份额,而重复使用的代码在不同时期也可能代表不同工具。
Alpha Vantage documents an ETF Profile & Holdings endpoint with net assets, expense ratio, turnover, holdings, and asset and sector allocations. Treat documentation as the source of truth for current entitlement and limits.
Alpha Vantage 官方文档列出了 ETF Profile & Holdings 接口,包含资产规模、费率、换手率、持仓及资产与行业配置。当前权限和限额应以官方文档为准。
How to compare free ETF data API options如何比较免费 ETF 数据接口
Do not rank providers from marketing labels alone. Confirm each requirement with the live documentation and a response from the exact endpoint you plan to use.
不要只依据营销页面给数据源排名。应在实时文档中核对每项要求,并调用计划使用的具体端点验证响应。
| Check检查项 | What to verify需要核对 | Why it matters影响 |
|---|---|---|
| Coverage覆盖范围 | Countries, exchanges, active and delisted ETFs, symbol mapping.国家、交易所、在市与退市 ETF、代码映射。 | Prevents silent gaps and survivorship bias.避免静默缺失与生存者偏差。 |
| Fields字段 | Prices, history, holdings, NAV, AUM, fees, distributions.行情、历史、持仓、净值、规模、费率、分红。 | A quote API may not support fund research.报价接口未必能支持基金研究。 |
| Freshness时效 | Real-time, delayed, end-of-day, and holdings as-of dates.实时、延迟、日终,以及持仓数据日期。 | Different tasks tolerate different delays.不同任务能容忍的延迟不同。 |
| Free limits免费额度 | Requests per minute/day, history window, endpoint entitlements.每分钟/每日请求数、历史窗口、端点权限。 | A free key may only support prototyping.免费 Key 可能只适合原型验证。 |
| License许可 | Personal versus commercial use, display, caching, attribution, redistribution.个人或商用、展示、缓存、署名、再分发。 | API access does not automatically grant data redistribution.获得 API 权限不代表可以再分发数据。 |
| Identity标识体系 | Fund, share class, listing, ticker history, ISIN or FIGI mapping.基金、份额类别、上市、代码历史与 ISIN 或 FIGI 映射。 | Prevents duplicate funds and incorrect joins.避免重复基金与错误关联。 |
| Date semantics日期口径 | Quote time, NAV date, holdings date, AUM date, distribution dates.报价时间、净值日、持仓日、规模日与分派日期。 | Stops unlike observations from appearing synchronized.避免把不同步的数据误当作同一时点。 |
| Completeness完整性 | Full holdings versus top holdings, cash, derivatives, weight total.完整或前十大持仓、现金、衍生品与权重合计。 | Determines whether exposure and overlap can be calculated.决定能否计算敞口与重合度。 |
Test an ETF API free tier with Python用 Python 测试 ETF API 免费额度
1. Request a documented ETF endpoint1. 请求文档中的 ETF 端点
Use the provider’s current endpoint and your own API key. The example below follows the documented Alpha Vantage ETF profile pattern; replace the key and symbol before running it.
使用数据源当前文档中的端点和自己的 API Key。下例沿用 Alpha Vantage 文档中的 ETF profile 形式;运行前请替换 Key 和代码。
import os
import requests
params = {
"function": "ETF_PROFILE",
"symbol": "QQQ",
"apikey": os.environ["ETF_API_KEY"],
}
response = requests.get(
"https://www.alphavantage.co/query",
params=params,
timeout=20,
)
response.raise_for_status()
data = response.json()
print(data)2. Validate the response, not only HTTP 2002. 不要只验证 HTTP 200
Confirm the expected symbol, field names, as-of timestamps, numeric types, currency, missing values, and any rate-limit or entitlement message embedded in the JSON.
确认响应中的代码、字段名、数据日期、数字类型、币种、缺失值,以及 JSON 内可能出现的限流或权限信息。
3. Record free-tier boundaries3. 记录免费额度边界
Save the documentation date, endpoint, observed latency, calls allowed, and license URL. Re-check before production because free plans and entitlements can change.
记录文档日期、端点、实际延迟、允许调用量和许可链接。免费方案与权限可能变化,上线前应再次核对。
4. Reconcile linked ETF datasets4. 核对相互关联的 ETF 数据集
Join profile, quote, NAV, holdings, AUM, and distribution responses with stable identifiers rather than ticker alone. Reject impossible date orderings, flag stale portfolio data, and explain weight totals that do not approximate the documented coverage.
用稳定标识关联基金资料、行情、净值、持仓、规模和分派响应,不要只依赖代码。应拒绝不可能的日期顺序,标记陈旧组合数据,并解释权重合计为何偏离文档所述覆盖范围。
5. Test event days and symbol history5. 测试事件日与代码历史
Use samples around distributions, splits, ticker changes, new launches, liquidations, and market holidays. Confirm adjusted prices, return calculations, status fields, and the mapping from old to current listings.
选取分派、拆分、代码变更、新基金成立、清盘和市场休市附近样本,核对复权价格、回报计算、状态字段,以及旧上市记录到当前标识的映射。
6. Persist raw evidence and normalized output6. 同时保存原始证据与规范化输出
Store the raw response, provider, endpoint, retrieval time, effective dates, schema version, and normalization code. This makes later discrepancies traceable when holdings or historical series are revised.
保存原始响应、供应商、端点、抓取时间、有效日期、结构版本和规范化代码。持仓或历史序列之后发生修订时,才能追溯差异来源。
Use QVeris to connect ETF data capabilities使用 QVeris 连接 ETF 数据能力
QVeris is not the underlying ETF exchange feed and does not make a paid dataset free. It helps agents discover, inspect, and call available capabilities through a consistent workflow. Review matching ETF data capabilities, test candidates in the Live Demo, and consult the QVeris documentation before integrating.
QVeris 不是底层 ETF 交易所数据源,也不会把付费数据变成免费数据。它帮助 Agent 以一致流程发现、检查并调用可用能力。接入前可查看匹配的 ETF 数据能力、在 在线体验中测试候选能力,并阅读 QVeris 文档。
- Describe the required ETF fields and freshness before selecting a capability.
- Inspect provider metadata, identifiers, date semantics, parameters, entitlement messages, and output before the first production call.
- Ask for quote, NAV, holdings, distributions, or reference data as separate requirements with their own freshness tolerance.
- Keep licensing, attribution, caching, raw evidence, and downstream display rules in your application design.
- 选择能力前先明确 ETF 字段、市场范围与时效要求。
- 首次生产调用前检查供应商元数据、标识体系、日期口径、参数、权限信息和输出结构。
- 把行情、净值、持仓、分派和基础资料拆成独立要求,并分别设置时效容忍度。
- 在应用设计中保留许可、署名、缓存、原始证据与下游展示规则。
FAQ
Yes, some market-data providers offer free keys or limited free tiers. “Free” may restrict endpoints, history, freshness, or request volume, so verify the current documentation.
Alpha Vantage documents ETF profile and holdings data, while other providers offer different coverage and entitlements. Compare complete holdings, top holdings, update dates, and licenses separately.
Many equity time-series APIs accept ETF symbols, but history depth, adjusted data, intraday access, and free-tier availability vary by endpoint.
Often yes. A key identifies the account and enforces usage limits. Keep it in an environment variable and never expose it in browser code or a public repository.
Check calls per minute and day, supported endpoints, history window, delayed versus real-time data, caching, attribution, redistribution, and commercial-use rights.
Only if the provider’s current license permits your exact use. Display rights, internal analysis, caching, and redistribution can have different terms.
Prices trade throughout the session, while holdings may be published on a daily, periodic, or provider-specific schedule. Keep separate effective times and never imply that an old portfolio snapshot is intraday.
Separate the legal fund, share class, and exchange listing. Preserve trading currency, domicile, ticker history, and stable IDs so quotes join to the correct instrument without duplicating the underlying strategy.
It needs historical universes, delisted funds, point-in-time profiles and holdings, corporate actions, distributions, documented adjustments, and data availability dates—not only today's profile plus old prices.
部分市场数据服务商提供免费 Key 或有限免费额度,但端点、历史深度、时效和请求量通常有限,应以当前官方文档为准。
申请 API Key,按官方文档请求 ETF 代码对应的时间序列端点,再验证时区、复权方式、字段类型、缺失值和限流信息。
通常需要。Key 用于识别账户和执行额度限制,应保存在环境变量中,不要写入浏览器代码或公开仓库。
只有当前许可明确允许你的具体用途时才可以。展示、内部分析、缓存和再分发可能适用不同条款。
检查数据是否仅含前十大持仓,是否提供完整成分、权重、稳定标识符、数据日期与更新频率。
核对分钟与每日调用量、端点权限、历史窗口、数据延迟、缓存、署名、再分发和商用权利。
行情在交易时段持续变化,持仓则可能按日、定期或供应商节奏发布。应分别保存有效时间,不能把旧组合快照描述成盘中数据。
应区分法律基金、份额类别和交易所上市,并保留交易币种、注册地、代码历史与稳定 ID,使行情准确关联到对应工具,又不会重复计算底层策略。
它需要历史证券池、已清盘基金、时点基金资料与持仓、公司行动、分派、明确复权规则和数据可用日期,而不只是今天的资料加过去价格。
