What is FundFacts API?
FundFacts API is a REST and MCP API that turns any fund or ETF ISIN into one structured JSON factsheet (fees, risk indicator, holdings, exposures, returns, as-of date) read from the fund house's own documents and refreshed daily. What it returns, what it is for, what it is not, and the plans.Updated 12 September 2026 · by FundFacts APIShort answer
FundFacts API is a REST API (with an MCP server, SDKs and an OpenAPI spec) that turns any fund or ETF ISIN into one structured JSON factsheet: key facts, TER and KID costs, the 1–7 risk indicator, a rule-based classification, top holdings, sector, country, asset and credit-quality breakdowns, calendar and annualised returns, a monthly series, risk statistics, SFDR article and the as-of date. Figures are read from the documents each fund house publishes and refreshed every 24 hours. It covers UCITS funds and ETFs from 60+ fund houses, money-market and most open-end funds, and French SCPIs through a separate endpoint. Free plan: 15 lookups a month, no card; paid plans from $9.99; commercial licence from $49.
In one sentence
FundFacts API turns a fund or ETF ISIN into the fund's factsheet as structured JSON, read from the documents the fund house itself publishes and refreshed daily.
What it returns
The response is one JSON envelope: isin, name, cached, generatedAt, expiresAt, plan, quota and a data object. Inside data you get keyFacts (asset class, currency, fund size, inception date, distribution policy, number of holdings), headlineMetrics (TER, AUM, 3-year volatility and Sharpe, yield to maturity and duration for bond funds), riskRating (the 1–7 KID indicator), profile (a rule-based classification: kind, category, risk band, region focus, sector tilt), topHoldings, sector, geography, region, assetAllocation, creditQuality, maturity, calendarReturns, annualisedReturns, cumulativePerformance, indexedPerformance, metrics (max drawdown, P/E, income yield…), sfdrArticle, costs (PRIIPs entry, exit, ongoing, transaction and performance fees, reduction in yield) and dataAsOf, the date of the underlying figures.
bashcurl -s --max-time 300 https://fundfactsapi.com/api/v1/funds/IE00B4L5Y983 -H "Authorization: Bearer $FUNDFACTS_API_KEY"
What it is for
- Products that show funds to people: screeners, comparison sites, portfolio trackers, robo-advisors, advisor CRMs, client reports.
- Analysis: research notebooks, peer tables, compliance and cost-disclosure checks, competitor monitoring.
- AI assistants and coding agents: an MCP server, tool-shaped JSON, an OpenAPI spec,
llms.txtand a companion kit (AGENTS.md, Cursor rule, Claude Code skill).
The use cases describe each build; the answers hub covers the questions around them.
What it is not
Not a price feed (the series is monthly, for charts and statistics), not a ratings service (the profile classifies, it does not rank), and not a source for stocks, bonds or derivatives (those return 404 fund_not_found).
Surface
| REST | GET /funds/{isin}, POST /funds (batch), GET /search, POST /portfolio, GET /overlap, POST /factsheets, POST /extract, GET /changes, webhooks, GET /export, GET /scpi |
| MCP | https://fundfactsapi.com/api/mcp: get_fund, search_funds, compare_funds, analyze_portfolio, fund_overlap, get_scpi |
| SDKs | @fundfactsapi/sdk (npm), fundfacts (PyPI), @fundfactsapi/widgets (React components) |
| Specs | /openapi.json, /llms.txt, /llms-full.txt |
| Coverage | 60+ fund houses (coverage), French SCPIs (SCPI) |
| Plans | The Free plan gives 15 lookups a month without a card, enough to check the funds you care about. Starter is $9.99 a month for 500 requests with batch calls of 10 ISINs, HTML and PDF factsheets and the AI companion kit. Pro is $49 for 9,000 requests, batches of 50, portfolio look-through, holdings overlap, document extraction and a commercial licence. Scale is $249 for 60,000 requests, batches of 200, a change feed, webhooks and bulk export. |
Where the data comes from
The fund house's product page, monthly factsheet, PRIIPs KID, holdings file and NAV history; for SCPIs the bulletin trimestriel, DIC, note d'information and rapport annuel. No third-party vendor. Every record carries dataAsOf. Names of fund houses are used to identify whose documents are read; FundFacts API is independent of all of them.
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]}'