curl --request GET \
--url https://api.kamino.finance/owners/{pubkey}/net-values/historyconst options = {method: 'GET'};
fetch('https://api.kamino.finance/owners/{pubkey}/net-values/history', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.kamino.finance/owners/{pubkey}/net-values/history"
response = requests.get(url)
print(response.text)false[
{
"createdOn": "2025-03-01T12:00:00.000Z",
"klendUsd": "1234.56789",
"strategiesUsd": "1234.56789",
"kvaultsUsd": "1234.56789",
"stakingUsd": "1234.56789",
"depositsUsd": "1234.56789",
"withdrawalsUsd": "1234.56789",
"netRevenueUsd": "1234.56789",
"modifiedDietzReturn": "1234.56789",
"netRevenueStatus": "partial_snapshot"
}
]{
"error": "Invalid query request",
"details": [
{
"code": "invalid_union",
"errors": [
[
{
"code": "custom",
"path": [],
"message": "Invalid date string"
}
],
[
{
"expected": "number",
"code": "invalid_type",
"path": [],
"message": "Invalid input: expected number, received string"
}
]
],
"path": [
"start"
],
"message": "Invalid input"
}
]
}{
"error": "An internal error occurred"
}Get owner net value history
Fetches the historical USD values for an owner across all Kamino products — Lending, Strategies, Vaults, and Staking.
curl --request GET \
--url https://api.kamino.finance/owners/{pubkey}/net-values/historyconst options = {method: 'GET'};
fetch('https://api.kamino.finance/owners/{pubkey}/net-values/history', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.kamino.finance/owners/{pubkey}/net-values/history"
response = requests.get(url)
print(response.text)false[
{
"createdOn": "2025-03-01T12:00:00.000Z",
"klendUsd": "1234.56789",
"strategiesUsd": "1234.56789",
"kvaultsUsd": "1234.56789",
"stakingUsd": "1234.56789",
"depositsUsd": "1234.56789",
"withdrawalsUsd": "1234.56789",
"netRevenueUsd": "1234.56789",
"modifiedDietzReturn": "1234.56789",
"netRevenueStatus": "partial_snapshot"
}
]{
"error": "Invalid query request",
"details": [
{
"code": "invalid_union",
"errors": [
[
{
"code": "custom",
"path": [],
"message": "Invalid date string"
}
],
[
{
"expected": "number",
"code": "invalid_type",
"path": [],
"message": "Invalid input: expected number, received string"
}
]
],
"path": [
"start"
],
"message": "Invalid input"
}
]
}{
"error": "An internal error occurred"
}Path Parameters
Valid base58-encoded address of the user wallet
"AxqtG9SHDkZTLSWg81Sp7VqAzQpRqXtR9ziJ3VQAS8As"
Query Parameters
Start date of the range (defaults to Unix epoch). Accepts ISO string or epoch in ms.
"1970-01-01T00:00:00.000Z"
End date of the range (defaults to current time). Accepts ISO string or epoch in ms.
"2025-01-01T00:00:00.000Z"
Response
OK
Timestamp when the snapshot was created (ISO 8601 format)
"2025-03-01T12:00:00.000Z"
Total USD value of positions in Kamino Lend
"1234.56789"
Total USD value of Kamino Liquidity positions
"1234.56789"
Total USD value of Kamino Vault positions
"1234.56789"
Total USD value of KMNO staking position
"1234.56789"
Cumulative deposits since the first point of the response
"1234.56789"
Cumulative withdrawals since the first point of the response
"1234.56789"
Cumulative net revenue since the first point of the response
"1234.56789"
Modified Dietz return ratio over the interval since the first point of the response; not a percent and not annualized
"1234.56789"
Availability status for net revenue fields. failed_flows: flow ingestion failed for this wallet from this time; revenue is unavailable until it is repaired.
partial_snapshot, failed_flows, pending_flows, unpriced_flows, legacy_snapshot, ok