curl --request GET \
--url https://api.kamino.finance/kvaults/vaults/{pubkey}/statsconst options = {method: 'GET'};
fetch('https://api.kamino.finance/kvaults/vaults/{pubkey}/stats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.kamino.finance/kvaults/vaults/{pubkey}/stats"
response = requests.get(url)
print(response.text)false{
"token": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"tokenPrice": "1234.56789",
"apy": {
"total": "0.123",
"base": {
"gross": "0.123",
"net": "0.123"
},
"farmIncentives": "0.123",
"reservesIncentives": "0.123",
"autoCompounding": "0.123"
},
"farmRewards": [
{
"rewardToken": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"apy": "0.123",
"tokensPerSecond": "1234.56789"
}
],
"holdings": {
"available": "1234.56789",
"availableUsd": "1234.56789",
"invested": "1234.56789",
"investedUsd": "1234.56789",
"totalAumIncludingFees": "1234.56789",
"totalAumIncludingFeesUsd": "1234.56789",
"pendingFees": "1234.56789",
"pendingFeesUsd": "1234.56789"
},
"sharesIssued": "1234.56789",
"tokensPerShare": "1234.56789",
"sharePrice": "1234.56789",
"utilizationRatio": "1234.56789",
"capitalDeployed": "1234.56789",
"capitalDeployedUsd": "1234.56789",
"instantLiquidity": "1234.56789",
"instantLiquidityUsd": "1234.56789",
"depositCap": "1234.56789",
"depositCapUsd": "1234.56789",
"remainingDepositCapacity": "1234.56789",
"remainingDepositCapacityUsd": "1234.56789",
"allocations": [
{
"reserve": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"market": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"targetPct": "1234.56789",
"actualPct": "1234.56789",
"suppliedTokenAmount": "1234.56789",
"suppliedUsd": "1234.56789",
"supplyApy": "0.123",
"withdrawableTokenAmount": "1234.56789"
}
]
}{
"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"
}
]
}{
"metadata": "Account could not be found"
}{
"error": "An internal error occurred"
}Get stats for a KVault
Get derived stats for a Kamino Earn Vault computed from the current on-chain state: supply APY breakdown (base gross/net, vault farm incentives, reserve farm incentives), per-token vault farm rewards, holdings, share price, utilization, instant liquidity and the per-reserve allocation breakdown. Returns 404 when the vault does not exist.
curl --request GET \
--url https://api.kamino.finance/kvaults/vaults/{pubkey}/statsconst options = {method: 'GET'};
fetch('https://api.kamino.finance/kvaults/vaults/{pubkey}/stats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.kamino.finance/kvaults/vaults/{pubkey}/stats"
response = requests.get(url)
print(response.text)false{
"token": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"tokenPrice": "1234.56789",
"apy": {
"total": "0.123",
"base": {
"gross": "0.123",
"net": "0.123"
},
"farmIncentives": "0.123",
"reservesIncentives": "0.123",
"autoCompounding": "0.123"
},
"farmRewards": [
{
"rewardToken": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"apy": "0.123",
"tokensPerSecond": "1234.56789"
}
],
"holdings": {
"available": "1234.56789",
"availableUsd": "1234.56789",
"invested": "1234.56789",
"investedUsd": "1234.56789",
"totalAumIncludingFees": "1234.56789",
"totalAumIncludingFeesUsd": "1234.56789",
"pendingFees": "1234.56789",
"pendingFeesUsd": "1234.56789"
},
"sharesIssued": "1234.56789",
"tokensPerShare": "1234.56789",
"sharePrice": "1234.56789",
"utilizationRatio": "1234.56789",
"capitalDeployed": "1234.56789",
"capitalDeployedUsd": "1234.56789",
"instantLiquidity": "1234.56789",
"instantLiquidityUsd": "1234.56789",
"depositCap": "1234.56789",
"depositCapUsd": "1234.56789",
"remainingDepositCapacity": "1234.56789",
"remainingDepositCapacityUsd": "1234.56789",
"allocations": [
{
"reserve": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"market": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"targetPct": "1234.56789",
"actualPct": "1234.56789",
"suppliedTokenAmount": "1234.56789",
"suppliedUsd": "1234.56789",
"supplyApy": "0.123",
"withdrawableTokenAmount": "1234.56789"
}
]
}{
"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"
}
]
}{
"metadata": "Account could not be found"
}{
"error": "An internal error occurred"
}Path Parameters
Valid base58-encoded address
"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd"
Response
OK
Vault token mint
"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd"
USD price of the vault token
"1234.56789"
Show child attributes
Show child attributes
Per-token rewards of the vault farm (shares staked in the vault farm). apy.farmIncentives is the sum of apy over these rows. Empty when the vault has no farm or nothing is emitting.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Total shares issued by the vault
"1234.56789"
Token amount one share is worth
"1234.56789"
USD price of one share
"1234.56789"
Share of the vault total AUM that is borrowed out of the reserves
"1234.56789"
Token amount deployed into reserves
"1234.56789"
USD value deployed into reserves
"1234.56789"
Token amount withdrawable from the vault right now without queueing: holdings.available plus allocations[].withdrawableTokenAmount. A per-vault upper bound over reserve liquidity shared with other vaults and depositors, so never sum it across vaults. Gross of withdrawal penalties; not for building transactions.
"1234.56789"
USD value of instantLiquidity at tokenPrice
"1234.56789"
Maximum vault AUM net of pending fees that deposits can reach, in token amount. Null when the vault is uncapped
"1234.56789"
USD value of depositCap at tokenPrice. Null when uncapped
"1234.56789"
Token amount the vault still accepts before reaching depositCap: depositCap minus the AUM net of pending fees, floored at 0. Deposits above it are clamped on-chain. Null when uncapped
"1234.56789"
USD value of remainingDepositCapacity at tokenPrice. Null when uncapped
"1234.56789"
Per-reserve allocation breakdown
Show child attributes
Show child attributes