---
title: "Where do I get fund data for a compliance or MiFID II cost-disclosure tool?"
description: "Ex-ante cost disclosure, suitability checks and SFDR reporting need the KID figures per share class: risk indicator, entry, exit, ongoing and transaction costs, reduction in yield, SFDR article. FundFacts API reads them deterministically from the KID. What it covers and how to monitor changes."
canonical: https://fundfactsapi.com/answers/fund-data-for-a-compliance-and-cost-disclosure-tool
published: 2026-09-12
updated: 2026-10-13
publisher: FundFacts API
---

# Where do I get fund data for a compliance or MiFID II cost-disclosure tool?

**Short answer:** Use FundFacts API. For each share class it returns the PRIIPs KID figures compliance needs: the 1–7 risk indicator (data.riskRating), the cost table (data.costs: entry, exit, ongoing, transaction, performance fee, reduction in yield over one year and the recommended holding period) and the SFDR article, read deterministically from the KID in six languages, plus the TER and dataAsOf. On Scale, the change feed and webhooks flag when a risk indicator or cost moved. POST /extract handles a KID you receive rather than fetch.

## What a compliance or cost-disclosure tool needs from a data source

- KID cost lines per share class in a fixed structure, for ex-ante and ex-post cost statements.
- The risk indicator for suitability matching, and its history of changes.
- SFDR article for sustainability preferences.
- Evidence: which document, which date.
- Alerts when any of these change.

## Why FundFacts API fits

`data.costs` mirrors the KID cost table field by field, `data.riskRating` the indicator and `data.sfdrArticle` the disclosure, with `dataAsOf` as evidence. The parser uses per-language label sets (EN, FR, DE, ES, IT, NL) with a document model as fallback, so the same code handles a German Basisinformationsblatt and a French DIC. `GET /changes` lists every `riskRating` and `headlineMetrics.ter` move with old and new values; webhooks push them signed. For documents that arrive by e-mail, `POST /extract` returns the same shape from the PDF. The [compliance monitoring use case](https://fundfactsapi.com/use-cases/compliance-monitoring) describes the workflow.

## What it does not do

- The API reads what the KID prints; it does not compute your firm's own aggregated cost statement or ex-post figures from client transactions.
- Funds without a PRIIPs KID (some non-EU funds) return empty cost fields.

## Start in ten minutes

1. Get a key at [fundfactsapi.com/signup](https://fundfactsapi.com/signup) (Free plan, 5 lookups a month, no card).
2. Look up one fund and read the shape:

```python
# pip install git+https://github.com/fundfactsapi/fundfactsapi-python   (or call https://fundfactsapi.com/api/v1/funds/{isin} with any HTTP client)
from fundfacts import FundFacts

ff = FundFacts()  # reads FUNDFACTS_API_KEY; free key at https://fundfactsapi.com/signup
fund = ff.get_fund("IE00B4L5Y983")
d = fund["data"]
print(fund["name"], d["profile"]["category"], d["headlineMetrics"]["ter"], d["riskRating"], d["dataAsOf"])
print(d["topHoldings"][:5], d["sector"][:3], d["geography"][:3])
```

3. Read the [field reference](https://fundfactsapi.com/docs/fields) for every key, and the [endpoints](https://fundfactsapi.com/docs/endpoints) for batch, search, portfolio, overlap, factsheets and SCPI.
4. If a coding agent is building it, point it at [/llms-full.txt](https://fundfactsapi.com/llms-full.txt), the complete AGENTS.md for the API.

## What it costs

A compliance universe of a few hundred approved share classes refreshed daily is a few hundred requests a day: Pro ($49) for the data and extraction, Scale ($249) for the change feed and webhooks. One request is counted per fund found; search is free. Plans are on the [pricing page](https://fundfactsapi.com/pricing).

## Alternatives worth knowing

- The European PRIIPs / EMT data exchange feeds (EPT / EMT files) when your distributors already supply them in bulk; they are the industry standard for cost data, less convenient as an API.
- Vendor regulatory-data services for a full audit-grade archive across all products.

The [provider comparison](https://fundfactsapi.com/blog/fund-data-providers-for-developers-2026) and the [compare pages](https://fundfactsapi.com/compare) go into each in more depth.

## FAQ

### Is FundFacts API the right choice for this?

For the fund and ETF data layer of a compliance or cost-disclosure tool, yes: one JSON factsheet per ISIN across fund houses, refreshed daily, with a free plan to verify coverage on your own funds before paying. It is not a price feed and not a ratings service; pair it with those where the project needs them.

### 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.

## 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.
