The returned dataset depends on the asset type and the availability of historical performance data.
- ETFs: Annual total returns are available and returned as asset-level values. Category comparison values may be provided when applicable.
- Mutual funds: Annual returns may be available at the fund or category level, depending on data coverage and the fund’s history.
- Stocks: This endpoint returns an empty result. Annual total return history is not provided for individual stocks.
An empty result indicates that annual return data does not exist for the requested asset; it is not a request error.
When to Use This Endpoint
- Analyze long-term historical performance of ETFs and mutual funds.
- Compare asset annual returns against category averages where available.
- Identify the best and worst calendar years in an asset’s return history.
- Build performance tables and historical return breakdowns.
Request Parameters
v1/statistics/annual-returns
Asset identifier (ticker symbol).
User-defined identifier for the task (max 255 characters).
It is returned in the response data object, allowing you to match results with the corresponding request. It does not affect API processing or filtering logic.
curl --location "https://api.finimpulse.com/v1/statistics/annual-returns" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <API_TOKEN>" \
-d '{
"symbol": "FARMX",
"tag": "just tag"
}'
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
var client = new HttpClient();
var url = "https://api.finimpulse.com/v1/statistics/annual-returns";
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "<API_TOKEN>");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var json = @"{
""symbol"": ""FARMX"",
""tag"": ""just tag""
}";
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.finimpulse.com/v1/statistics/annual-returns",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Authorization: Bearer <API_TOKEN>"
],
CURLOPT_POSTFIELDS => json_encode(
[
"symbol" => "FARMX",
"tag" => "just tag"
]
)
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import urllib.request
import json
url = "https://api.finimpulse.com/v1/statistics/annual-returns"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer <API_TOKEN>"
}
data = {
"symbol": "FARMX",
"tag": "just tag"
}
req = urllib.request.Request(url,
data=json.dumps(data).encode("utf-8"),
headers=headers,
method="POST")
with urllib.request.urlopen(req) as response:
result = json.loads(response.read().decode("utf-8"))
print(result)
const https = require('https');
const data = JSON.stringify({
"symbol": "FARMX",
"tag": "just tag"
});
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer <API_TOKEN>',
'Content-Length': Buffer.byteLength(data)
}
};
const req = https.request('https://api.finimpulse.com/v1/statistics/annual-returns', options, (res) => {
let body = '';
res.on('data', chunk => body += chunk);
res.on('end', () => console.log(JSON.stringify(JSON.parse(body), null, 2)));
});
req.on('error', (e) => console.error(e));
req.write(data);
req.end();
Response
The response is an array, with each item representing a single calendar year and its corresponding return values.
Calendar year.
Total return of the asset for the given year.
Average return of the asset’s category for the same year, when available.
First quarter return.
Second quarter return.
Third quarter return.
Fourth quarter return.
{
"task_id": "a2b2c370-0844-467d-aa9c-efb4ce3e3539",
"status_code": 20000,
"status_message": "OK",
"cost": 0.0008,
"data": {
"symbol": "FARMX",
"tag": "just_tag"
},
"result": [
{
"year": 1970,
"annual_value": null,
"annual_category_value": -0.0236626,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1971,
"annual_value": null,
"annual_category_value": 0.0885142,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1972,
"annual_value": null,
"annual_category_value": 0.18780251,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1973,
"annual_value": null,
"annual_category_value": -0.0391198,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1974,
"annual_value": null,
"annual_category_value": -0.2815946,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1975,
"annual_value": null,
"annual_category_value": 0.17355369,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1976,
"annual_value": null,
"annual_category_value": 0.2118497,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1977,
"annual_value": null,
"annual_category_value": -0.0399922,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1978,
"annual_value": null,
"annual_category_value": 0.1206627,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1979,
"annual_value": null,
"annual_category_value": 0.5974765,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1980,
"annual_value": null,
"annual_category_value": 0.560886,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1981,
"annual_value": null,
"annual_category_value": -0.17448491,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1982,
"annual_value": null,
"annual_category_value": -0.1417235,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1983,
"annual_value": null,
"annual_category_value": 0.2360813,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1984,
"annual_value": null,
"annual_category_value": -0.1040572,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1985,
"annual_value": null,
"annual_category_value": 0.1562369,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1986,
"annual_value": null,
"annual_category_value": 0.0955509,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1987,
"annual_value": null,
"annual_category_value": 0.0917261,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1988,
"annual_value": null,
"annual_category_value": 0.09791569,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1989,
"annual_value": null,
"annual_category_value": 0.3033599,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1990,
"annual_value": null,
"annual_category_value": -0.08409259,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1991,
"annual_value": null,
"annual_category_value": 0.0426516,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1992,
"annual_value": null,
"annual_category_value": 0.0305446,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1993,
"annual_value": null,
"annual_category_value": 0.23331381,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1994,
"annual_value": null,
"annual_category_value": -0.018946,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1995,
"annual_value": null,
"annual_category_value": 0.2047805,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1996,
"annual_value": null,
"annual_category_value": 0.3284602,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1997,
"annual_value": null,
"annual_category_value": 0.0335362,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1998,
"annual_value": null,
"annual_category_value": -0.24868059,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 1999,
"annual_value": null,
"annual_category_value": 0.306414,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2000,
"annual_value": null,
"annual_category_value": 0.29493868,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2001,
"annual_value": null,
"annual_category_value": -0.1044372,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2002,
"annual_value": null,
"annual_category_value": -0.0080183,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2003,
"annual_value": null,
"annual_category_value": 0.3276374,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2004,
"annual_value": null,
"annual_category_value": 0.2746854,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2005,
"annual_value": null,
"annual_category_value": 0.38200063,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2006,
"annual_value": null,
"annual_category_value": 0.1053341,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2007,
"annual_value": null,
"annual_category_value": 0.37115318,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2008,
"annual_value": null,
"annual_category_value": -0.48793757,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2009,
"annual_value": null,
"annual_category_value": 0.4847942,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2010,
"annual_value": null,
"annual_category_value": 0.1806398,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2011,
"annual_value": null,
"annual_category_value": -0.1396783,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2012,
"annual_value": null,
"annual_category_value": 0.0433783,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2013,
"annual_value": null,
"annual_category_value": 0.0874915,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2014,
"annual_value": null,
"annual_category_value": -0.1248112,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2015,
"annual_value": null,
"annual_category_value": -0.2215839,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2016,
"annual_value": null,
"annual_category_value": 0.26691732,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2017,
"annual_value": null,
"annual_category_value": 0.1661441,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2018,
"annual_value": null,
"annual_category_value": -0.19010259,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2019,
"annual_value": null,
"annual_category_value": 0.14954549,
"q1": null,
"q2": null,
"q3": null,
"q4": null
},
{
"year": 2020,
"annual_value": null,
"annual_category_value": 0.1636969,
"q1": 0.14520569,
"q2": 0.21470869,
"q3": null,
"q4": null
},
{
"year": 2021,
"annual_value": 0.2334238,
"annual_category_value": null,
"q1": 0.1943717,
"q2": -0.0054795,
"q3": -0.0287066,
"q4": 0.0690761
},
{
"year": 2022,
"annual_value": 0.1369438,
"annual_category_value": null,
"q1": 0.1934794,
"q2": -0.1742051,
"q3": 0.0317784,
"q4": 0.1180609
},
{
"year": 2023,
"annual_value": -0.1159814,
"annual_category_value": null,
"q1": -0.0266413,
"q2": -0.0596285,
"q3": -0.0520297,
"q4": 0.0188127
},
{
"year": 2024,
"annual_value": -0.0484912,
"annual_category_value": null,
"q1": 0.0239913,
"q2": -0.0761448,
"q3": 0.0566255,
"q4": -0.0480994
},
{
"year": 2025,
"annual_value": 0.0799892,
"annual_category_value": null,
"q1": 0.0363423,
"q2": 0.0984163,
"q3": -0.0415647,
"q4": -0.01011109
}
]
}Quarterly values may be null when quarterly data is not available or not applicable.
Notes
- Returns are expressed as decimal values (e.g., 0.25 represents a 25% return).
- annual_value and annual_category_value may be null depending on historical coverage and asset type.
- Calendar-year availability varies by asset’s inception date and data source.
- Quarterly breakdowns are optional and may not be present for all assets or years.
