Which funds and ETFs does the API cover?
Any share class whose management company publishes a product page, factsheet and KID: UCITS funds and ETFs first, money-market and most open-end funds. What is not a fund returns 404. Per-issuer depth on the coverage pages.Updated 12 September 2026 · by FundFacts APIShort answer
Any fund or ETF share class whose management company publishes a product page, a factsheet and a KID: UCITS funds and ETFs from the large European ranges have the deepest coverage (holdings files, NAV history, KID costs), followed by money-market and most open-end funds worldwide. Each share class is its own ISIN. Stocks, bonds, indices and structured products are not funds and return 404 fund_not_found. The coverage pages list, per fund house, which sections of the payload are populated.
In scope
- UCITS ETFs: iShares, Vanguard, Xtrackers, Amundi, SPDR, Invesco, UBS, HSBC, WisdomTree, L&G and the other European ranges, with holdings files and NAV history where the issuer publishes them.
- UCITS and other open-end funds: active and index funds from fund houses that publish factsheets and KIDs (Fidelity, J.P. Morgan, Schroders, Pictet, Nordea, Robeco, Carmignac, Flossbach von Storch, Union Investment, Raiffeisen and many more).
- Money-market funds, with seven-day yield, WAM and WAL where printed.
- French SCPIs, through the separate
/scpiendpoints and their own document set (bulletins, DIC, annual reports).
Depth varies by fund house
Every fund house publishes a product page and a KID; not every one publishes a holdings file or a NAV history. The coverage pages state for each issuer which documents exist and therefore which sections (holdings, sector, geography, calendar returns, series, risk metrics) the payload carries. Sections a fund house does not publish come back empty, never invented.
Out of scope
- Equities, bonds, certificates, indices and structured products:
404 fund_not_found. - Delisted or merged share classes whose documents are no longer published.
- Funds whose management company publishes nothing machine-readable, for which
POST /extract(Pro and above) can still turn a PDF you have into the same JSON shape.
Checking a specific fund
Look it up on the Free plan (15 lookups a month, no card), or search by name to see whether it is already in the store. A 404 fund_not_found on a real fund is worth reporting; adapters are added by demand.
Verify it yourself
The demo endpoint returns the live payload for a fund that is already in the store, without a key. Everything on this page can be checked against it.bashcurl -s https://fundfactsapi.com/api/v1/demo/funds/IE00B4L5Y983 | jq '{name, asOf: .data.dataAsOf, ter: .data.headlineMetrics.ter, risk: .data.riskRating, top: .data.topHoldings[:3]}'