Free ETF NAV API
Sources, Fields & Python免费 ETF 净值 API
数据源、字段与 Python 接入
Find a free ETF NAV API, verify whether it returns true fund NAV rather than market price, and test current or historical data before integration.
查找免费 ETF 净值 API,先确认返回的是基金净值而非市场价格,
再测试当前或历史数据并接入应用。
Free ETF NAV API: what developers actually need免费 ETF 净值 API:开发者真正需要什么
Retrieve official current or historical NAV for the correct fund and share class, with valuation time, publication time, currency, and source.
Distinguish official NAV from exchange price, bid or ask, intraday indicative value, and a vendor estimate; each answers a different question.
Verify authentication, request limits, redistribution rights, coverage, delay, and whether NAV history is included.
Preserve raw NAV, per-share currency, valuation policy, revision status, and any comparable market-price timestamp before calculating a premium or discount.
为正确基金与份额类别获取官方当前或历史净值,并保留估值时间、发布时间、币种和来源。
区分官方 NAV、交易所价格、买卖报价、盘中参考净值和供应商估算值,它们回答的问题并不相同。
核对鉴权、调用限制、再分发许可、覆盖范围、延迟和历史净值是否可用。
计算溢折价前,应保留原始净值、每份币种、估值规则、修订状态,以及可比的市场价格时间戳。
ETF NAV data API fields to verifyETF 净值数据接口需要核对的字段
NAV is the per-share value of the fund's net assets at a stated valuation time. An ETF's market price can trade above or below that value, so a generic quote endpoint is not automatically an ETF net asset value API. The U.S. SEC Investor.gov definition of NAV is a useful baseline.
NAV 是基金在指定估值时点的每份净资产价值。ETF 的市场成交价可能高于或低于净值,因此普通行情接口不等于 ETF 净值接口。可参考 美国 SEC Investor.gov 对 NAV 的定义。
The valuation clock matters as much as the number. Official NAV may use closing prices, fair-value adjustments, accrued income and expenses, liabilities, and an official shares-outstanding figure. For international or multi-asset funds, some underlying markets may already be closed when the ETF still trades, so a same-screen comparison can combine observations from different economic times.
估值时钟与数值本身同样重要。官方净值可能使用收盘价格、公允价值调整、应计收入与费用、负债和官方流通份额。国际或多资产基金仍在交易时,部分底层市场可能已经休市,因此同一屏幕上的市场价格与净值可能对应不同经济时点。
Current ETF NAV API fields
Look for NAV value, valuation date or timestamp, currency, identifier, source, and adjustment status. A latest value without its as-of date is difficult to validate.
Historical ETF NAV API fields
Check the available date range, frequency, split or distribution adjustments, missing observations, pagination, and timezone conventions.
NAV, iNAV, and market price
Daily NAV, intraday indicative value (often called iNAV or IIV), and exchange price are related but different. Match the field to the task before integrating it.
Premium and discount calculation
Calculate (market_price / NAV - 1) × 100 only when price and NAV refer to a defensible comparison time and share class. Preserve whether price means last trade, midpoint, closing price, or official market close.
Currency, shares, and corporate actions
Keep NAV currency, trading currency, FX rate and timestamp, per-share denominator, split factor, distribution treatment, and share-class events. A currency conversion or split mismatch can create a false premium or a discontinuity in history.
Publication, revisions, and stale states
Store valuation time, first publication time, provider processing time, retrieval time, and revision ID separately. Missing, estimated, preliminary, corrected, and stale NAV values should be explicit states rather than silently carried forward.
当前 ETF 净值字段
至少检查净值、估值日期或时间戳、币种、证券标识、来源和复权状态。只有数值而没有数据截止日期,很难验证数据。
ETF 历史净值接口字段
检查可用日期范围、频率、拆分或分红调整、缺失观测、分页方式和时区约定。
NAV、iNAV 与市场价格
每日 NAV、盘中参考净值(常称 iNAV 或 IIV)和交易所价格相关但不同,接入前要让字段与任务一致。
溢折价计算
只有当市场价格与净值对应可解释的同一比较时点和份额类别时,才可计算 (市场价格 / NAV - 1) × 100。同时应说明价格取最新成交、中间价、收盘价还是官方收盘。
币种、份额与公司行动
保存净值币种、交易币种、汇率与时间戳、每份分母、拆分因子、分派处理和份额类别事件。币种换算或拆分口径不一致,会制造虚假溢价或历史断点。
发布、修订与陈旧状态
分别保存估值时间、首次发布时间、供应商处理时间、抓取时间和修订 ID。缺失、估算、初步、更正和陈旧净值都应成为明确状态,不能无声沿用旧值。
Free ETF NAV API sources to evaluate可评估的免费 ETF 净值 API 数据源
Evaluate each source with an ordinary domestic equity ETF, an international ETF whose underlying market closes earlier, a bond fund, a distribution date, a split or share-class event, and a market holiday. Compare value, valuation and publication times, currency, status, revision behavior, and identifier resolution rather than asking only whether a field named nav exists.
可用普通本土股票 ETF、底层市场更早收市的国际 ETF、债券基金、分派日、拆分或份额事件和市场休市日组成测试集。比较数值、估值与发布时间、币种、状态、修订方式和标识解析,而不是只看响应里是否存在名为 nav 的字段。
| Source type来源类型 | Likely data可能提供的数据 | Verify before use使用前核对 | Best fit适合场景 |
|---|---|---|---|
| ETF issuerETF 发行方 | Official daily NAV and fund documents.官方每日净值与基金文件。 | Whether access is a documented API and permits automation.是否为有文档的 API,以及是否允许自动化访问。 | Validating a known issuer's funds.验证已知发行方的基金。 |
| Market-data provider市场数据服务商 | Multi-issuer current and historical NAV, identifiers, and metadata.多发行方当前与历史 NAV、标识和元数据。 | Free-tier endpoint access, delay, coverage, limits, and license.免费层端点、延迟、覆盖、限额与许可。 | Apps that need normalized coverage.需要标准化覆盖的应用。 |
| Broker API券商 API | Market data and sometimes indicative ETF NAV fields.行情,以及部分 ETF 参考净值字段。 | Account requirement, entitlements, real-time status, and field meaning.账户要求、行情权限、实时性与字段定义。 | Trading workflows with an existing account.已有账户的交易流程。 |
| Regulatory or public dataset监管或公共数据集 | Fund identifiers, filings, reference records, or delayed disclosures.基金标识、申报文件、参考记录或延迟披露。 | Whether NAV itself is supplied and how records map to share classes.是否直接提供 NAV,以及记录如何映射到份额类别。 | Research and cross-checking.研究与交叉验证。 |
How to integrate a free historical ETF NAV API如何接入免费的 ETF 历史净值接口
Keep the provider-specific field mapping outside the calculation. After normalizing a response to the keys used below, this example validates the official NAV observation and calculates a premium or discount only when listing, share class, and currency match.
把供应商特定的字段映射与计算逻辑分开。将响应归一化为下面使用的字段后,示例会先验证官方 NAV 观测值;只有上市标的、份额类别和币种一致时,才计算溢价或折价。
from datetime import datetime
from decimal import Decimal, InvalidOperation
import requests
def parse_time(value: str) -> datetime:
parsed = datetime.fromisoformat(value.replace("Z", "+00:00"))
if parsed.tzinfo is None:
raise ValueError("timestamps must include a timezone")
return parsed
def fetch_json(endpoint: str, params: dict, headers: dict) -> dict:
response = requests.get(
endpoint, params=params, headers=headers, timeout=(5, 20)
)
response.raise_for_status()
return response.json()
def premium_discount(nav_row: dict, price_row: dict) -> dict:
identity = ("fund_id", "share_class", "currency")
if any(nav_row.get(key) != price_row.get(key) for key in identity):
raise ValueError("NAV and price identity or currency mismatch")
if nav_row.get("nav_type") != "official":
raise ValueError("premium calculation requires official NAV")
try:
nav = Decimal(str(nav_row["nav_per_share"]))
price = Decimal(str(price_row["price"]))
except (KeyError, InvalidOperation) as exc:
raise ValueError("invalid NAV or price") from exc
if nav <= 0 or price <= 0:
raise ValueError("NAV and price must be positive")
nav_time = parse_time(nav_row["valuation_time"])
price_time = parse_time(price_row["observed_at"])
gap_minutes = abs((price_time - nav_time).total_seconds()) / 60
return {
"premium_discount_pct": ((price - nav) / nav) * Decimal("100"),
"nav_time": nav_time,
"price_time": price_time,
"time_gap_minutes": Decimal(str(gap_minutes)),
"comparison_is_stale": gap_minutes > 60,
}
Interpret the result with its clock. A calculated 2% premium does not mean the ETF is mispriced when the official NAV is from the previous close, underlying markets are shut, or FX has moved. Set the stale threshold for the fund and use case, then display the two timestamps beside the percentage.
解读结果时必须同时看时间。若官方 NAV 来自上一收盘、底层市场已经休市,或汇率随后发生变化,计算出的 2% 溢价并不等于 ETF 一定定价错误。应根据基金和使用场景设置过期阈值,并在百分比旁同时展示两个时间戳。
1. Resolve the ETF identifier
Map the user's ticker to a stable identifier and exchange. Tickers can be reused across venues; ISIN, FIGI, or a provider-specific fund ID may be safer.
2. Request a small date range
Start with one known ETF and a short historical window. In Python, send the documented parameters, check the HTTP status, and parse JSON only after a successful response.
3. Validate the response
Confirm identifier, date, currency, frequency, null handling, and whether values are adjusted. Compare at least one observation with the issuer's published NAV.
4. Cache and monitor responsibly
Respect rate limits and licensing. Cache daily NAV where permitted, log the source and as-of time, and treat stale or missing values as explicit states.
5. Align NAV and price before calculating a premium
Select a documented price observation, confirm the same listing and share class, align currency, and record the time gap from official NAV. If underlying markets were closed or the NAV is prior-day, label the result accordingly.
6. Build a revision-aware history
Key observations by fund, share class, valuation date, source, and revision. Preserve preliminary and corrected versions with publication times so research uses only the value available at the simulated moment.
7. Monitor continuity and anomalies
Flag unexplained jumps, unchanged values across expected business days, impossible negative NAV, currency switches, and gaps around splits or distributions. Route anomalies to source review instead of interpolating them automatically.
1. 解析 ETF 标识
把用户输入的交易代码映射到稳定标识和交易所。不同市场可能复用同一交易代码,ISIN、FIGI 或服务商基金 ID 往往更稳妥。
2. 请求较短日期范围
先用一只已知 ETF 和较短历史区间测试。在 Python 中按文档传参,检查 HTTP 状态成功后再解析 JSON。
3. 验证响应
核对标识、日期、币种、频率、空值和复权方式,并把至少一个观测值与发行方公布的 NAV 交叉验证。
4. 合规缓存与监控
遵守限流和许可;在允许时缓存每日 NAV,记录来源与数据截止时间,并把过期或缺失数据作为明确状态处理。
5. 计算溢折价前对齐净值与价格
选择口径明确的价格观测,确认属于同一上市与份额类别,统一币种并记录其与官方净值的时间差。若底层市场已休市或净值仍是前一日数据,应明确标注。
6. 建立可识别修订的历史序列
用基金、份额类别、估值日期、来源和修订号共同确定观测记录,并保留初步值和更正值及其发布时间,使研究只能使用模拟时点当时可获得的数值。
7. 监控连续性与异常
标记无法解释的跳变、预期工作日连续不变、负净值、币种切换,以及拆分或分派附近的缺口;异常应转来源核查,而不是自动插值。
Use QVeris to find and call ETF NAV capabilities用 QVeris 查找并调用 ETF 净值数据能力
QVeris can help an agent discover and inspect available financial-data capabilities before calling them. Availability, fields, authentication, pricing, and license still come from the selected provider; QVeris does not create or guarantee ETF NAV data.
QVeris 可帮助 AI 智能体在调用前发现并检查可用的金融数据能力。具体可用性、字段、鉴权、价格和许可仍由所选服务商决定;QVeris 不生成或保证 ETF 净值数据。
- Open the QVeris provider details for relevant ETF or fund-data capabilities.
- Inspect input and output schemas, NAV type, currency, valuation policy, publication time, revision state, and license before letting an agent call a capability.
- Require an explicit fund and share-class identifier, date range, official versus indicative NAV, and freshness tolerance in every tool request.
- Preserve the provider, raw value, identifier, valuation and publication dates, revision, and validation result with every downstream use.
- 打开 QVeris 服务商详情,查看相关 ETF 或基金数据能力。
- 让 AI 智能体调用前先检查输入输出结构、净值类型、币种、估值规则、发布时间、修订状态和许可。
- 每次工具请求都应明确基金与份额标识、日期范围、官方或参考净值,以及时效容忍度。
- 在每次下游使用中保留服务商、原始数值、标识、估值与发布日期、修订号和验证结果。
Free ETF NAV API FAQ免费 ETF 净值 API 常见问题
Is there a free API for ETF NAV data?
Some issuers, public datasets, brokers, and data vendors expose free access or limited free tiers. Coverage and terms vary, so verify that NAV endpoints—not only price endpoints—are included.
How do I get historical ETF NAV via API?
Use a documented history endpoint with an ETF identifier plus start and end dates, then verify date, currency, adjustment method, pagination, and missing values.
Is ETF NAV the same as ETF price?
No. NAV is based on fund assets minus liabilities per share at a valuation time; market price is the price at which ETF shares trade on an exchange.
What is the difference between NAV and iNAV?
NAV is normally an official valuation calculated on a schedule. iNAV or IIV is an intraday indicative estimate and can use different inputs or timing.
How is an ETF premium or discount calculated?
It is commonly the percentage difference between a selected market price and NAV. The result is meaningful only when the listing, share class, currency, and comparison times are aligned and disclosed.
Why can an international ETF trade far from its last NAV?
The ETF may still trade after underlying markets have closed, while FX and new information continue moving. The last official NAV can therefore be stale relative to the exchange price without either value being an error.
Should missing NAV values be forward-filled?
Not by default. First identify holidays, publication delays, suspended valuation, feed failures, or fund events. Preserve the missing state; any imputation should be separate, labeled, and excluded from official-value reporting.
哪里有免费的 ETF 净值 API?
部分发行方、公共数据集、券商和数据服务商提供免费访问或有限免费层,但必须核对是否包含 NAV 端点,而不只是市场价格。
如何通过 API 获取 ETF 历史净值?
使用有文档的历史端点,传入 ETF 标识和起止日期,再核对日期、币种、复权方式、分页和缺失值。
ETF 净值和 ETF 价格一样吗?
不一样。NAV 是指定估值时点的每份基金净资产;市场价格是 ETF 份额在交易所成交的价格。
NAV 和 iNAV 有什么区别?
NAV 通常是按固定时间表计算的正式估值;iNAV 或 IIV 是盘中参考估计,输入和更新时间可能不同。
ETF 溢折价如何计算?
常见算法是选定市场价格相对净值的百分比差异。只有上市、份额类别、币种和比较时间都已对齐并公开说明时,结果才有意义。
为什么国际 ETF 的价格会明显偏离上一净值?
ETF 仍在交易时,底层市场可能已经休市,而汇率和新信息仍在变化。因此,上一官方净值相对交易价格可能已经陈旧,并不表示任何一方一定错误。
缺失净值可以直接向前填充吗?
不应默认这样做。应先识别休市、发布延迟、暂停估值、数据故障或基金事件,并保留缺失状态;任何估算都应单独标注,且不能冒充官方净值。
