The fund data API that turns any ISIN into a complete factsheet
Key facts, holdings, sector and country exposure, risk metrics, fees and performance versus benchmark, normalised into one JSON schema and refreshed every 24 hours. One REST call. No enterprise data licence.Free plan included · no credit card ·GET /api/v1/funds/{isin}Everything on the factsheet, none of the PDF parsing
Built for wealth managers, robo-advisors, fintechs and research teams who need reliable fund data without negotiating enterprise data licences.Factsheet-grade fields
Objective, asset class, fund size, inception, distribution policy, manager, benchmark, TER, SRRI risk rating and style box: the same key facts a PDF factsheet shows, as typed JSON.Holdings & exposure
Top holdings with weights, country, region and sector breakdowns, credit quality and maturity buckets for bond funds, instrument mix for money-market funds.Performance you can chart
Calendar-year returns, trailing annualised returns and a full cumulative series for fund and benchmark, plus a ready-to-plot version rebased to 100.Risk statistics
3-year volatility and Sharpe ratio, maximum drawdown, P/E, income yield, yield to maturity, duration and equity correlation where they apply.Always under 24 hours old
Each ISIN is crawled on demand and cached for one day. Responses tell you exactly when the data was generated and when it expires.One endpoint, any fund
GET /api/v1/funds/{isin} covers UCITS funds, ETFs, money-market and open-end funds worldwide. No provider contracts, no per-field pricing.One request in, a full factsheet out
This is a real response for iShares Core MSCI World ETF USD Acc (IE00B4L5Y983), produced by our crawler. Only the performance series are shortened here; the live API returns all 204 monthly points.curl https://fundfactsapi.com/api/v1/funds/IE00B4L5Y983 \-H "Authorization: Bearer ffk_live_your_api_key"
{"isin": "IE00B4L5Y983","name": "iShares Core MSCI World ETF USD Acc","cached": true,"generatedAt": "2026-09-02T13:21:56.645Z","expiresAt": "2026-09-03T13:21:56.645Z","plan": "pro","quota": {"limit": 100,"remaining": 99,"resetAt": "2026-09-03T13:21:56.645Z"},"data": {"investmentObjective": "The investment objective of the Fund is to provide investors with a total return, taking into account both capital and income returns, which reflects the return of the MSCI World Index. In order to achieve this investment objective, the investment policy of this Fund is to invest in a portfolio of equity securities that as far as possible and practicable consists of the component securities of the MSCI World Index, this Fund’s Benchmark Index.","securityType": "ETF","structure": "ETF","keyFacts": {"assetClass": "Equities","currency": "USD","aum": "USD 151.7bn","inception": "Sep 25, 2009","subAsset": "Global Large-Cap Blend Equity","distribution": "Accumulating","holdings": 1344,"manager": "Not Disclosed"},"riskRating": 4,"managerTenure": "Lead manager · since 2009","topHoldings": [{"name": "NVIDIA Corp","weight": 5.43},{"name": "Apple Inc","weight": 5.08},{"name": "Microsoft Corp","weight": 3.92},{"name": "Amazon.com Inc","weight": 2.79},{"name": "Alphabet Inc Class A","weight": 2.18},{"name": "Broadcom Inc","weight": 1.79},{"name": "Alphabet Inc Class C","weight": 1.71},{"name": "Meta Platforms Inc Class A","weight": 1.37},{"name": "Micron Technology Inc","weight": 1.14},{"name": "Tesla Inc","weight": 1.06}],"geography": [{"label": "North America","weight": 75.54},{"label": "Europe Developed","weight": 12.26},{"label": "Japan","weight": 5.78},{"label": "United Kingdom","weight": 3.34},{"label": "Australasia","weight": 1.66}],"sector": [{"label": "Technology","weight": 30.5},{"label": "Financial Services","weight": 16.34},{"label": "Industrials","weight": 10.83},{"label": "Healthcare","weight": 9.27},{"label": "Consumer Cyclical","weight": 8.79}],"creditQuality": [],"assetAllocation": [],"region": [{"label": "North America","weight": 75.54},{"label": "Europe Developed","weight": 12.26},{"label": "Japan","weight": 5.78},{"label": "United Kingdom","weight": 3.34},{"label": "Australasia","weight": 1.66}],"instrument": [],"maturity": [],"strategy": [],"exposure": [],"calendarReturns": {"years": ["2021","2022","2023","2024","2025","2026"],"fund": [21.9,-18,23.9,18.7,21.2,13.5],"benchmark": [null,null,null,null,null,null]},"headlineMetrics": {"yieldToMaturity": "0.0%","modifiedDuration": "","ter": "0.20%","aum": "USD 151.7bn","volatility3y": "11.9%","sharpe3y": "1.21"},"metrics": {"peRatio": "18.7x","incomeYield": "1.62%","volatility3y": "12.24%","sharpe3y": "1.21","yieldToMaturity": "0.0%","effectiveDuration": "","effectiveMaturity": "","averageRating": "","sevenDayYield": "0.0%","wam": "","wal": "","maxDrawdown": "-9.29%","equityCorrelation": "0.98","equityBondSplit": ""},"styleBox": {"row": 0,"col": 1},"cumulativePerformance": [{"date": "2026-03","fund": 406.901429,"benchmark": 409.855785},{"date": "2026-04","fund": 455.496433,"benchmark": 458.76036},{"date": "2026-05","fund": 480.725749,"benchmark": 484.195739},{"date": "2026-06","fund": 476.541758,"benchmark": 480.003871},{"date": "2026-07","fund": 479.577257,"benchmark": 482.980334},{"date": "2026-08","fund": 496.644182,"benchmark": 498.003528}],"indexedPerformance": {"points": [{"date": "2026-03","fund": 506.9,"index": 509.86},{"date": "2026-04","fund": 555.5,"index": 558.76},{"date": "2026-05","fund": 580.73,"index": 584.2},{"date": "2026-06","fund": 576.54,"index": 580},{"date": "2026-07","fund": 579.58,"index": 582.98},{"date": "2026-08","fund": 596.64,"index": 598}],"hasIndex": true},"annualisedReturns": [{"label": "1 Year","fund": 19.68,"index": 19.548757},{"label": "3 Years p.a.","fund": 17.11,"index": 19.781362},{"label": "5 Years p.a.","fund": 11.45,"index": 10.981489},{"label": "10 Years p.a.","fund": 12.82,"index": 12.900739},{"label": "Since Inception","fund": 11.01,"index": null}],"benchmarkName": "MSCI World NR USD","dataAsOf": "","generatedAt": "2026-09-02T13:21:56.645Z"}}
Every field a factsheet needs, already normalised
Thedata object follows one schema for every fund, whatever the asset class or provider. Panels that do not apply are simply empty.Identity & key facts
Who issues the fund, what it invests in, how large it is and how it is structured.investmentObjectivesecurityTypestructureshareClasskeyFacts.assetClasskeyFacts.subAssetkeyFacts.currencykeyFacts.aum+6 moreRisk rating & style
Regulatory risk indicator and the 3×3 equity/bond style box.riskRatingstyleBoxPortfolio breakdowns
Every breakdown is an array of { label, weight } where weight is a percentage (0–100). Arrays are empty when the panel does not apply to the asset class.topHoldingsgeographyregionsectorcreditQualityassetAllocationinstrumentmaturity+2 morePerformance
Calendar-year, cumulative, indexed and annualised returns for the fund and its benchmark.calendarReturns.yearscalendarReturns.fundcalendarReturns.benchmarkcumulativePerformanceindexedPerformance.pointsindexedPerformance.hasIndexannualisedReturnsHeadline metrics & risk statistics
Values are strings formatted as published (with % or units) so nothing is lost in conversion. Fields that do not apply to the asset class are empty strings.headlineMetrics.terheadlineMetrics.aumheadlineMetrics.volatility3yheadlineMetrics.sharpe3yheadlineMetrics.yieldToMaturityheadlineMetrics.modifiedDurationmetrics.peRatiometrics.incomeYield+12 moreFreshness
When the underlying figures are dated and when the payload was produced.dataAsOfgeneratedAtSimple pricing that scales with your usage
Every plan returns the same complete factsheet JSON. Pick the request volume you need; upgrade or cancel any time.Free
$0
forever- 1 request per hour
- Full structured factsheet JSON
- 24-hour fresh data cache
- Personal API key
- Complete field documentation
Pro
Most popular$49
/ month- 100 requests per day
- Full structured factsheet JSON
- 24-hour fresh data cache
- Multiple API keys
- Usage dashboard
- E-mail support
Scale
$299
/ month- 1,000 requests per day
- Full structured factsheet JSON
- 24-hour fresh data cache
- Multiple API keys
- Usage dashboard
- Priority support
Frequently asked questions
An ISIN is the 12-character International Securities Identification Number that uniquely identifies a security, for example IE00B4L5Y983. FundFacts API supports UCITS funds, ETFs, money-market funds and most open-end funds that are covered by public fund data providers, worldwide.
Each ISIN is crawled on demand and stored for 24 hours. Requests within that window return the cached payload instantly and are flagged with cached: true. After 24 hours the next request triggers a fresh crawl, so you never receive data older than a day.
Cached responses return in well under a second. A cold request has to collect the underlying documents and run structured extraction, which typically takes 1 to 3 minutes. Keep your HTTP timeout generous (we recommend 300 seconds) or pre-warm the ISINs you care about.
We aggregate publicly available fund information (fund documents, factsheets and market data) and normalise everything into a single JSON schema. Every payload carries the 'as of' date of the underlying figures so you know exactly how current each number is.
Yes. A request is any authenticated call to the funds endpoint, whether it is served from cache or freshly crawled. Invalid-key and rate-limited responses do not consume quota.
Yes, all paid plans allow commercial use inside your own applications and reports. Redistribution of the raw dataset as a competing data feed is not permitted. The data is informational and does not constitute investment advice.
You receive a 404 with code fund_not_found and an empty data skeleton, so your integration can handle equities, bonds or delisted securities gracefully.
Yes. For volumes above 1,000 requests a day we offer a metered plan billed monthly on invoice, with dedicated support. Contact us from the billing page.