curl --request GET \
--url https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/performance-series \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/performance-series"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/performance-series', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/performance-series",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/performance-series"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/performance-series")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/performance-series")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"baseAssetAddress": "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
"baseAssetDecimals": 6,
"period": {
"range": "30d",
"start": "2026-08-11",
"end": "2026-09-10",
"interval": "day",
"status": "ok"
},
"points": [
{
"asOf": "2026-09-10T00:00:00.000Z",
"cumulativeEarnedAssets": "325000",
"navPerShare": "1002400",
"trailingApyBps": 412,
"status": "ok"
}
]
}{
"error": "Unauthenticated request",
"message": "Missing or invalid bearer token"
}Get MicroVault performance series
Returns chronological lifetime-earned, NAV, and trailing-APY observations for charting and performance analysis.
curl --request GET \
--url https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/performance-series \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/performance-series"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/performance-series', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/performance-series",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/performance-series"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/performance-series")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/performance-series")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"baseAssetAddress": "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
"baseAssetDecimals": 6,
"period": {
"range": "30d",
"start": "2026-08-11",
"end": "2026-09-10",
"interval": "day",
"status": "ok"
},
"points": [
{
"asOf": "2026-09-10T00:00:00.000Z",
"cumulativeEarnedAssets": "325000",
"navPerShare": "1002400",
"trailingApyBps": 412,
"status": "ok"
}
]
}{
"error": "Unauthenticated request",
"message": "Missing or invalid bearer token"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Ground identifier of the MicroVault. This is distinct from its onchain contract address.
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"8f4c52d7-62ab-4db9-a964-92f481f6b851"
Query Parameters
Preset period for the returned performance series. Use start and end for a custom period.
7d, 30d, 90d, ytd, 1y, all First UTC calendar date to include for a custom period, formatted as YYYY-MM-DD.
Last UTC calendar date to include for a custom period, formatted as YYYY-MM-DD.
Response
Historical performance points.
Base asset used to express cumulative earnings and NAV, or null when no observations exist.
42^0x(?!0{40}$)[0-9a-fA-F]{40}$"0x7c4a1cb5a3d5c3c4e019c3f6ab29a0f98c21b814"
Decimal precision for asset-valued fields, or null when no observations exist.
Requested date window, sampling interval, and completeness of the returned series.
Show child attributes
Show child attributes
Chronological valuation points sampled for the requested period.
Show child attributes
Show child attributes