Getting started

How fresh is the fund data, and how often is it updated?

Each ISIN is re-read from the fund house's documents at most every 24 hours. Factsheet figures are month-end, holdings and NAV are daily, and every payload states its as-of date and expiry.Updated 12 September 2026 · by FundFacts API

Short answer

Every ISIN is re-read from the fund house's documents at most once per 24 hours; expiresAt in the response says when the next refresh happens. The figures themselves are as fresh as the documents: holdings files and NAV history are usually one trading day old, factsheet tables (sector weights, returns) are month-end, and the KID is updated when the fund house updates it. data.dataAsOf states the date of the figures on every payload.

Two dates, two meanings

FieldMeaningUse it for
data.dataAsOfDate printed on the source documentsShow next to any figure
generatedAt / expiresAtWhen the payload was produced and when it will be re-read (24 h later)Cache until expiresAt

A payload produced this morning can carry figures dated the last month end. That is not staleness in the API; it is how fund houses publish. The as-of dates guide walks through the cases.

Per section

  • Holdings and NAV series: previous trading day where the fund house publishes files; month-end where only the factsheet table exists.
  • Sector, country, asset weights, returns, portfolio characteristics: month-end factsheet.
  • TER, AUM, name, distribution policy: product page, usually a few days old.
  • Risk indicator, KID costs, SFDR article: the current KID, which changes when the fund house re-issues it.

Not a price feed

The API returns the factsheet as data, refreshed daily. It does not stream intraday prices or NAVs; the monthly series is for charts and statistics. For ETF market prices use your broker or exchange feed; for the difference between the two see NAV vs market price.

Knowing when something moved

On the Scale plan, GET /changes?since= lists every tracked field that changed between refreshes (TER, risk indicator, AUM, manager, distribution policy, holdings count, benchmark, objective, top-five holdings) and webhooks push the same events, signed. That is the reliable way to react to changes rather than diffing payloads yourself.

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.
bash
curl -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]}'

Frequently asked questions

Can I force a refresh?

No; a refresh happens when the stored payload is older than 24 hours and someone requests the ISIN. Fund houses do not publish more often than that for the figures in question.

Which ISINs work?

Any share class of a UCITS fund, ETF, money-market fund or open-end fund whose management company publishes a product page, factsheet and KID. Each share class has its own ISIN and is looked up on its own. Stocks, bonds and indices are not funds and return 404 fund_not_found.

Try it on your own ISINs

One request returns key facts, holdings, risk and performance as JSON. Free plan, no card.