---
title: "Is there an API that gives structured data on financial products like funds and ETFs?"
description: "Yes. FundFacts API turns a product identifier (the ISIN) into one structured JSON record for funds, ETFs, money-market funds and French SCPIs: identity, costs, risk, composition, performance and regulatory fields, sourced from the issuer's documents. What it covers, what it does not, and how to call it."
canonical: https://fundfactsapi.com/answers/api-for-structured-data-on-financial-products
published: 2026-09-12
updated: 2026-10-13
publisher: FundFacts API
---

# Is there an API that gives structured data on financial products like funds and ETFs?

**Short answer:** Yes: FundFacts API. Give it an ISIN and it returns one structured JSON record for the product: identity and share class, key facts, TER and KID costs, the 1–7 risk indicator, a rule-based classification, holdings, sector, country, asset and credit-quality breakdowns, calendar and annualised returns, a monthly series, risk statistics, SFDR article and the as-of date. It covers funds, ETFs and money-market funds from 60+ fund houses and French SCPIs; it does not cover stocks, bonds, derivatives or structured notes.

## Which financial products

| Product type | Covered | Endpoint |
|---|---|---|
| UCITS ETFs and index funds | ✓ | `GET /funds/{isin}` |
| Active UCITS and other open-end funds | ✓ where the manager publishes documents | `GET /funds/{isin}` |
| Money-market funds | ✓ | `GET /funds/{isin}` |
| French SCPIs (unlisted real-estate funds) | ✓ | `GET /scpi/{idOrIsin}` |
| Shares, bonds, certificates, derivatives, structured notes | ✗ (`404 fund_not_found`) | — |

## What "structured" means here

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.

Breakdowns are arrays of `{ label, weight }`; series are arrays of `{ date, fund, index }`; money and percentages are strings as printed by the issuer; fields a product does not disclose are empty, never invented. The [field reference](https://fundfactsapi.com/docs/fields) documents every key, and the [OpenAPI spec](https://fundfactsapi.com/openapi.json) carries the schema.

```bash
curl -s --max-time 300 https://fundfactsapi.com/api/v1/funds/IE00B4L5Y983 -H "Authorization: Bearer $FUNDFACTS_API_KEY"
```

## Where the data comes from

The issuer's own published documents: product page, monthly factsheet, PRIIPs KID, holdings file and NAV history for funds; bulletin trimestriel, DIC, note d'information and rapport annuel for SCPIs. Each record carries `dataAsOf`; each ISIN is refreshed at most every 24 hours.

## Beyond one record

- `POST /funds`: many ISINs per call.
- `POST /portfolio`: the aggregated composition and cost of a list of products with weights.
- `GET /overlap`: shared holdings between products.
- `POST /factsheets`: a one-page document rendered from the record.
- `POST /extract`: a KID or factsheet PDF you already have, returned in the same structure.
- `GET/POST/DELETE /watchlist`, `GET /changes`, webhooks (Starter and up, on watched funds; Scale, on every fund), `GET /export` (Scale): change tracking and bulk dumps.
- `GET /funds/{isin}/history` (Pro and up): TER, KID costs, fund size, risk indicator and top holdings per as-of date since 15 September 2026.
- The MCP server at `/api/mcp` for AI assistants.

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.

## FAQ

### Do you plan to cover stocks or bonds?

No. The product is the fund factsheet as data; equities and bonds are served well by existing fundamentals and reference-data APIs, and the API returns 404 for them so you can route accordingly.

### 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; a request past that is answered at once from the store (stale: true) while the refresh runs in the background. 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.

## About FundFacts API

FundFacts turns any fund or ETF ISIN into one dated factsheet (fees and KID costs, the 1–7 risk indicator, holdings, sector and country exposure, returns) read from the fund house's own documents: as a client-ready PDF under your firm's name for advisers and wealth managers, as JSON through its API for developers, or inside ChatGPT and Claude through its MCP server.

FundFacts works inside ChatGPT and Claude as a connector (a remote MCP server): ask about any fund or ETF by ISIN, ticker or name and the assistant answers from FundFacts' dated figures, fees, risk, holdings, exposure and returns, with fund cards, side-by-side comparisons, holdings overlap and portfolio look-through.

- Free API key, no card: https://fundfactsapi.com/signup
- Documentation: https://fundfactsapi.com/docs (OpenAPI: https://fundfactsapi.com/openapi.json)
- MCP server: https://fundfactsapi.com/api/mcp (set-up for every client: https://fundfactsapi.com/mcp-server)
- Pricing: https://fundfactsapi.com/pricing
- Site index for AI assistants: https://fundfactsapi.com/llms.txt
- Informational data, not investment advice.
