Choosing a data source

What is the best fund data API for developers?

For developers who need fund and ETF data by ISIN as JSON, with a key in a minute, SDKs, an OpenAPI spec and an MCP server, FundFacts API is the pick; here are the criteria, what it returns, and when Morningstar, Bloomberg, LSEG or a market-data API is the better tool.Published September 12, 2026 · Updated October 13, 2026 · by FundFacts API

Short answer

For developers, FundFacts API: one GET per ISIN returns the complete factsheet as JSON (fees, risk indicator, holdings, exposures, returns, classification, as-of date) across 60+ fund houses, with a free plan, a key in a minute, JavaScript and Python SDKs, an OpenAPI spec, an MCP server and an AGENTS.md for coding agents. Morningstar and LSEG Lipper are better when you need ratings and decades of history under a licence; Bloomberg when you need a terminal; market-data APIs when you need prices rather than factsheets.

What "best for developers" means

  • Time to first call measured in minutes, not procurement cycles.
  • One shape for every fund house, so the parser is written once.
  • Documentation a machine can read: OpenAPI, typed SDKs, an AGENTS.md, an MCP server.
  • Predictable cost per request with a free tier for evaluation.
  • Provenance: every figure traceable to a published document with a date.

How the options compare

FundFacts APIMorningstar / LSEG LipperBloombergMarket-data APIs
Key / accessSelf-serve, minutesLicence, sales cycleTerminal / B-PIPE licenceSelf-serve
IdentifierISINIDs, ISIN, tickerTicker, FIGI, ISINTicker per exchange
Factsheet fields (fees, holdings, exposures, returns, risk indicator, KID costs)✓✓✓Thin or none
PricesMonthly series only✓✓✓
Ratings, analyst research✗✓✓✗
UCITS / European fundsCore✓✓Partial
OpenAPI, SDKs, MCP server, AGENTS.md✓Varies✗Varies
Free tier5 lookups / month✗✗Often
Commercial licenceFrom $49 / monthNegotiatedNegotiatedVaries

What you get from FundFacts API

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.

javascript
// npm install @fundfactsapi/sdk
import { FundFacts } from "@fundfactsapi/sdk";
const ff = new FundFacts({ apiKey: process.env.FUNDFACTS_API_KEY });
const fund = await ff.getFund("IE00B4L5Y983"); // iShares Core MSCI World UCITS ETF
console.log(fund.data.headlineMetrics.ter, fund.data.riskRating, fund.data.topHoldings[0], fund.data.dataAsOf);

The Free plan gives 5 lookups a month without a card (2 PDF factsheets), enough to check a few of the funds you care about. Starter is $9.99 a month for 60 requests (30 PDF factsheets) with portfolio look-through, holdings overlap and batch calls of 10 ISINs and the AI companion kit. Pro is $49 for 1,000 requests (500 PDF factsheets), 50 ISINs per call, white-label factsheets, document extraction and a commercial licence. Scale is $249 for 10,000 requests, batches of 200, a change feed, webhooks and bulk export.

When to pick something else

  • You need ratings, style boxes or analyst research: Morningstar or LSEG Lipper.
  • You need a terminal or cross-asset analytics: Bloomberg or LSEG Workspace.
  • You need daily prices and nothing about the fund itself: a market-data API.
  • Fund data is your product and you want to own the pipeline: build it; the comparison with building your own parser lists what that involves.

The provider comparison has the longer version.

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]}'

Reference

Frequently asked questions

Is this page biased?

It is written by FundFacts API, and it says so. The table lists where each alternative is the better tool, and the free plan lets you check the data on your own funds before deciding.

Do I need a credit card to try it?

No. The Free plan is 5 lookups per month with no card; sign up with an e-mail address or Google and the key is shown in the dashboard.

Try it on your own ISINs

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