---
title: "Get a fund's performance"
method: GET
path: "/v1/fund/performance"
tags: ["Funds"]
---

# Get a fund's performance

`GET /v1/fund/performance`

## Request

- Base URL: `https://api.fiscal.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.fiscal.ai/v1/fund/performance`
- Auth: API key in query parameter `apiKey`

Returns a fund's performance per security: one total return per window, the most recent, each saying its basis and whether the fund states it or we calculated it from daily closes and distributions, and, for listed securities, 52-week range, average volume and the premium or discount to NAV. Returns are decimal fractions. Takes the same identifiers as `/v1/fund/profile`.

## Query parameters

- `apiKey` string: API Key (alternatively send via X-Api-Key header)
- `ticker` string: Share-class ticker. A ticker funds on different exchanges share resolves to the fund still offered, then the US one; add `exchange` or `micCode` for another exchange's
- `exchange` string: Exchange code the ticker trades on, as the company endpoints name it (`NYSEARCA`, `NASDAQ`, `XCBO`, `TSX`); use with `ticker`
- `micCode` string: MIC of the exchange the ticker trades on, operating or segment (`XNYS` or `ARCX` for NYSE Arca, `XTSE`); use with `ticker`
- `fscl` string: Fiscal.ai fund (FSCLF…) or share-class (FSCLK…) identifier
- `cusip` string: Requires CUSIP/ISIN license. Share-class CUSIP
- `isin` string: Requires CUSIP/ISIN license. Share-class ISIN
- `secSeriesId` string: SEC series id (S000…)
- `secClassId` string: SEC class id (C000…)
- `cik` string: CIK of a single-fund registrant, zero-padded or not

## Response `200`

Fund performance

- object
  - `fundFiscalIdentifier` string, required: Fiscal.ai stable identifier of the fund served; an identifier forwarded to a successor fund returns the successor's.
  - `securities` object[], required: The securities the profile lists, in its order: the share classes the fund still offers.
    - `securityFiscalIdentifier` string, required: Fiscal.ai stable identifier of the security (FSCLK…).
    - `ticker` string, nullable, required: Ticker of the security, listed or not.
    - `shareClassName` string, nullable, required: Name of the share class, such as `Class A` or `Admiral Shares`.
    - `returns` object[], required: The security's total returns, one per window: the most recent, with ties on the end date going to NAV over price and the fund's own over a calculated one; a closed-end, interval or tender-offer fund serves NAV wherever it exists.
      - `window` '1y' | '3y' | '5y' | '10y' | 'since_inception' | 'ytd' | '1m' | '3m' | '6m', required: Return window: `1y`, `3y` (Canadian funds), `5y`, `10y` and `since_inception`, annualized past one year; `ytd`, `1m`, `3m` and `6m`, cumulative. Values may be added.
      - `basis` 'nav' | 'price' | 'null', nullable, required: `nav`, the net asset value, or `price`, the market price. A return the fund states without naming a basis is its NAV return; null when its source names one we do not recognise.
      - `value` number, required: Total return over the window, distributions included, as a decimal fraction.
      - `asOf` string, date, required: Last day of the window.
      - `isCalculated` boolean, required: Whether we calculated the return from daily closes and distributions; false when the fund states it.
    - `stats` object, nullable, required: Price statistics from the security's split-adjusted daily closes; null for an unlisted security or when not available.
      - `asOf` string, date, required: Date of the last close; every window ends here.
      - `week52Low` number, nullable, required: Lowest close over the 365 days ending at `asOf`; null when the security's closes do not reach back a year.
      - `week52High` number, nullable, required: Highest close over the 365 days ending at `asOf`; null when the security's closes do not reach back a year.
      - `avgVolume3m` number, nullable, required: Average daily volume over the 90 days ending at `asOf`; null for a class that does not trade.
    - `premiumDiscountToNav` object, nullable, required: The close against NAV on the NAV's date; null when not available.
      - `value` number, required: Premium (positive) or discount (negative) as a decimal fraction.
      - `asOf` string, date, required: Date of the NAV and the close compared.

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `404`: Not Found

## Changes

- **2026-10-30** `85026fdfc8b8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/fiscal/apis/fiscal-api/changes/v1/fund/performance/get.md)

---

[API](https://skmtc.dev/fiscal/apis/fiscal-api.md) - [All operations](https://skmtc.dev/fiscal/apis/fiscal-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fiscal/apis/fiscal-api/revisions/85026fdfc8b8?raw)
