API documentation

Everything you need to turn an ISIN into a structured fund factsheet: seven endpoints, bearer authentication, predictable JSON, and a monthly request allowance.Updated October 1, 2026

At a glance

curl --max-time 300 https://fundfactsapi.com/api/v1/funds/IE00B4L5Y983 \
-H "Authorization: Bearer ffk_your_api_key"

The response is one JSON document: identity and key facts, TER, the SRRI risk indicator, a rule-based profile (category, risk band, concentration, region and sector tilt), top holdings, sector / country / asset-allocation breakdowns, calendar and annualised returns, a monthly performance series, volatility, Sharpe ratio and max drawdown — read from the documents the fund house publishes and refreshed every 24 hours.

Endpoints

Base URL https://fundfactsapi.com/api/v1. Full details on the endpoints page; the machine-readable version is /openapi.json.

EndpointWhat it doesRequests
GET /funds/{isin}Structured factsheet for one ISIN.1
POST /fundsBatch lookup, up to the plan's batch size per call.1 per fund found
GET /searchName, issuer or ISIN-prefix search over loaded funds.free
GET /resolveISIN of an exchange ticker: CSPX on London, VWCE on Xetra (LSE, SIX, Xetra, Euronext).free
GET /coverageWhether up to 100 ISINs are covered, before spending a request.free
POST /portfolioWeighted look-through across funds (Starter+).1 per position
GET /overlapHoldings overlap between two or more funds (Starter+).1 per ISIN
GET /changesChange feed: tracked fields that moved between refreshes (Scale+).free
GET /webhooksSigned POSTs when a fund changes; manage endpoints (Scale+).free
GET /exportEvery matching fund as NDJSON, optionally gzipped (Scale+).1 per call
POST /extractTurn any KID / KIID / factsheet PDF into the same JSON shape (Pro+).5 per document
POST /factsheetsA one-page factsheet as HTML or PDF, saved with keyless share and embed links.1 (HTML) · 2 (PDF)
GET /mePlan and quota for the calling key.free
GET /demo/funds/{isin}Keyless read of an already-loaded fund (30/min per IP).none, no key
GET /scpi/{idOrIsin}Structured data for one French SCPI (slug, ISIN or name).1
GET /scpiName, manager or ISIN search over the SCPI universe.free

Pages

QuickstartCreate an API key, fetch a fund by ISIN with one curl call and a Bearer header, read the JSON envelope, then switch to the TypeScript or Python SDK.
SDKs & widgetsOfficial JavaScript/TypeScript and Python clients and the React widgets: install, methods, errors, cache, links to npm and GitHub.
AuthenticationAPI keys, the Authorization header, revocation and key limits.
EndpointsGET /funds/{isin}, POST /funds (batch), GET /search, GET /resolve (ticker + exchange to ISIN), GET /coverage, POST /portfolio, GET /overlap, POST /factsheets (HTML / PDF one-pagers), GET /me, the demo endpoint.
Requests & rate limitsThe monthly request allowance, burst limits, overage, the quota headers and 429 handling.
Freshness & sourcingThe 24-hour store, cold loads, where every figure comes from and how the series are computed.
ErrorsEvery error code, when it happens and what to do.
Field referenceEvery key of the data object: identity, profile, breakdowns, performance, metrics, freshness.
AI agents & MCPThe MCP server, llms.txt, the OpenAPI spec and the AI companion kit for Cursor, Claude Code and Codex: how AI agents and coding assistants read fund data.
MCP serverFund data inside Claude and ChatGPT: seven read-only tools, interactive cards, setup for Claude, ChatGPT, Claude Code, Cursor, VS Code, Windsurf and Codex.
SCPIGET /scpi/{idOrIsin} and GET /scpi?q=: structured data for French SCPIs from their management companies' bulletins, DIC and annual reports.

Plans

Free $0 — 5 lookups / month · Starter $9.99/month — 60 requests / month · Pro $49/month — 1,000 requests / month · Scale $249/month — 10,000 requests / month · Enterprise metered at $0.01 per request. One request per fund found; search is free. Details under requests & rate limits and on the pricing page.