---
title: "How do I get the volatility and Sharpe ratio of a fund by ISIN?"
description: "Three-year annualised volatility and Sharpe ratio for any fund or ETF from its ISIN as JSON: data.headlineMetrics.volatility3y and .sharpe3y, computed from the NAV series when published."
canonical: https://fundfactsapi.com/answers/get-volatility-and-sharpe-ratio-of-a-fund
published: 2026-09-12
updated: 2026-10-13
publisher: FundFacts API
---

# How do I get the volatility and Sharpe ratio of a fund by ISIN?

**Short answer:** Call GET https://fundfactsapi.com/api/v1/funds/{isin} with a bearer API key and read data.headlineMetrics.volatility3y in the JSON response (related fields: data.headlineMetrics.sharpe3y, data.metrics.volatility3y / sharpe3y). Where the fund house prints its own figures they are returned as published; otherwise they are computed from its total-return history over the last 36 complete months (volatility of monthly returns annualised, Sharpe ratio over a same-currency money-market fund, none for money-market funds). The Free plan gives 5 lookups a month with no card, and the keyless demo endpoint shows the shape for an already-loaded fund.

## Where it is in the response

| Path | Type | Meaning |
|---|---|---|
| `data.headlineMetrics.volatility3y` | `string` | Annualised standard deviation of monthly returns over three years, e.g. "11.8%". |
| `data.headlineMetrics.sharpe3y` | `string` | Three-year Sharpe ratio, e.g. "1.68". |
| `data.metrics.volatility3y / sharpe3y` | `string` | Same figures in the detailed metrics block. |

Sample for iShares Core MSCI World UCITS ETF ([IE00B4L5Y983](https://fundfactsapi.com/funds/IE00B4L5Y983)):

```json
"headlineMetrics": { "volatility3y": "11.8%", "sharpe3y": "1.68" },
"metrics": { "maxDrawdown": "-16.5%" }
```

## Where the figure comes from

Where the fund house prints its own figures they are returned as published; otherwise they are computed from its total-return history over the last 36 complete months (volatility of monthly returns annualised, Sharpe ratio over a same-currency money-market fund, none for money-market funds). The [freshness page](https://fundfactsapi.com/docs/freshness) states the formulas, and [this guide](https://fundfactsapi.com/blog/volatility-sharpe-max-drawdown-from-nav-series) shows how to recompute them from `indexedPerformance.points`.

## The request

```bash
curl -s --max-time 300 https://fundfactsapi.com/api/v1/funds/IE00B4L5Y983 \
  -H "Authorization: Bearer $FUNDFACTS_API_KEY" | jq '.data.headlineMetrics | {volatility3y, sharpe3y}'
```

```python
import os, requests
r = requests.get("https://fundfactsapi.com/api/v1/funds/IE00B4L5Y983",
                 headers={"Authorization": f"Bearer {os.environ['FUNDFACTS_API_KEY']}"}, timeout=300)
fund = r.json()
print(fund["name"], fund['data']['headlineMetrics']['volatility3y'])
```

```javascript
const res = await fetch("https://fundfactsapi.com/api/v1/funds/IE00B4L5Y983", {
  headers: { Authorization: `Bearer ${process.env.FUNDFACTS_API_KEY}` },
  signal: AbortSignal.timeout(300_000),
});
const fund = await res.json();
console.log(fund.name, fund.data.headlineMetrics.volatility3y);
```

Sign up at [fundfactsapi.com/signup](https://fundfactsapi.com/signup) for a key; the Free plan is 5 lookups a month with no card. Without a key, `GET https://fundfactsapi.com/api/v1/demo/funds/IE00B4L5Y983` returns the same payload for funds already in the store (30 calls a minute per IP; it never loads a new fund).

## Caveats

- Funds younger than three years return empty strings; check `keyFacts.inception`.
- Sharpe ratios computed by different providers differ with the risk-free rate they assume; compare funds within one source.

## Several funds at once

`POST /funds` with `{ "isins": ["…", "…"], "wait": true }` returns the same payload for up to 10 ISINs per call on Starter, 50 on Pro and 200 on Scale. One request is counted per fund found. `X-RateLimit-Remaining` on every response tells you how many are left this month; a `429 rate_limited` response carries `Retry-After`. Search and `/me` are free.

A fund never loaded before is read on demand from the documents the fund house publishes. That first call takes 15 seconds to about 3 minutes; set your client timeout to 300 seconds and do not fire a second request for the same ISIN while the first is running. Every later call returns from the store in well under a second with `cached: true`; past 24 hours the payload comes back flagged `stale: true` while a refresh runs in the background, and nothing older than 7 days is served without a new read.

Everything else in the payload is listed in the [field reference](https://fundfactsapi.com/docs/fields).

## FAQ

### Do I need a credit card to try it?

No. The Free plan is 5 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; 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.
