curl --request GET \
--url https://api.kamino.finance/reserves/{reservePubkey}/statsconst options = {method: 'GET'};
fetch('https://api.kamino.finance/reserves/{reservePubkey}/stats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.kamino.finance/reserves/{reservePubkey}/stats"
response = requests.get(url)
print(response.text)false{
"token": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"collateralMintAddress": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"rateType": "variable",
"fixedTerm": {
"termSeconds": 2592000,
"apy": "0.0616"
},
"debtMaturityTimestamp": "2026-08-28T00:00:00.000Z",
"status": "Active",
"interestRateBasis": "trueApr",
"hostFixedInterestRateBps": 50,
"protocolTakeRatePct": 10,
"supplyApy": {
"current": "0.0412",
"avg7d": "0.0398",
"avg14d": "0.0395",
"avg30d": "0.039",
"avg60d": "0.0387",
"avg90d": "0.0384",
"avg180d": "0.0381"
},
"borrowApy": {
"current": "0.0412",
"avg7d": "0.0398",
"avg14d": "0.0395",
"avg30d": "0.039",
"avg60d": "0.0387",
"avg90d": "0.0384",
"avg180d": "0.0381"
},
"underlyingApy": {
"current": "0.2",
"sourceType": "lst",
"sourceMint": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"observedAt": "2023-11-07T05:31:56Z"
},
"underlyingYieldExpected": true,
"supplyApyBreakdown": {
"lending": "0.123",
"incentives": "0.123",
"seasonRewards": "0.123",
"underlying": "0.123",
"total": "0.123"
},
"borrowApyBreakdown": {
"borrow": "0.123",
"incentives": "0.123",
"seasonRewards": "0.123",
"total": "0.2"
},
"utilization": {
"current": "0.825",
"avg30d": "0.81",
"avg90d": "0.79",
"avg180d": "0.77",
"avg365d": "0.74"
},
"autoDeleverage": {
"reserve": {
"enabled": true,
"marginCallPeriodSecs": 259200,
"thresholdDecreaseBpsPerDay": 100,
"bonusIncreaseBpsPerDay": 50,
"minBonusBps": 10
},
"market": {
"enabled": true,
"individualMarginCallPeriodSecs": 86400
}
},
"supplyRewardApys": [
{
"rewardToken": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"farm": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"apy": "0.011",
"tokensPerSecond": "0.00165"
}
],
"borrowRewardApys": [
{
"rewardToken": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"farm": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"apy": "0.011",
"tokensPerSecond": "0.00165"
}
],
"pairIncentives": [
{
"side": "supply",
"collateralReserve": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"collateralToken": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"debtReserve": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"debtToken": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"farm": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"rewardToken": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"apy": "0.123",
"tokensPerSecond": "1234.56789",
"stakedUsd": "1234.56789",
"readMoreUrl": "<string>"
}
],
"pointsPrograms": [
{
"side": "supply",
"key": "<string>",
"name": "<string>",
"description": "<string>",
"iconUrl": "<string>",
"learnMoreUrl": "<string>"
}
],
"liquidityAvailable": "1234.56789",
"liquidityAvailableUsd": "1234.56789",
"actualAvailableLiquidity": "1234.56789",
"actualAvailableLiquidityUsd": "1234.56789",
"utilizationLimitBlockBorrowingAbovePct": 95,
"borrowCaps": {
"utilization": {
"limitPct": 95,
"currentPct": "82.5"
},
"netWithdrawal": {
"capacity": "1234.56789",
"currentTotal": "1234.56789",
"intervalLengthSeconds": 123,
"lastIntervalStartTimestamp": "2023-11-07T05:31:56Z"
},
"globalDebt": {
"capacity": "1234.56789",
"currentTotal": "1234.56789"
},
"debtOutsideElevationGroup": {
"capacity": "1234.56789",
"currentTotal": "1234.56789"
},
"debtAgainstCollateral": [
{
"capacity": "1234.56789",
"currentTotal": "1234.56789",
"collateralReserve": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"elevationGroup": 123
}
]
},
"totalSupply": "1234.56789",
"totalSupplyUsd": "1234.56789",
"totalBorrow": "1234.56789",
"totalBorrowUsd": "1234.56789",
"liqLTV": "0.8",
"maxLTV": "0.75",
"borrowFactor": "1",
"depositLimit": "200000",
"borrowLimit": "150000",
"minLiquidationBonus": "0.02",
"maxLiquidationBonus": "0.1",
"liquidationMaxDebtCloseFactorPct": 10,
"insolvencyRiskUnhealthyLtvPct": 95,
"limits": {
"depositWithdrawalCap": {
"capacity": "1234.56789",
"currentTotal": "1234.56789",
"intervalLengthSeconds": 123,
"lastIntervalStartTimestamp": "2023-11-07T05:31:56Z"
},
"debtWithdrawalCap": {
"capacity": "1234.56789",
"currentTotal": "1234.56789",
"intervalLengthSeconds": 123,
"lastIntervalStartTimestamp": "2023-11-07T05:31:56Z"
}
},
"proofOfReserves": {
"verified": true,
"address": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd"
}
}{
"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 reserve
Get current raw and cap-aware reserve liquidity, borrowing caps and counters, base APYs with historical averages, underlying token yield and UI-matching APY breakdowns, utilization with historical averages, auto-deleveraging settings, reserve farm rewards, pair-specific incentives and partner points programs for one reserve. Pair-specific incentives and points programs are not included in the APY breakdown totals.
curl --request GET \
--url https://api.kamino.finance/reserves/{reservePubkey}/statsconst options = {method: 'GET'};
fetch('https://api.kamino.finance/reserves/{reservePubkey}/stats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.kamino.finance/reserves/{reservePubkey}/stats"
response = requests.get(url)
print(response.text)false{
"token": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"collateralMintAddress": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"rateType": "variable",
"fixedTerm": {
"termSeconds": 2592000,
"apy": "0.0616"
},
"debtMaturityTimestamp": "2026-08-28T00:00:00.000Z",
"status": "Active",
"interestRateBasis": "trueApr",
"hostFixedInterestRateBps": 50,
"protocolTakeRatePct": 10,
"supplyApy": {
"current": "0.0412",
"avg7d": "0.0398",
"avg14d": "0.0395",
"avg30d": "0.039",
"avg60d": "0.0387",
"avg90d": "0.0384",
"avg180d": "0.0381"
},
"borrowApy": {
"current": "0.0412",
"avg7d": "0.0398",
"avg14d": "0.0395",
"avg30d": "0.039",
"avg60d": "0.0387",
"avg90d": "0.0384",
"avg180d": "0.0381"
},
"underlyingApy": {
"current": "0.2",
"sourceType": "lst",
"sourceMint": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"observedAt": "2023-11-07T05:31:56Z"
},
"underlyingYieldExpected": true,
"supplyApyBreakdown": {
"lending": "0.123",
"incentives": "0.123",
"seasonRewards": "0.123",
"underlying": "0.123",
"total": "0.123"
},
"borrowApyBreakdown": {
"borrow": "0.123",
"incentives": "0.123",
"seasonRewards": "0.123",
"total": "0.2"
},
"utilization": {
"current": "0.825",
"avg30d": "0.81",
"avg90d": "0.79",
"avg180d": "0.77",
"avg365d": "0.74"
},
"autoDeleverage": {
"reserve": {
"enabled": true,
"marginCallPeriodSecs": 259200,
"thresholdDecreaseBpsPerDay": 100,
"bonusIncreaseBpsPerDay": 50,
"minBonusBps": 10
},
"market": {
"enabled": true,
"individualMarginCallPeriodSecs": 86400
}
},
"supplyRewardApys": [
{
"rewardToken": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"farm": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"apy": "0.011",
"tokensPerSecond": "0.00165"
}
],
"borrowRewardApys": [
{
"rewardToken": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"farm": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"apy": "0.011",
"tokensPerSecond": "0.00165"
}
],
"pairIncentives": [
{
"side": "supply",
"collateralReserve": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"collateralToken": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"debtReserve": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"debtToken": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"farm": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"rewardToken": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"apy": "0.123",
"tokensPerSecond": "1234.56789",
"stakedUsd": "1234.56789",
"readMoreUrl": "<string>"
}
],
"pointsPrograms": [
{
"side": "supply",
"key": "<string>",
"name": "<string>",
"description": "<string>",
"iconUrl": "<string>",
"learnMoreUrl": "<string>"
}
],
"liquidityAvailable": "1234.56789",
"liquidityAvailableUsd": "1234.56789",
"actualAvailableLiquidity": "1234.56789",
"actualAvailableLiquidityUsd": "1234.56789",
"utilizationLimitBlockBorrowingAbovePct": 95,
"borrowCaps": {
"utilization": {
"limitPct": 95,
"currentPct": "82.5"
},
"netWithdrawal": {
"capacity": "1234.56789",
"currentTotal": "1234.56789",
"intervalLengthSeconds": 123,
"lastIntervalStartTimestamp": "2023-11-07T05:31:56Z"
},
"globalDebt": {
"capacity": "1234.56789",
"currentTotal": "1234.56789"
},
"debtOutsideElevationGroup": {
"capacity": "1234.56789",
"currentTotal": "1234.56789"
},
"debtAgainstCollateral": [
{
"capacity": "1234.56789",
"currentTotal": "1234.56789",
"collateralReserve": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd",
"elevationGroup": 123
}
]
},
"totalSupply": "1234.56789",
"totalSupplyUsd": "1234.56789",
"totalBorrow": "1234.56789",
"totalBorrowUsd": "1234.56789",
"liqLTV": "0.8",
"maxLTV": "0.75",
"borrowFactor": "1",
"depositLimit": "200000",
"borrowLimit": "150000",
"minLiquidationBonus": "0.02",
"maxLiquidationBonus": "0.1",
"liquidationMaxDebtCloseFactorPct": 10,
"insolvencyRiskUnhealthyLtvPct": 95,
"limits": {
"depositWithdrawalCap": {
"capacity": "1234.56789",
"currentTotal": "1234.56789",
"intervalLengthSeconds": 123,
"lastIntervalStartTimestamp": "2023-11-07T05:31:56Z"
},
"debtWithdrawalCap": {
"capacity": "1234.56789",
"currentTotal": "1234.56789",
"intervalLengthSeconds": 123,
"lastIntervalStartTimestamp": "2023-11-07T05:31:56Z"
}
},
"proofOfReserves": {
"verified": true,
"address": "VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd"
}
}{
"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
Kamino Lend reserve public key
"FBSyPnxtHKLBZ4UeeUyAnbtFuAmTHLtso9YtsqRDRWpM"
Query Parameters
KLend program ID
"KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD"
Response
OK
Reserve liquidity token mint address
"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd"
Reserve collateral token mint address
"VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd"
Reserve borrow rate type
variable, fixed, maturity "variable"
Fixed-term borrow details, or null for variable and maturity reserves
Show child attributes
Show child attributes
Debt maturity timestamp, or null when the reserve has no configured maturity
"2026-08-28T00:00:00.000Z"
On-chain reserve visibility status
Active, Obsolete, Hidden "Active"
How the reserve interprets its rate config (borrow rate curve, hostFixedInterestRateBps, reward emissions). legacy: nominal slot-year rates accrued per slot over 63,072,000 slots, so the realized annual rate is the configured rate times 500 / recentSlotDurationInMs (see /slots/duration). trueApr: wall-clock rates accrued per second over 31,536,000 seconds, no slot adjustment. To plot the curve from /reserves/{reservePubkey}/charts borrowCurve: factor = basis === trueApr ? 1 : 500 / recentSlotDurationInMs; borrowApr(u) = (curveRate(u) + hostFixedInterestRateBps / 10000) * factor; supplyApr(u) = u * curveRate(u) * factor * (1 - protocolTakeRatePct / 100). Static per reserve config; reserves in one market can differ.
legacy, trueApr "trueApr"
Fixed host interest added on top of the curve or fixed borrow rate, in basis points of the nominal annual rate in the reserve interestRateBasis. Paid entirely to the host: included in borrow APR, excluded from supply APR. 0 when not configured.
50
Share of borrow interest taken by the protocol as an integer percentage from the reserve config. Depositors keep (100 - protocolTakeRatePct) / 100 of the curve interest; this is the raw config value, not the depositor keep-ratio.
10
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Native yield of the reserve liquidity token itself: LST staking yield, principal-token implied yield, or the yield of an RWA / yield-bearing token. Excludes lending interest, farm incentives, season rewards and pair-specific rewards. Null when the token is not yield-bearing or no fresh source is available; a missing source is never reported as 0. Already included in supplyApyBreakdown.total.
Show child attributes
Show child attributes
True when the reserve token earns its own yield (staking, pool or yield-feed token). underlyingApy null with true means the yield source is unavailable; null with false means the token has no underlying yield.
true
Components of the supply APY shown in the Kamino UI for an anonymous viewer, all in decimal APY units. total = lending + incentives + seasonRewards + underlying. underlying is 0 when underlyingApy is null.
Show child attributes
Show child attributes
Components of the borrow APY shown in the Kamino UI for an anonymous viewer, decimal units. total = borrow - incentives - seasonRewards.
Show child attributes
Show child attributes
Current reserve utilization and historical averages
Show child attributes
Show child attributes
On-chain auto-deleveraging configuration of the reserve and its lending market
Show child attributes
Show child attributes
Current supply-side farm reward APY components
Show child attributes
Show child attributes
Current borrow-side farm reward APY components
Show child attributes
Show child attributes
Live pair-specific incentives whose eligibility depends on the counterparty asset. Rows are present only while the configured farm is active, funded, emitting and staked. These APYs are not included in supplyApyBreakdown.total or borrowApyBreakdown.total. Derive collateral "Up to" APY as max(apy) over supply rows and estimated net borrow APY as borrowApy.current - apy.
Show child attributes
Show child attributes
Partner points programs for this reserve and side. These programs have no numeric APY and are not included in supplyApyBreakdown.total or borrowApyBreakdown.total.
Show child attributes
Show child attributes
Available reserve liquidity in UI token units
"1234.56789"
Available reserve liquidity in USD
"1234.56789"
Maximum cap-aware reserve liquidity available for borrowing across cross mode and configured elevation groups, in UI token units. This does not include obligation-specific collateral or LTV constraints.
"1234.56789"
Maximum cap-aware reserve liquidity available for borrowing across cross mode and configured elevation groups, in USD. This does not include obligation-specific collateral or LTV constraints.
"1234.56789"
Utilization percentage above which new borrowing is blocked. A value of 0 disables the limit.
95
Configured reserve borrowing caps and their current on-chain counters
Show child attributes
Show child attributes
Total reserve supply in UI token units
"1234.56789"
Total reserve supply in USD
"1234.56789"
Total reserve borrow in UI token units
"1234.56789"
Total reserve borrow in USD
"1234.56789"
Liquidation loan-to-value ratio
"0.8"
Maximum loan-to-value ratio
"0.75"
Borrow factor as a ratio
"1"
Reserve deposit limit in UI token units, or null when uncapped
"200000"
Reserve borrow limit in UI token units, or null when uncapped
"150000"
Minimum liquidation bonus as a ratio
"0.02"
Maximum liquidation bonus as a ratio
"0.1"
Market maximum debt close factor as an integer percentage
10
Market LTV threshold as an integer percentage; obligations above it can be fully liquidated instead of being capped by the debt close factor
95
Show child attributes
Show child attributes
Show child attributes
Show child attributes