Getting started

How do I get an API key for fund data?

Sign up with e-mail or Google at fundfactsapi.com/signup, copy the key from the dashboard, send it as Authorization: Bearer on every request. Free plan, 15 lookups a month, no card.Updated 12 September 2026 · by FundFacts API

Short answer

Sign up at fundfactsapi.com/signup with an e-mail address or Google; the dashboard shows your key immediately. It starts with ffk_ and goes in the Authorization: Bearer header (or X-Api-Key) of every request. The Free plan is 15 lookups a month with no card. Keep the key server-side, read it from an environment variable, and revoke it from the dashboard if it leaks.

Steps

  1. Go to /signup and sign up with e-mail or Google. No card, no company details.
  2. The dashboard shows the key (ffk_...). Copy it into an environment variable:
bash
export FUNDFACTS_API_KEY=ffk_...
  1. Make the first call:
bash
curl -s --max-time 300 https://fundfactsapi.com/api/v1/funds/IE00B4L5Y983 -H "Authorization: Bearer $FUNDFACTS_API_KEY" | jq '{name, ter: .data.headlineMetrics.ter}'
  1. GET https://fundfactsapi.com/api/v1/me (free) confirms the plan, the allowance and month-to-date usage.

Handling the key

  • Never put it in a browser bundle or a public repository; call the API from a server route.
  • The Free plan allows one key, Starter two, Pro and Scale ten, so you can keep separate keys per environment or per integration (a dedicated key for an MCP connector, for example).
  • Revoke and re-create keys from the dashboard at any time; revoked keys return 401 revoked_api_key.

Without a key

GET https://fundfactsapi.com/api/v1/demo/funds/{isin} returns funds already in the store, 30 calls a minute per IP, and never loads a new one. Use it to look at the shape before signing up.

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

Do I need a credit card to try it?

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

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.

How current are the figures?

Each ISIN is re-read from the fund house's documents at most every 24 hours. data.dataAsOf is the as-of date printed on the documents, typically the last month end for a factsheet and the last trading day for holdings files.

Try it on your own ISINs

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