# FundFacts API > FundFacts API turns any fund or ETF ISIN into one structured JSON factsheet: key facts, fees (TER), SRRI risk indicator, a rule-based profile, top holdings, sector / country / asset-allocation breakdowns, calendar and annualised returns, a monthly performance series and risk statistics. Figures are read from the documents each fund house publishes (product page, factsheet, PRIIPs KID, holdings and NAV files) and refreshed every 24 hours. Batch, search, portfolio look-through and holdings-overlap endpoints, an MCP server, an OpenAPI spec and an AI companion kit for coding agents are included. Base URL: https://fundfactsapi.com/api/v1 — bearer authentication with a key from https://fundfactsapi.com/signup (free plan, no card). Example: GET https://fundfactsapi.com/api/v1/funds/IE00B4L5Y983. Keyless demo of an already-loaded fund: GET https://fundfactsapi.com/api/v1/demo/funds/IE00B4L5Y983. Plans (credits reset monthly, UTC): Free $0 — 150 credits / month, 1 ISIN per batch; Starter $9/month — 1,500 credits / month, 10 ISINs per batch, AI companion kit; Pro $49/month — 9,000 credits / month, 50 ISINs per batch, AI companion kit; Scale $249/month — 60,000 credits / month, 200 ISINs per batch, AI companion kit; Enterprise metered at $0.01 per request. One credit per ISIN answered; search is free. ## Documentation - [Overview](https://fundfactsapi.com/docs): What FundFacts API returns, the endpoints, and how credits work. - [Quickstart](https://fundfactsapi.com/docs/quickstart): Get a key, make the first call, read the envelope. curl, TypeScript and Python. - [Authentication](https://fundfactsapi.com/docs/authentication): API keys, the Authorization header, revocation and key limits. - [Endpoints](https://fundfactsapi.com/docs/endpoints): GET /funds/{isin}, POST /funds (batch), GET /search, POST /portfolio, GET /overlap, POST /factsheets (HTML / PDF one-pagers), GET /me, the demo endpoint. - [Credits & rate limits](https://fundfactsapi.com/docs/credits): Monthly credits, burst limits, overage, the quota headers and 429 handling. - [Freshness & sourcing](https://fundfactsapi.com/docs/freshness): The 24-hour store, cold loads, where every figure comes from and how the series are computed. - [Errors](https://fundfactsapi.com/docs/errors): Every error code, when it happens and what to do. - [Field reference](https://fundfactsapi.com/docs/fields): Every key of the data object: identity, profile, breakdowns, performance, metrics, freshness. - [AI agents & MCP](https://fundfactsapi.com/docs/ai-agents): The MCP server, llms.txt, the OpenAPI spec and the AI companion kit for Cursor, Claude Code and Codex. - [SCPI](https://fundfactsapi.com/docs/scpi): GET /scpi/{idOrIsin} and GET /scpi?q=: structured data for French SCPIs from their management companies' bulletins, DIC and annual reports. - [OpenAPI 3.1 (JSON)](https://fundfactsapi.com/openapi.json): machine-readable spec for every endpoint - [OpenAPI 3.1 (YAML)](https://fundfactsapi.com/openapi.yaml) - [Full documentation in one file](https://fundfactsapi.com/llms-full.txt): AGENTS.md-style reference with every field, the rules for agents and recipes - [MCP server](https://fundfactsapi.com/api/mcp): Streamable HTTP endpoint with get_fund, search_funds, compare_funds, analyze_portfolio and fund_overlap tools (bearer API key) - [One-page factsheets](https://fundfactsapi.com/docs/endpoints#factsheets): POST /api/v1/factsheets renders any ISIN as an HTML or PDF one-pager with the @fundfactsapi/widgets components and returns keyless share / embed links - [JavaScript / TypeScript SDK](https://www.npmjs.com/package/@fundfactsapi/sdk): npm install @fundfactsapi/sdk — zero-dependency client (getFund, getFunds, search, portfolio, overlap, changes, export) - [Python SDK](https://pypi.org/project/fundfacts/): pip install fundfacts — stdlib-only client with the same methods - [React widgets](https://www.npmjs.com/package/@fundfactsapi/widgets): npm install @fundfactsapi/widgets — growth chart, donut, weight bars, key-fact tiles, risk scale, profile chips, returns tables and a complete FundFactsheet component ## Product - [Home](https://fundfactsapi.com/): what the API returns, live demo, AI companion kit - [Pricing](https://fundfactsapi.com/pricing): Free, Starter, Pro, Scale and metered Enterprise - [Issuer coverage](https://fundfactsapi.com/coverage): which fund houses publish which documents and what the payload contains for each - [abrdn (Aberdeen) coverage](https://fundfactsapi.com/coverage/abrdn): abrdn / Aberdeen fund data from an ISIN: key facts, ongoing charges, holdings, sector and country exposure, calendar returns and risk metrics as JSON. - [Amundi coverage](https://fundfactsapi.com/coverage/amundi): Amundi ETF and fund data from any ISIN (including the former Lyxor range): key facts, TER, holdings, exposures, calendar returns and risk metrics as JSON. - [Artemis Fund Managers coverage](https://fundfactsapi.com/coverage/artemis): Artemis fund data from an ISIN: key facts, OCF, top holdings, sector and country exposure, daily NAV series and risk metrics for UK unit trust classes. - [AXA Investment Managers coverage](https://fundfactsapi.com/coverage/axa-im): AXA IM fund data from an ISIN: key facts, fees, top holdings, sector, region, rating and maturity splits, calendar returns, daily NAV series and risk metrics. - [Baillie Gifford coverage](https://fundfactsapi.com/coverage/baillie-gifford): Baillie Gifford UK OEIC data from an ISIN: key facts, OCF, objective, top holdings, sector and country exposure and calendar returns as JSON. - [Bellevue Asset Management coverage](https://fundfactsapi.com/coverage/bellevue): Bellevue fund data from an ISIN: key facts, top holdings, sector and country exposure, calendar returns and risk metrics for Bellevue Funds (Lux) share classes. - [Capital Group coverage](https://fundfactsapi.com/coverage/capital-group): Capital Group (LUX) fund data from an ISIN: key facts, ongoing charges, top holdings, sector and country exposure, calendar returns and risk metrics. - [Carmignac coverage](https://fundfactsapi.com/coverage/carmignac): Carmignac fund data from an ISIN: key facts, ongoing charges, holdings, sector, country and asset-allocation splits, calendar returns and risk metrics as JSON. - [Erste Asset Management coverage](https://fundfactsapi.com/coverage/erste-am): Erste Asset Management fund data from an ISIN: key facts, ongoing charges, top holdings, sector exposure, calendar returns and risk metrics for Austrian funds. - [First Sentier Investors (Stewart Investors, FSSA) coverage](https://fundfactsapi.com/coverage/first-sentier): First Sentier, Stewart Investors and FSSA fund data from an ISIN: key facts, OCF, top holdings, sector and country exposure and calendar returns as JSON. - [Flossbach von Storch coverage](https://fundfactsapi.com/coverage/flossbach-von-storch): Flossbach von Storch fund data from an ISIN: key facts, ongoing charges, top holdings, sector and country exposure, asset allocation and calendar returns. - [Franklin Templeton coverage](https://fundfactsapi.com/coverage/franklin-templeton): Franklin Templeton fund and ETF data from an ISIN: key facts, charges, managers, full holdings, exposures, calendar returns vs benchmark and daily NAV history. - [Generali Investments coverage](https://fundfactsapi.com/coverage/generali-investments): Generali Investments SICAV data from an ISIN: key facts, ongoing charges, top holdings, sector and country exposure, calendar returns and risk metrics. - [HSBC Asset Management coverage](https://fundfactsapi.com/coverage/hsbc): HSBC Asset Management ETF and index fund data from an ISIN: key facts, ongoing charges, full holdings, sector and country exposure and calendar returns as JSON. - [Invesco coverage](https://fundfactsapi.com/coverage/invesco): Invesco UCITS ETF and fund data from any ISIN: key facts, ongoing charges, holdings, sector and country exposure and calendar performance as JSON. - [iShares coverage](https://fundfactsapi.com/coverage/ishares): iShares UCITS ETF data from any ISIN: key facts, TER, full holdings, sector and country breakdown, calendar returns, NAV history and risk metrics as JSON. - [J.P. Morgan Asset Management coverage](https://fundfactsapi.com/coverage/jpmorgan): J.P. Morgan Asset Management fund and active ETF data from an ISIN: key facts, fees, full holdings, exposures, returns and NAV history as JSON. - [Jupiter Asset Management coverage](https://fundfactsapi.com/coverage/jupiter): Jupiter fund data from an ISIN: key facts, ongoing charges, objective, top holdings, sector and country exposure, credit quality and calendar returns as JSON. - [Legal & General (LGIM) coverage](https://fundfactsapi.com/coverage/lgim): L&G (LGIM) ETF and fund data from an ISIN: key facts, OCF, top holdings, sector and country split, calendar returns, monthly NAV series and risk metrics. - [Liontrust coverage](https://fundfactsapi.com/coverage/liontrust): Liontrust fund data from an ISIN: key facts, OCF, top holdings, sector and country exposure, calendar returns and risk metrics for UK OEIC share classes. - [Morgan Stanley Investment Management coverage](https://fundfactsapi.com/coverage/morgan-stanley-im): Morgan Stanley Investment Funds data from an ISIN: key facts, ongoing charges, top holdings, sector and country exposure, calendar returns and risk metrics. - [Nordea Asset Management coverage](https://fundfactsapi.com/coverage/nordea): Nordea 1 SICAV fund data from an ISIN: key facts, fees, daily NAV with benchmark and calendar returns from Nordea's fund-centre data service, plus holdings and fund size from the monthly factsheet. - [Pictet Asset Management coverage](https://fundfactsapi.com/coverage/pictet): Pictet fund data from an ISIN: key facts, fees, top holdings, sector and country split, calendar returns, monthly NAV series and 3-year risk statistics. - [Raiffeisen Capital Management coverage](https://fundfactsapi.com/coverage/raiffeisen): Raiffeisen Capital Management fund data from an ISIN: key facts, ongoing charges, top holdings, sector exposure, calendar returns and risk metrics. - [Robeco coverage](https://fundfactsapi.com/coverage/robeco): Robeco fund data from an ISIN: key facts, ongoing charges, holdings, sector and country exposure, calendar returns and risk metrics as JSON. - [Schroders coverage](https://fundfactsapi.com/coverage/schroders): Schroders fund data from an ISIN: key facts, ongoing charges, objective, sector split, calendar returns and risk metrics for Schroder ISF and UK share classes. - [SPDR coverage](https://fundfactsapi.com/coverage/spdr): SPDR (State Street) UCITS ETF data from an ISIN: key facts, TER, complete holdings, sector split, calendar returns, daily NAV series and risk metrics as JSON. - [T. Rowe Price coverage](https://fundfactsapi.com/coverage/t-rowe-price): T. Rowe Price Funds SICAV data from an ISIN: key facts, objective, top holdings, sector and country exposure, calendar returns and risk metrics as JSON. - [UBS Asset Management coverage](https://fundfactsapi.com/coverage/ubs): UBS ETF and fund data from any ISIN: key facts, TER, largest positions, sector and country split, calendar returns, month-end NAV series and risk metrics. - [Union Investment coverage](https://fundfactsapi.com/coverage/union-investment): Union Investment fund data from an ISIN: key facts, fees, top holdings, sector and country exposure, asset allocation, calendar returns and risk metrics. - [Vanguard coverage](https://fundfactsapi.com/coverage/vanguard): Vanguard UCITS ETF and index fund data from an ISIN: key facts, ongoing charges, holdings, sector and country exposure and calendar performance as JSON. - [Vontobel Asset Management coverage](https://fundfactsapi.com/coverage/vontobel): Vontobel fund data from an ISIN: key facts, ongoing charges, top holdings, sector and country exposure, credit quality, calendar returns and risk metrics. - [WisdomTree coverage](https://fundfactsapi.com/coverage/wisdomtree): WisdomTree UCITS ETF and ETC data from an ISIN: key facts, ongoing charges, holdings, sector and country exposure and calendar returns as JSON. - [Xtrackers coverage](https://fundfactsapi.com/coverage/xtrackers): Xtrackers (DWS) UCITS ETF data from any ISIN: key facts, TER, holdings, sector and country exposure and calendar returns as JSON. ## In other languages - [Deutsch](https://fundfactsapi.com/de): Fondsdaten-API — ETF- und Fondsdaten per ISIN als JSON - [Français](https://fundfactsapi.com/fr): API de données de fonds — données OPCVM et ETF par ISIN en JSON ## Use cases - [Build a fund screener on structured factsheet data](https://fundfactsapi.com/use-cases/fund-screener): Filter thousands of UCITS share classes by asset class, region, risk rating, TER and size using one JSON endpoint per ISIN. Data model, code and caching. - [Portfolio look-through: aggregate holdings, sectors and countries across funds](https://fundfactsapi.com/use-cases/portfolio-look-through): Aggregate underlying holdings, sector and country exposure across every fund a client holds. Data shape, a Python aggregation example and caching notes. - [Fund data for robo-advisors and model portfolios](https://fundfactsapi.com/use-cases/robo-advisor): Universe construction, model portfolio attributes, rebalancing inputs and KID-compliant fund display for digital advice products, from one endpoint per ISIN. - [Client reporting and branded factsheets from structured fund data](https://fundfactsapi.com/use-cases/client-reporting): Generate branded PDF and HTML fund pages, quarterly packs and factsheets from one JSON payload per ISIN, with as-of dates and disclaimers handled correctly. - [Enrich CRM and wealth platform positions with fund facts](https://fundfactsapi.com/use-cases/wealth-crm-enrichment): Attach objective, risk rating, fees and exposure to every fund position in a CRM or PMS. Enrichment pattern, TypeScript example and refresh strategy. - [Build an ETF comparison website with a page per ISIN](https://fundfactsapi.com/use-cases/etf-comparison-website): Data model, SEO structure and refresh strategy for a content site that compares ETFs side by side, with one canonical page per ISIN and per pair. - [Fund data for quant research: pandas, NAV series and exposure matrices](https://fundfactsapi.com/use-cases/quant-research): Pull fund attributes, calendar returns, indexed NAV series and sector exposure into pandas from one endpoint per ISIN, with a reproducible local cache. - [Compliance and suitability monitoring on daily fund data](https://fundfactsapi.com/use-cases/compliance-monitoring): Detect risk-rating drift, concentration changes and stale fund documents with a daily snapshot-and-diff loop over the funds your clients hold. - [Build an AI fund assistant with tool calling over structured data](https://fundfactsapi.com/use-cases/ai-fund-assistant): Expose fund facts as an LLM tool, keep answers grounded in current data, add guardrails against advice, and use the AI companion kit to scaffold it. ## Comparisons - [FundFacts API vs Bloomberg for fund and ETF data](https://fundfactsapi.com/compare/fundfacts-api-vs-bloomberg): When a fund-only, self-serve JSON API is enough and when you need a Bloomberg Terminal or Data License: scope, delivery, onboarding and cost model compared. - [FundFacts API vs Morningstar for fund data](https://fundfactsapi.com/compare/fundfacts-api-vs-morningstar): Morningstar is the reference for fund research and ratings. Compare it with a self-serve ISIN-to-JSON API built from issuer documents: scope, onboarding, cost. - [FundFacts API vs LSEG (Refinitiv / Lipper) for fund data](https://fundfactsapi.com/compare/fundfacts-api-vs-lseg-refinitiv-lipper): Compare LSEG's Lipper fund data and Workspace with a self-serve ISIN-to-JSON API built from issuer documents: scope, classification, delivery and onboarding. - [FundFacts API vs building your own factsheet and KID parser](https://fundfactsapi.com/compare/fundfacts-api-vs-building-your-own-factsheet-parser): What it takes to read factsheets, KIDs and holdings files from dozens of fund houses yourself — formats, drift, QA — versus calling an API that already does it. - [FundFacts API vs stock market data APIs for funds and ETFs](https://fundfactsapi.com/compare/fundfacts-api-vs-stock-market-data-apis): Popular market data APIs are built around equity tickers and prices. See what they return for ETFs and funds, and where an ISIN-keyed factsheet API fits. ## Tools (free, no key) - [ISIN validator](https://fundfactsapi.com/tools/isin-validator): check-digit validation and structure of any ISIN - [ETF overlap checker](https://fundfactsapi.com/tools/etf-overlap): shared holdings between two funds - [Portfolio look-through](https://fundfactsapi.com/tools/portfolio-look-through): aggregated sector, country and fee exposure of a list of funds ## Glossary - [Accumulating vs distributing share class](https://fundfactsapi.com/glossary/accumulating-vs-distributing): Accumulating share classes reinvest income inside the fund; distributing share classes pay it out to investors, usually quarterly, semi-annually or annually. - [Active fund](https://fundfactsapi.com/glossary/active-fund): An active fund is one whose manager selects holdings at their own discretion, aiming to outperform or manage risk against a benchmark rather than replicate it. - [Assets under management (AUM)](https://fundfactsapi.com/glossary/aum): Assets under management is the total market value of the assets a fund holds, net of liabilities, reported either for the whole fund or for a single share class. - [Benchmark](https://fundfactsapi.com/glossary/benchmark): A benchmark is the index a fund is measured against: tracked by index funds and ETFs, or used by active funds as a target or reference for relative performance. - [Country exposure](https://fundfactsapi.com/glossary/country-exposure): Country exposure is the share of a fund's portfolio invested in each country, normally assigned by the issuer's country of domicile or listing as classified by the index provider or fund house. - [Credit quality](https://fundfactsapi.com/glossary/credit-quality): Credit quality describes the creditworthiness of the bonds a fund holds, shown as a breakdown by rating bucket from AAA down to below BBB or as an average rating. - [CUSIP](https://fundfactsapi.com/glossary/cusip): A CUSIP is a nine-character identifier for securities issued in the United States and Canada; it forms the middle nine characters of a US ISIN. - [Distribution yield](https://fundfactsapi.com/glossary/distribution-yield): Distribution yield is the income a fund paid out over the past twelve months divided by its current NAV or market price, expressed as a percentage. - [Duration (modified / effective)](https://fundfactsapi.com/glossary/duration): Duration measures how sensitive a bond fund's value is to interest rates: a modified duration of 5 implies roughly a 5% price fall for a one percentage point rise in yields. - [ETF (exchange-traded fund)](https://fundfactsapi.com/glossary/etf): An ETF is an open-ended fund whose shares trade on a stock exchange during the day, with creations and redemptions by authorised participants keeping the price close to NAV. - [Fund domicile](https://fundfactsapi.com/glossary/fund-domicile): A fund's domicile is the country in which it is legally established and regulated; for UCITS funds sold across Europe it is most often Ireland or Luxembourg. - [Fund factsheet](https://fundfactsapi.com/glossary/factsheet): A fund factsheet is the short document a fund house publishes, usually monthly, summarising a share class's key facts, holdings, exposures, performance and charges. - [Hedged share class](https://fundfactsapi.com/glossary/hedged-share-class): A hedged share class uses currency forwards to reduce the effect of exchange-rate moves between the fund's underlying currencies and the currency of the share class. - [Inception date](https://fundfactsapi.com/glossary/inception-date): The inception date is the day a fund or share class was launched and began calculating a NAV; it determines how much performance history and which risk statistics exist. - [Index fund](https://fundfactsapi.com/glossary/index-fund): An index fund aims to replicate the return of a specified market index rather than beat it, and can be either a listed ETF or a traditional unlisted fund dealt at NAV. - [ISIN](https://fundfactsapi.com/glossary/isin): An ISIN is the 12-character ISO 6166 code that uniquely identifies a security worldwide; each fund share class has its own, which makes it the natural key for fund data. - [KID (Key Information Document, PRIIPs)](https://fundfactsapi.com/glossary/kid): The PRIIPs KID is the standardised three-page pre-contractual document EU retail investors receive, showing a 1–7 summary risk indicator, performance scenarios and costs. - [KIID (Key Investor Information Document, UCITS)](https://fundfactsapi.com/glossary/kiid): The UCITS KIID is the two-page document introduced under UCITS IV that presents a fund's objectives, a 1–7 SRRI risk indicator, charges and ten years of calendar-year past performance. - [Look-through](https://fundfactsapi.com/glossary/look-through): Look-through means analysing a fund by its underlying holdings rather than as a single line, so a portfolio of funds can be aggregated by security, sector, country or asset class. - [Maximum drawdown](https://fundfactsapi.com/glossary/maximum-drawdown): Maximum drawdown is the largest peak-to-trough fall in a fund's value over a period, expressed as a negative percentage, before a new high is reached. - [MiFID II](https://fundfactsapi.com/glossary/mifid-ii): MiFID II is the EU directive, applied since January 2018, that governs investment services and requires firms distributing funds to disclose costs, define target markets and assess suitability. - [NAV (net asset value)](https://fundfactsapi.com/glossary/nav): Net asset value is a fund's assets minus its liabilities; divided by the shares in issue it gives the NAV per share, the price at which unlisted funds are bought and sold. - [OCF (ongoing charges figure)](https://fundfactsapi.com/glossary/ocf): The OCF is the UK label for a fund's ongoing charges: the annual running cost, as a percentage of assets, disclosed in the KIID or KID. - [Ongoing charges](https://fundfactsapi.com/glossary/ongoing-charges): Ongoing charges are the annual recurring costs a UCITS fund deducts from its assets, shown as a percentage in the KIID or KID; the regulatory name for what many call the TER. - [PRIIPs](https://fundfactsapi.com/glossary/priips): PRIIPs is the EU regulation requiring a standardised three-page KID for retail investment products, including UCITS funds since 2023, with an SRI and cost tables. - [Prospectus](https://fundfactsapi.com/glossary/prospectus): The prospectus is a fund's full legal offering document: investment policy, risks, fees, share classes, dealing rules and service providers, approved by the home regulator. - [Replication method (physical, sampled, synthetic)](https://fundfactsapi.com/glossary/replication-method): The replication method is how an index fund or ETF reproduces its index: holding every constituent, a representative sample, or a swap that delivers the index return. - [Sector exposure](https://fundfactsapi.com/glossary/sector-exposure): Sector exposure is the share of a fund's portfolio invested in each industry sector, such as technology, financials or healthcare, usually shown as percentage weights. - [SEDOL](https://fundfactsapi.com/glossary/sedol): A SEDOL is a seven-character security identifier issued by the London Stock Exchange for UK and Irish securities; it is embedded in GB and IE ISINs. - [SFDR (Articles 6, 8 and 9)](https://fundfactsapi.com/glossary/sfdr): SFDR is the EU disclosure regulation under which funds are classified as Article 6, 8 or 9 depending on whether and how they promote sustainability characteristics or objectives. - [Share class](https://fundfactsapi.com/glossary/share-class): A share class is one version of a fund with its own ISIN, currency, distribution policy, fee level and eligibility rules, all backed by the same underlying portfolio. - [Sharpe ratio](https://fundfactsapi.com/glossary/sharpe-ratio): The Sharpe ratio measures return per unit of risk: a fund's excess return over the risk-free rate divided by the volatility of its returns over the same period. - [SRI (summary risk indicator, PRIIPs)](https://fundfactsapi.com/glossary/sri): The SRI is the 1–7 summary risk indicator shown in a PRIIPs KID; it combines a market risk measure with a credit risk measure and replaced the SRRI for EU UCITS in 2023. - [SRRI (synthetic risk and reward indicator, UCITS)](https://fundfactsapi.com/glossary/srri): The SRRI is the 1–7 risk score in a UCITS KIID, assigned purely from the fund's five-year annualised volatility using fixed buckets; it preceded the PRIIPs SRI. - [Swing pricing](https://fundfactsapi.com/glossary/swing-pricing): Swing pricing adjusts a fund's NAV up or down on days of large net flows so that the trading costs caused by subscribing or redeeming investors are borne by them, not the fund. - [TER (total expense ratio)](https://fundfactsapi.com/glossary/ter): The TER is the industry's long-standing name for a fund's annual running costs as a percentage of assets; in UCITS documents the same figure is disclosed as ongoing charges or OCF. - [Ticker](https://fundfactsapi.com/glossary/ticker): A ticker is the short exchange-specific symbol used to trade a listed security; one ETF share class can have several tickers, one per exchange, but only one ISIN. - [Top holdings](https://fundfactsapi.com/glossary/top-holdings): Top holdings are a fund's largest positions by portfolio weight, usually the ten biggest, as published in its factsheet or holdings file at a stated date. - [Tracking difference](https://fundfactsapi.com/glossary/tracking-difference): Tracking difference is the gap between a fund's return and its benchmark's return over a period; for index funds it is the real cost of ownership after fees and frictions. - [Tracking error](https://fundfactsapi.com/glossary/tracking-error): Tracking error is the annualised standard deviation of the difference between a fund's returns and its benchmark's returns; it measures how consistently the fund follows its index. - [UCITS](https://fundfactsapi.com/glossary/ucits): UCITS is the EU regulatory framework for retail investment funds; a UCITS fund meets rules on diversification, liquidity and disclosure and can be sold across the EU under a passport. - [Volatility](https://fundfactsapi.com/glossary/volatility): Volatility is the annualised standard deviation of a fund's returns; it measures how widely returns have swung around their average and underpins the SRRI and Sharpe ratio. - [WKN](https://fundfactsapi.com/glossary/wkn): A WKN (Wertpapierkennnummer) is the six-character German national securities identifier; it is widely used on German retail platforms and embedded in DE ISINs. - [Yield to maturity](https://fundfactsapi.com/glossary/yield-to-maturity): Yield to maturity is the weighted average annualised return a bond fund's holdings would earn if held to maturity at today's prices, before fees; a snapshot of the portfolio's yield. ## Blog - [Fund data providers compared for developers (2026): Morningstar, Bloomberg, Refinitiv, market-data APIs and ISIN-first APIs](https://fundfactsapi.com/blog/fund-data-providers-for-developers-2026): A criteria-based comparison of fund and ETF data sources for developers: enterprise platforms, market-data APIs, issuer documents and ISIN-first APIs. - [How fresh is fund data? As-of dates, publication lags and why a 24-hour cache is enough](https://fundfactsapi.com/blog/how-fresh-is-fund-data-as-of-dates): Daily NAV, monthly holdings, yearly KID: what 'as of' means for each factsheet block, how to store it, and why a daily refresh matches how funds publish. - [ETF NAV vs market price: premiums, discounts and which one your data shows](https://fundfactsapi.com/blog/etf-nav-vs-market-price-premium-discount): Why an ETF has two prices, how creation and redemption keep them close, when premiums and discounts appear, and why factsheet performance is NAV-based. - [What is an SCPI? French real-estate funds explained, and how to get SCPI data programmatically](https://fundfactsapi.com/blog/what-is-an-scpi-and-how-to-get-scpi-data): SCPI definition, capital fixe vs variable, prix de souscription and retrait, taux de distribution, TOF, the documents, and the /api/v1/scpi endpoint. - [Connect Claude, ChatGPT or Cursor to fund data with an MCP server](https://fundfactsapi.com/blog/fund-data-mcp-server-claude-chatgpt-cursor): Set up the FundFacts MCP server in Claude Code, Cursor and ChatGPT: one URL, a bearer key, and tools for fund lookup, comparison, look-through and overlap. - [How to calculate holdings overlap between two ETFs (formula, code and an API)](https://fundfactsapi.com/blog/how-to-calculate-etf-holdings-overlap): The min-weight overlap formula, name matching, why top-ten lists give a lower bound, and how to get the figure from one call to the overlap endpoint. - [PRIIPs KID vs UCITS KIID: what changed in 2023 and what developers can extract](https://fundfactsapi.com/blog/priips-kid-vs-ucits-kiid-what-changed): KIID (2 pages, SRRI, past performance) vs PRIIPs KID (3 pages, SRI, scenarios, cost table): the regulations, the differences, and which fields each yields. - [How to read a fund factsheet, section by section (with the JSON field for each)](https://fundfactsapi.com/blog/how-to-read-a-fund-factsheet): A walkthrough of every block on a fund or ETF factsheet — key facts, risk, fees, holdings, exposures, performance — and the API field that carries each figure. - [What is a UCITS fund? Definition, structure and why the ISIN matters](https://fundfactsapi.com/blog/what-is-a-ucits-fund): UCITS explained: the EU directive, the 5/10/40 and liquidity rules, SICAV, FCP and ICAV forms, domiciles, the KID, and how to read one from an ISIN. - [Physical vs synthetic ETF replication: what the holdings list really shows](https://fundfactsapi.com/blog/physical-vs-synthetic-etf-replication): Full replication, optimised sampling and swap-based ETFs: how each works, what the holdings show, counterparty exposure, and how to detect the method in data. - [ISIN vs ticker vs SEDOL vs WKN vs CUSIP: fund identifiers explained](https://fundfactsapi.com/blog/isin-vs-ticker-vs-sedol-vs-wkn-vs-cusip): What each fund identifier is for, which ones are unique per share class, how they nest inside an ISIN, and which one to use as the key in a database or API. - [Aggregating sector and country exposure across a portfolio of funds](https://fundfactsapi.com/blog/aggregate-sector-and-country-exposure-across-a-portfolio): Weight, normalise and merge each fund's sector and geography exposures into a portfolio view, handle classification mismatches and see what look-through misses. - [Giving LLMs and agents fund data safely: tools, grounding, guardrails](https://fundfactsapi.com/blog/fund-data-for-ai-agents-and-llms): Why factsheet PDFs are poor tool input and JSON is good, a getFund(isin) tool schema, grounding in dataAsOf, refusal rules and an MCP-style tool definition. - [Ireland vs Luxembourg: fund domicile explained, and what the ISIN prefix tells you](https://fundfactsapi.com/blog/ireland-vs-luxembourg-fund-domicile): Why most UCITS are Irish or Luxembourg funds, what IE/LU/FR/DE/GB/US prefixes mean, ICAV vs SICAV, UK OEICs, US 40-Act funds and how to route by prefix in code. - [Generate branded PDF factsheets from fund JSON with Node](https://fundfactsapi.com/blog/generate-pdf-factsheets-from-json): Choose a PDF renderer, lay out key facts, holdings, exposures, returns, the 1–7 risk scale and fees, add the required disclaimers, and batch-generate by ISIN. - [Tracking difference vs tracking error for index funds and ETFs](https://fundfactsapi.com/blog/tracking-difference-vs-tracking-error): Tracking difference is what investors pay, tracking error is what traders watch. Definitions, formulas, drivers, and how to compute TD from calendar returns. - [Fund share classes explained: Acc vs Dist, hedged, retail vs institutional, clean vs bundled](https://fundfactsapi.com/blog/fund-share-classes-acc-dist-hedged-explained): Why one fund has many ISINs: accumulating vs distributing, currency-hedged, retail vs institutional and clean classes, and how to pick the right one in code. - [Cumulative vs annualised vs calendar returns: formulas and conversions](https://fundfactsapi.com/blog/cumulative-vs-annualised-vs-calendar-returns): The three fund return conventions, the formulas behind them, how to convert between them, and the mistakes that produce plausible but wrong numbers. - [Build a fund screener with Next.js and Postgres, step by step](https://fundfactsapi.com/blog/build-a-fund-screener-with-nextjs): Data model, a server-side route handler, a filter table for asset class, risk, TER, AUM and region, sorting, and a cache aligned with the 24-hour refresh. - [SFDR Article 6, 8 and 9 explained for product teams](https://fundfactsapi.com/blog/sfdr-article-6-8-9-explained): What SFDR Article 6, 8 and 9 mean, why it is a disclosure regime and not a label, where the classification appears, and how to store it in your fund data model. - [Volatility, Sharpe ratio and maximum drawdown from a NAV series](https://fundfactsapi.com/blog/volatility-sharpe-max-drawdown-from-nav-series): Compute annualised volatility, Sharpe ratio and maximum drawdown from a fund's indexed NAV series in Python, and see why your figures differ from the factsheet. - [The UCITS KID / PRIIPs KID explained for developers: every field you can extract](https://fundfactsapi.com/blog/ucits-kid-explained-for-developers): What the PRIIPs KID is, how it replaced the UCITS KIID, every section it contains (SRI, scenarios, costs, holding period) and which fields map to API paths. - [Build a fund data app with Cursor or Claude Code in ten minutes](https://fundfactsapi.com/blog/build-fund-app-with-ai-coding-agent): Use an AI coding agent to build a fund comparison page from ISINs. What an AGENTS.md for a financial data API must contain, and the prompts that work. - [Fund performance data explained: cumulative, calendar-year, annualised and rebased to 100](https://fundfactsapi.com/blog/fund-performance-data-explained): The four ways fund performance is reported, what each one hides, how to compute tracking difference, and how to chart fund vs benchmark from API data. - [SRRI and SRI explained: the 1–7 fund risk indicator and how to display it](https://fundfactsapi.com/blog/srri-risk-indicator-explained): What the SRRI / SRI risk indicator on a KIID or PRIIPs KID means, how it is calculated from volatility, how funds move between classes, and how to render it from API data. - [ETF holdings API: fetch top holdings, sector and country exposure as JSON](https://fundfactsapi.com/blog/etf-holdings-api): How to pull ETF and fund holdings, sector weights, geographic exposure and asset allocation from an API, and how to turn them into portfolio look-through and concentration checks. - [How to get fund data from an ISIN with a REST API (curl, JavaScript, Python)](https://fundfactsapi.com/blog/fund-data-api-from-isin): Step-by-step: call a fund data API with an ISIN and get key facts, holdings, risk and performance as JSON. Includes curl, fetch and requests examples and error handling. - [What is an ISIN? A developer's guide to fund and ETF identifiers](https://fundfactsapi.com/blog/what-is-an-isin): ISIN format, check digit, how it differs from tickers, SEDOL, CUSIP and WKN, and how to validate an ISIN in code before you look up fund data. - [TER, ongoing charges and fund fees: how to compare fund costs programmatically](https://fundfactsapi.com/blog/ter-ongoing-charges-fund-fees): TER vs OCF vs total cost of ownership, why 0.20 % and 1.50 % end up 30 % apart over 25 years, and how to parse and rank fund fees from API data. - [Build a fund comparison tool in an afternoon with a fund data API](https://fundfactsapi.com/blog/build-fund-comparison-tool): A practical architecture for a fund screener or comparison page: ISIN input, caching, side-by-side table, charts and a PDF export, with code in Next.js and Python. - [Automating fund factsheets: from PDF scraping to structured JSON](https://fundfactsapi.com/blog/fund-factsheet-automation): Why parsing factsheet PDFs breaks, what a normalised fund data schema looks like, and how wealth managers and fintechs generate client-ready factsheets automatically. ## Optional - [Terms](https://fundfactsapi.com/terms) - [Privacy](https://fundfactsapi.com/privacy) - [Contact](https://fundfactsapi.com/contact)