QVeris
Financial Data API Guide

Choose a Free Fund Holdings API
for Mutual Funds and ETFs

A free fund holdings API can support prototypes when it provides suitable coverage, dated portfolio records, clear usage terms, and verifiable JSON.

Free fund holdings API workflow for choosing a source, requesting holdings, validating dates and weights, and normalizing JSON

Free fund holdings API: the short answer

Choose

Match fund types, complete or top holdings, asset-class detail, historical depth, revisions, quota, and license to the intended analysis.

Verify

Check legal fund and share-class IDs, portfolio and publication dates, pagination, asset types, currencies, signs, weights, and completeness.

Preserve

Store raw and normalized records, source filings, first-known dates, revision IDs, parsing version, retrieval logs, and provider terms.

What a fund holdings API must cover

A useful evaluation starts with one real fund, one dated portfolio, and one intended product workflow. The decision depends on mutual fund and ETF coverage, legal identifiers, portfolio dates, weights, history, pagination, rate limits, JSON quality, and reuse terms. A free allowance is useful only when the returned scope matches the data the product is expected to explain.

The word “holding” can describe a disclosed security position, a derivative exposure, collateral, cash, a receivable or liability, or a look-through position inferred from another fund. A useful API keeps reported rows and derived exposure separate, identifies the legal share class, and states whether the response is a complete portfolio, regulatory filing, top-holdings subset, or provider reconstruction.

Compare free mutual fund and ETF holdings APIs

Source typeGood forCheck before use
Public filingsDirect provenance and custom databases.Coverage, parsing, amendments, lag, and issuer IDs.
Free-tier REST APIPrototypes needing normalized JSON.Quota, full or top holdings, history, and reuse.
Fund or exchange feedOfficial detail for a fund family or market.URL stability, format, schedule, and normalization.
Regulatory filing transformPoint-in-time history with direct filing provenance.Form scope, amendments, confidential or omitted rows, taxonomy, publication lag.
Look-through analyticsExposure and overlap across funds, derivatives, or nested vehicles.Methodology, double counting, dates, proxy mapping, derived-data license.

Concrete data routes to evaluate

These routes solve different problems. Regulatory data favors provenance and history, normalized APIs favor speed of integration, and issuer files favor the latest official detail for a limited fund family. Do not rank them only by request quota.

RouteWhat you receiveBest useMain limitation
SEC Form N-PORT dataStructured portfolio information reported by registered investment companies, with filing provenance and filing-period context.Building a U.S. fund research database, audit trail, or point-in-time historical pipeline.Disclosure and publication lag, amendments, complex instruments, form taxonomy, and the engineering work needed to normalize records.
Alpha Vantage ETF ProfileA documented ETF profile response that includes fund characteristics and holdings-related data through a familiar API request model.A quick ETF prototype that wants normalized JSON without first building a filing parser.Confirm exact holding depth, portfolio date, market coverage, endpoint entitlement, update cadence, and whether history is available.
Financial Modeling Prep ETF holdingsNormalized ETF constituent or holdings records within a wider financial-data API family.Applications already using the same provider for prices, profiles, or fundamentals and wanting a consistent schema.Check current endpoint path and plan, full versus partial holdings, dates, identifiers, pagination, and redistribution terms.
Issuer holdings downloadsOfficial CSV, spreadsheet, or page-level holdings for a specific ETF family, often with a clear as-of date.Displaying or checking a small set of funds where official, recent detail matters more than broad coverage.Formats and URLs can change; fields differ by issuer; historical files, automation rights, and redistribution may be limited.

Form 13F is not a substitute for a fund holdings feed. It reports certain positions of qualifying institutional investment managers, not a complete, current portfolio for every mutual fund or ETF share class. Use N-PORT, issuer disclosures, or a fund-specific provider when the product claims to show the fund itself.

Score access, data, and permitted use together

Free plans may cap requests, omit history, return only top positions, or prohibit redistribution. Prioritize reliable dates, source IDs, documentation, and licensing; a successful response does not grant reuse rights.

For a single-fund holdings page

Prefer the issuer's dated file or a normalized API that returns a verifiable source and clear as-of date. Show whether the list is complete or only top holdings, display the published portfolio date prominently, and avoid labeling retrieval time as “last updated holdings.”

For fund overlap and concentration

Require stable security identifiers, complete-enough portfolios, weights on the same basis, and aligned dates. Normalize share classes and currencies before calculating overlap. Report unmapped and omitted weight so a clean-looking percentage does not hide missing positions.

For historical research and backtests

Use filing-sourced or revision-aware snapshots with first-known timestamps. Keep amendments instead of replacing old files, and make the simulation wait until the data was publicly available. Today's reconstructed portfolio cannot safely answer what an investor knew six months ago.

For an AI agent answer

Return fund and share-class identity, scope, portfolio date, publication date, source, position count, top holdings, total reported weight, residual, and license status. The agent should distinguish disclosed holdings from look-through estimates and cite the dated source behind the summary.

How to use a free fund holdings API

1. Define the fund universe and required fields

Specify the market, full or top holdings, history, currencies, sectors, and identifiers.

