Financial Data API Guide金融数据 API 指南

Choose a Free Fund Data API
for Mutual Funds and ETFs
选择适合公募基金与 ETF 的
免费基金数据 API

Free fund data APIs are available through open endpoints and limited free tiers, but no single source covers every fund, ETF, NAV history, and holding.

免费基金数据可通过开放接口和有限免费层获取,
但没有单一来源覆盖全部基金、ETF、历史净值与持仓。

Free fund data API workflow for choosing coverage, requesting NAV and holdings, validating fields, and delivering normalized data

Free fund data API: the short answer免费基金数据 API:快速结论

Primary task

Resolve the correct legal fund, share class, and listing, then retrieve the specific NAV, price, holdings, fees, distributions, or reference data the workflow needs.

Compare first

Fund types, geography, identifiers, dataset dates, history, holdings completeness, fees, benchmarks, quotas, licensing, and revision behavior.

Validate always

Keep official NAV, exchange price, currency, valuation date, publication time, share class, and source methodology separate.

Production rule

Preserve raw responses, stable IDs, effective dates, revisions, retrieval evidence, and provider terms so every normalized value remains traceable.

核心任务

先解析正确的法律基金、份额类别和上市记录,再获取流程真正需要的净值、价格、持仓、费用、分派或基础资料。

先做比较

比较基金类型、地区、标识、数据日期、历史、持仓完整性、费用、基准、额度、许可和修订方式。

始终验证

分别保存官方净值、交易价格、币种、估值日期、发布时间、份额类别和来源方法。

生产规则

保存原始响应、稳定 ID、有效日期、修订、抓取证据和供应商条款,使每个规范化数值都可追溯。

Compare free mutual fund and ETF data API coverage比较免费基金与 ETF 数据接口的覆盖范围

Need需求Fields to verify需核对字段Common constraint常见限制
Latest fund NAV API最新基金净值 APIscheme ID, NAV, date, currency基金代码、净值、日期、币种Often end-of-day, not real time通常为日终数据,并非实时
Historical mutual fund data API基金历史净值接口date range, adjusted series, missing dates日期范围、复权口径、缺失日期History and geography vary历史跨度和地区覆盖不同
Fund holdings API基金持仓 APIsecurity ID, weight, report date证券标识、权重、报告日期Holdings can be delayed持仓数据可能延迟披露
ETF market dataETF 行情数据price, volume, exchange, timestamp价格、成交量、交易所、时间戳Real-time access may be licensed实时行情可能需要授权
Fund reference and share classes基金资料与份额类别legal fund ID, class, domicile, currency, status, ticker history法律基金 ID、份额、注册地、币种、状态与代码历史Names and tickers do not uniquely identify a fund名称与代码无法唯一确定基金
Fees, distributions, and returns费用、分派与回报expense basis, load, distribution dates, reinvestment method费率口径、申赎费、分派日期与再投资方法Similar labels can hide different investor outcomes相似标签可能对应不同投资者结果
Fund status and history基金状态与历史launch, closure, merger, liquidation, predecessor, revisions成立、关闭、合并、清盘、前身与修订Required for continuous histories and unbiased research连续历史与无偏研究都需要这些信息

The first comparison should be the fund structure, because a mutual fund record and an ETF listing do not represent the same transaction model. Even when both hold an identical portfolio, the observable prices, identifiers, update times, and investor cash flows differ.

第一步应先区分基金结构,因为共同基金记录与 ETF 上市证券并不采用同一套交易模型。即使两者持有完全相同的资产组合,可观察价格、标识体系、更新时间和投资者现金流也会不同。

