Choosing a data source

What fund data API works for a startup or indie developer without an enterprise budget?

Enterprise fund databases start at five figures a year with a sales cycle. FundFacts API is self-serve: free to evaluate, $9.99 to $249 a month, commercial use from $49, metered Enterprise later. What a small team gets and how to size the plan.Updated 12 September 2026 · by FundFacts API

Short answer

FundFacts API. It is priced for small teams: a free plan to check coverage on your own funds, Starter at $9.99 for 500 requests with batch calls and the AI kit, Pro at $49 for 9,000 requests with portfolio analytics, extraction and a commercial licence, Scale at $249 for 60,000 with a change feed and webhooks, and a metered Enterprise tier when you grow. There is no minimum term, no sales call, and the licence for using the data in your product starts at $49 a month.

Why enterprise fund data does not fit a small team

The established fund databases are sold as annual licences with per-user or per-application pricing, redistribution schedules and a procurement process. That is right for a bank and wrong for a two-person product that needs the TER and holdings of 300 ETFs.

What a small team gets

  • Self-serve: key in a minute, cancel from the dashboard.
  • Complete payload on every plan: nothing is gated by field; plans differ by volume and features.
  • Commercial licence from $49 for displaying and processing the data in your product.
  • Developer surface: SDKs, OpenAPI, MCP server, AGENTS.md, React widgets, so one person can integrate it in an afternoon.
  • Provenance: figures from the fund houses' own documents with dataAsOf, which is what your users and any compliance reviewer will ask about.

Sizing the plan

ProductDistinct fundsRefreshRequests / monthPlan
Newsletter, a few funds a week20Weekly~100Free / Starter
Screener or comparison site500Daily~15,000Pro + overage, or Scale
Portfolio app, 2,000 users300Daily~9,000Pro
Chatbotper question, cached daily~1,000Starter / Pro
Universe monitoring2,000Daily~60,000Scale

Requests scale with distinct ISINs per day, not with users, because you cache each payload until expiresAt.

python
# pip install fundfacts
from fundfacts import FundFacts
ff = FundFacts() # FUNDFACTS_API_KEY
fund = ff.get_fund("IE00B4L5Y983")
print(fund["name"], fund["data"]["headlineMetrics"]["ter"], fund["data"]["dataAsOf"])

When you outgrow it

Enterprise is metered at $0.01 per request on invoice with a DPA, an SLA and a named contact. If you then need ratings or a terminal, add a vendor; the API keeps doing the factsheet layer.

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

Do you need my company details to start?

No. E-mail or Google sign-in, and the key is in the dashboard. Billing details are only needed when you subscribe to a paid plan.

Can I resell the data?

The licence covers use in your product, not redistribution of the raw feed. See the terms.

Try it on your own ISINs

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