2. Inspect authentication, dates, and pagination

Record key placement, quota headers, pagination, as-of date, filing date, and timezone. Retrieval time is not the portfolio date.

3. Make a bounded request and inspect JSON

GET /v1/funds/{ticker}/holdings?limit=100 is an illustrative REST shape, not a real provider URL. Before loading data, validate types, nulls, currency, weights, IDs, and page counts.

4. Store raw payloads and normalized records

Keep the raw response and provider codes. Normalize fund_id, security_id, market_value, weight_pct, currency, as_of_date, filing_date, and source_url. Key snapshots by provider, fund, and as-of date.

5. Reconcile asset types and portfolio totals

Calculate long, short, cash, derivative, liability, and unexplained residual totals separately. Keep raw sign and units, deduplicate by stable ID and position context, and quarantine ambiguous bond or derivative identifiers instead of forcing them into equity rows.

6. Build revision-aware history

Key versions by fund, share class, portfolio date, filing or source publication time, provider processing time, and amendment. Preserve superseded rows and change reasons so backtests use only records available at the simulated time.

Validate fund holdings data before analysis

Why portfolio weights may not total exactly 100%

Top-holdings endpoints omit small positions. Complete portfolios can vary because of cash, derivatives, liabilities, rounding, currencies, or classification. Treat the total as a warning, not proof.

Worked reconciliation: why 94% can be valid and 108% can be valid

Suppose an endpoint labels its response “holdings” and the returned rows sum to 94%. That may represent the largest disclosed securities while 3% sits in cash, 1% in receivables, and 2% in smaller omitted positions. Rescaling the 94% to 100% would make every displayed security too large and erase the fact that the endpoint is incomplete.

A different portfolio can show 108% gross exposure because long securities, futures, swaps, short positions, cash, and liabilities use different bases. Gross exposure may exceed net assets while net exposure remains near 100%. Reconcile at least four totals separately: reported long market value, reported short market value, cash and other net assets, and derivative notional or delta-adjusted exposure. Only compare fields that share the same denominator.

Do not auto-fix a residual. First label the endpoint as top-only, complete, filing-derived, or reconstructed; then inspect cash, liabilities, derivatives, shorts, omitted rows, rounding, currency conversion, and the weight denominator. Publish the residual as a quality field until its cause is known.

How often are mutual fund holdings updated?

Freshness depends on disclosure and processing. Separate as-of, filing, and retrieval dates. Backtests need point-in-time snapshots and amendment history to avoid look-ahead bias.

Test edge cases before production

Test share classes, missing tickers, derivatives, currencies, amendments, and empty pages. Separate schema changes from network failures. Check U.S. fund results against SEC EDGAR filings.

Separate reported holdings from look-through exposure

A fund-of-funds row is a reported holding; expanding it into the underlying portfolio creates derived exposure. Label the transformation, align both portfolio dates, disclose unmapped weight, and prevent the parent fund and underlying positions from being counted together unless the metric intentionally requires it.

How QVeris helps with fund holdings APIs

QVeris helps agents discover and inspect capabilities; it does not own or certify provider data.

  • Open the QVeris provider details to inspect relevant financial-data capabilities.
  • Inspect fund and share-class identity, complete-versus-top scope, asset types, dates, revisions, pagination, methodology, and license before a call.
  • Require completeness metadata, weight totals by asset type, residuals, missing identifiers, and reported-versus-derived labels in the result.
  • Preserve provider URLs, raw rows, source and retrieval dates, amendment IDs, parser version, licenses, and logs.

Free fund holdings API questions

Is there a free API for fund holdings?

Yes, through free tiers or public-filing workflows. Verify coverage, quotas, freshness, and reuse terms.

Can I get mutual fund holdings through an API?

Yes. Confirm whether the endpoint returns the full portfolio or only top holdings and retain its report date.

What fields should the API return?

Fund and security identifiers, name, shares, market value, weight, currency, asset class, as-of date, filing date, and source.

Can I get historical fund holdings?

Some providers offer point-in-time history, often outside the free tier. Check retention depth and amendment handling.

What is the difference between top and complete holdings?

Top-holdings endpoints return only the largest positions. Complete-holdings endpoints aim to include the full disclosed portfolio, including smaller positions and sometimes cash or derivatives.

Can fund holdings data be used commercially?

That depends on the provider's license and the underlying source. API access does not automatically grant redistribution or commercial-display rights.

Why do fund holding weights not total 100%?

Top-only coverage, cash, derivatives, shorts, liabilities, rounding, currency treatment, and missing rows can create a residual. Inspect the portfolio basis before rescaling or declaring an error.

How do I calculate look-through fund exposure?

Map nested funds to their own dated portfolios, multiply parent and child weights, preserve unmapped exposure, and label the result derived. Align dates and prevent double counting between the wrapper and expanded positions.

What dates should a holdings API return?

Portfolio as-of, source filing or publication, provider processing, retrieval, and amendment times serve different purposes. Historical research needs all material dates, not one generic timestamp.

Official references

Choose a Free Fund Holdings API for Mutual Funds and ETFs | QVeris Guides