Data question数据问题Open-end mutual fund开放式共同基金Exchange-traded fund交易所交易基金
How investors transact投资者如何交易Orders are normally processed at a calculated NAV under the fund's dealing rules.通常按照基金交易规则,以计算出的净值处理申购和赎回。Shares trade intraday on an exchange at bid, ask, and last prices; creation and redemption operate separately.份额在交易所盘中按买价、卖价和成交价交易,申购赎回机制另行运行。
Primary valuation fields主要估值字段NAV per share, valuation date, publication time, dealing currency, and share class.每份净值、估值日期、发布时间、交易币种和份额类别。Market quote plus official NAV; indicative value may exist but follows a separate methodology and clock.市场报价与官方净值;可能还有参考净值,但方法和时间口径不同。
Identity身份识别Legal fund, strategy, share class, currency, distribution policy, load, and investor eligibility.法律基金、策略、份额类别、币种、分派政策、申赎费和投资者资格。Legal fund, portfolio, listing, exchange, ticker, trading currency, and primary or secondary venue.法律基金、投资组合、上市记录、交易所、代码、交易币种以及主要或次要市场。
Holdings cadence持仓更新节奏Often periodic and disclosed after the portfolio date; frequency varies by market and fund.通常按期披露,且披露日晚于组合日期;频率因市场和基金而异。Can be daily for some products, but timing, completeness, cash, derivatives, and custom-basket treatment still vary.部分产品可能每日披露,但发布时间、完整性、现金、衍生品和定制篮子处理仍不相同。
Investor return投资者回报Depends on NAV, fees, loads, distributions, class currency, and reinvestment assumptions.取决于净值、费用、申赎费、分派、份额币种和再投资假设。Also depends on market-price premium or discount, bid/ask spread, brokerage costs, and trading time.还会受到市场价溢价或折价、买卖价差、交易成本和成交时点影响。

How to use a free fund data API with Python如何用 Python 调用免费基金数据 API

1. Define the fund universe and required fields1. 明确基金范围和必需字段

Decide whether the application needs mutual funds, exchange-traded funds, or both. List identifiers, NAV, price, return, holdings, expense ratio, currency, market, history, and update frequency before choosing a source.

先确定应用需要公募基金、ETF,还是两者都需要;再列出代码、净值、价格、收益、持仓、费率、币种、市场、历史区间与更新频率。

2. Inspect authentication, quotas, and reuse terms2. 检查认证、额度与再使用条款

“Free” may mean open access, a limited free tier, a trial, or non-commercial use. Read the provider documentation for keys, rate limits, attribution, caching, redistribution, and delayed-data rules.

“免费”可能是开放接口、有限免费层、试用或仅限非商业使用。应查看 API Key、限流、署名、缓存、再分发和延迟数据规则。

3. Make a small request and validate the response3. 小范围调用并验证响应

curl https://api.mfapi.in/mf/125497/latest is a documented example for a latest mutual fund NAV response. Confirm the scheme name, NAV date, units, and source before using it. Availability and terms can change, so re-check the documentation.

curl https://api.mfapi.in/mf/125497/latest 是文档提供的最新基金净值请求示例。使用前应核对基金名称、净值日期、单位和出处,并重新确认当前条款。

4. Add caching, retries, and provenance4. 加入缓存、重试和出处记录

Cache according to the update schedule, use bounded retries only for temporary failures, and store the request URL, retrieval time, source identifiers, and raw response with normalized records.

按更新频率缓存,仅对临时错误做有限重试,并随标准化记录保存请求 URL、抓取时间、来源标识和原始响应。

5. Normalize fund identity and dataset clocks5. 规范基金身份与数据时间

Model the legal fund, share class, exchange listing, and provider ID separately. Preserve valuation, portfolio, distribution, publication, processed, and retrieval dates as different fields rather than collapsing them into one generic timestamp.

分别建模法律基金、份额类别、交易所上市和供应商 ID,并把估值日、组合日、分派日、发布日期、处理时间和抓取时间保存为不同字段,不要压缩成一个通用时间戳。

6. Test fund events and revisions6. 测试基金事件与修订

Use samples around distributions, share-class changes, ticker changes, mergers, closures, liquidations, and missing NAV days. Confirm continuity, status, predecessor mapping, and whether corrected records preserve their first publication time.

选取分派、份额类别变化、代码变更、合并、关闭、清盘和净值缺失日附近样本,检查连续性、状态、前身映射,以及更正记录是否保留首次发布时间。

Validate fund NAV, holdings, and historical data验证基金净值、持仓与历史数据

Do not confuse NAV with an intraday market price不要把基金净值与盘中市场价格混为一谈

A mutual fund NAV is generally calculated for a valuation date, while an ETF can also trade at an intraday market price. Preserve the field definition, timestamp, currency, share class, and adjustment method instead of treating every “price” as interchangeable.

公募基金净值通常对应估值日期,ETF 还可能有盘中成交价。应保留字段定义、时间戳、币种、份额类别和复权方法,不能把所有“价格”视为同一口径。

ETF premium example: if an ETF closes at $50.40 and its official NAV for the same share, currency, and valuation date is $50.00, the closing premium is ($50.40 ÷ $50.00) - 1 = 0.8%. The result is valid only when both values refer to the same fund share class and compatible date. An intraday indicative value observed at 14:00 cannot be substituted for the official close NAV, and a stale NAV can make the apparent premium meaningless.

ETF 溢价示例:如果某只 ETF 的收盘价为 50.40 美元,同一份额、同一币种和同一估值日的官方净值为 50.00 美元,则收盘溢价为 (50.40 ÷ 50.00) - 1 = 0.8%。只有两个数值对应同一基金份额且日期口径兼容时,这个结果才有效。不能用 14:00 观察到的盘中参考净值代替官方收盘净值;如果净值已经陈旧,表面上的溢价也没有解释意义。

The same discipline applies to assets under management. AUM may be reported by the fund, calculated for a portfolio date, converted into another currency, or estimated from NAV and shares outstanding. If it is derived, retain the NAV date, share-count date, class or fund scope, foreign-exchange rate, formula, and rounding. Do not compare one share class's net assets with another provider's consolidated fund AUM.

资产管理规模也需要同样严格的口径。AUM 可能由基金直接披露,可能按某个组合日期计算,也可能经过币种换算,或由净值与流通份额数估算。如果属于推导值,应保留净值日期、份额数日期、份额或基金范围、汇率、公式与舍入规则。不能把某一份额类别的净资产与另一供应商给出的全基金合并 AUM 直接比较。

Keep report dates and source provenance保留报告日期与数据出处

Holdings may be disclosed less frequently than NAV. Store the holdings report date separately from the retrieval time, retain original identifiers, and compare representative records with the provider’s visible source before publishing.

持仓披露频率可能低于净值更新频率。应分别保存持仓报告日期和抓取时间,保留原始标识,并在发布前与提供方公开页面抽样核对。

Dataset clock数据时间Meaning含义Typical error常见错误
Valuation date估值日Date for which NAV and underlying asset values were calculated.净值及底层资产估值所对应的日期。Using retrieval time as if it were the NAV date.把抓取时间当作净值日期。
Publication time发布时间When that value became available to users or the provider.该数值何时开始对用户或供应商可见。Using a value in a historical decision before it was published.在历史决策中提前使用尚未发布的数据。
Portfolio report date组合报告日Date represented by the security positions and weights.证券持仓和权重实际对应的日期。Calling old disclosed holdings the current portfolio.把较早披露的持仓描述成当前组合。
Holdings disclosure date持仓披露日When the portfolio report became publicly or contractually available.组合报告何时公开或按合同可用。Backtesting with positions before their disclosure date.在披露日前使用持仓进行回测。
Distribution dates分派日期Declaration, ex-distribution, record, and payment dates describe separate stages.宣告日、除息日、登记日和支付日代表不同阶段。Adding cash on the wrong date or double counting an NAV adjustment.在错误日期计入现金,或重复计算净值调整。

Compare like share classes and return definitions只比较可比份额与回报口径

Accumulating and distributing classes, hedged and unhedged classes, institutional and retail classes, and different load structures can follow one strategy while producing different investor cash flows. Compare returns only after aligning currency, fees, distributions, tax assumptions, and reinvestment method.

累积与分红份额、对冲与未对冲份额、机构与零售份额,以及不同申赎费结构可能属于同一策略,却产生不同投资者现金流。比较回报前,必须对齐币种、费用、分派、税务假设和再投资方法。

One fund, three different measures: suppose a distributing share class starts the period with NAV of $20.00, ends with NAV of $20.40, and pays a $0.20 cash distribution. Its simple NAV change is 2.0%, but its distribution-inclusive return is ($20.40 + $0.20) ÷ $20.00 - 1 = 3.0% before tax and any reinvestment timing effect. If shares outstanding also rise from 50 million to 52 million, the additional two million shares represent roughly $40.8 million at the ending NAV—not the entire increase in AUM. Ending AUM is 52m × $20.40 = $1.0608bn; the change from the opening $1.0bn combines portfolio performance, the distribution, and investor subscriptions or redemptions. A production dataset should therefore expose NAV return, total return, share-count change, estimated net flow, and AUM change as separate measures, each with its own date and calculation convention.

同一只基金,三种不同指标:假设某分红型份额期初净值为 20.00 美元,期末净值为 20.40 美元,期间每份现金分派 0.20 美元。净值本身只上涨 2.0%,但在不考虑税费和再投资时点差异的情况下,含分派回报为 (20.40 + 0.20) ÷ 20.00 - 1 = 3.0%。如果流通份额同时从 5000 万份增至 5200 万份,新增的 200 万份按期末净值估算约为 4080 万美元,不能把全部 AUM 增量都解释为资金净流入。期末 AUM 为 5200 万 × 20.40 美元 = 10.608 亿美元;相对期初 10 亿美元的变化,同时包含组合表现、现金分派以及投资者申购赎回。因此,生产数据应分别提供净值回报、含分派总回报、份额数变化、估算净流量和 AUM 变化,并为每项指标保留独立日期与计算口径。

Use point-in-time availability for historical research历史研究应使用时点可得数据

Store when each NAV, holding, fee, classification, and status record first became available. Historical analysis should include funds and classes that later merged or liquidated and must not use a revised value before its publication time.

保存每条净值、持仓、费用、分类和状态记录首次可得的时间。历史分析应包含后来合并或清盘的基金与份额,也不能在修订值发布前提前使用它。

How QVeris helps agents use fund data APIsQVeris 如何帮助 Agent 使用基金数据 API

QVeris helps agents discover, inspect, call, and audit external capabilities. A fund data source remains a third-party capability with its own coverage, terms, and provenance; QVeris does not own or alter the underlying fund data.

QVeris 帮助 Agent 发现、检查、调用和审计外部能力。基金数据源仍是拥有独立覆盖、条款和出处的第三方能力;QVeris 不拥有也不修改底层基金数据。

Open the QVeris provider details to inspect separate NAV, price, holdings, distribution, and reference-data capabilities. Require the fund and share-class identity, dataset type, date semantics, currency, completeness, revision policy, and license in the tool contract, then preserve call evidence. See the QVeris documentation for integration guidance.

可打开 QVeris 服务商详情,查看净值、行情、持仓、分派和基础资料能力。在工具契约中明确基金与份额身份、数据集类型、日期口径、币种、完整性、修订规则和许可,并保留调用证据;接入方式参见 QVeris 文档

Free fund data API questions免费基金数据 API 常见问题

Is there a free fund data API?

Yes, open APIs and limited free tiers exist, but coverage, rate limits, licensing, and geography differ. Verify current documentation before integration.

Can I get historical mutual fund NAV data by API?

Some APIs provide dated NAV histories. Check the first available date, missing observations, share class, currency, and adjustment rules.

Do free fund APIs include holdings?

Some do, but holdings can be delayed or available only for certain markets. Store each report date and security identifier.

Is ETF price the same as fund NAV?

No. An ETF trades at a market price and may also publish NAV or indicative NAV. Keep each field and timestamp distinct.

Why does one fund have multiple share classes?

Classes can differ by currency, hedging, distribution policy, fees, minimum investment, or investor type. Keep class identifiers separate and do not merge values solely because the strategy name matches.

Can a free fund API be used for backtesting?

Only if it provides point-in-time availability, historical identifiers and classes, closed or merged funds, corporate events, and revisions. Current survivors plus old NAV is not an unbiased historical universe.

How often do fund datasets update?

NAV, prices, holdings, fees, classifications, and distributions follow different schedules. Store each dataset's effective and publication dates instead of applying one freshness label to the fund.

有免费的基金数据 API 吗?

有开放接口和有限免费层,但覆盖范围、限流、许可和地区不同,接入前应查看最新文档。

如何通过 API 获取基金历史净值?

选择提供日期序列的接口,并检查最早日期、缺失观测、份额类别、币种和复权口径。

免费基金 API 包含持仓吗?

部分接口包含,但持仓可能延迟或只覆盖特定市场,应保存报告日期和证券标识。

ETF 价格等于基金净值吗?

不等于。ETF 有市场成交价,也可能公布净值或参考净值,必须分别保存字段定义与时间戳。

为什么一只基金会有多个份额类别?

份额可能在币种、汇率对冲、分派政策、费用、最低投资额或投资者类型上不同。应分别保存份额标识,不能只因策略名称相同就合并数值。

免费基金 API 可以用于回测吗?

只有在提供时点可得时间、历史标识与份额、已关闭或合并基金、基金事件和修订时才可靠。只用当前存续基金加旧净值,会形成有偏证券池。

不同基金数据多久更新一次?

净值、价格、持仓、费用、分类和分派各有更新节奏。应分别保存每类数据的有效日期与发布时间,不能给整只基金套一个统一时效标签。

External references外部参考链接