> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kamino.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 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, partner points programs and the Scope oracle composition of the price and TWAP chains for one reserve. Pair-specific incentives and points programs are not included in the APY breakdown totals.



## OpenAPI

````yaml /kamino-api.json get /reserves/{reservePubkey}/stats
openapi: 3.1.0
info:
  version: 1.0.0
  title: Kamino Public API
  description: >
    The Kamino API provides a comprehensive way to interact with Kamino without
    reading directly from the blockchain.


    The API also provides the ability to fetch data that might not be available
    from just reading the chain.


    The API is rate-limited for unauthenticated users. If you feel you need to
    make more requests or run into rate-limit issues, please reach out.
servers:
  - url: https://api.kamino.finance
security: []
paths:
  /reserves/{reservePubkey}/stats:
    get:
      tags:
        - Kamino Lend Reserves
      summary: Get stats for a reserve
      description: >-
        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, partner points programs and the Scope oracle composition of
        the price and TWAP chains for one reserve. Pair-specific incentives and
        points programs are not included in the APY breakdown totals.
      parameters:
        - schema:
            allOf:
              - $ref: '#/components/schemas/AddressBase58'
              - description: Kamino Lend reserve public key
                example: FBSyPnxtHKLBZ4UeeUyAnbtFuAmTHLtso9YtsqRDRWpM
          required: true
          description: Kamino Lend reserve public key
          name: reservePubkey
          in: path
        - schema:
            type: string
            default: KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD
            description: KLend program ID
            example: KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD
          required: false
          description: KLend program ID
          name: programId
          in: query
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReserveStats'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: High-level error message describing the failure
                    example: Invalid query params
                  details:
                    type: array
                    items:
                      type: object
                      additionalProperties: {}
                    description: >-
                      Detailed validation issues (present only for validation
                      errors)
                required:
                  - error
                description: Bad request response (400)
                example:
                  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
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  metadata:
                    type: string
                    description: Error message describing why it was not found
                    example: Account could not be found
                required:
                  - metadata
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    AddressBase58:
      type: string
      description: Valid base58-encoded address
      example: VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd
    ReserveStats:
      type: object
      properties:
        token:
          allOf:
            - $ref: '#/components/schemas/AddressBase58'
            - description: Reserve liquidity token mint address
        collateralMintAddress:
          allOf:
            - $ref: '#/components/schemas/AddressBase58'
            - description: Reserve collateral token mint address
        rateType:
          type: string
          enum:
            - variable
            - fixed
            - maturity
          description: Reserve borrow rate type
          example: variable
        fixedTerm:
          type:
            - object
            - 'null'
          properties:
            termSeconds:
              type: integer
              description: Fixed debt term duration in seconds
              example: 2592000
            apy:
              allOf:
                - $ref: '#/components/schemas/Apy'
                - description: Current fixed-rate borrow APY
                  example: '0.0616'
          required:
            - termSeconds
            - apy
          description: >-
            Fixed-term borrow details, or null for variable and maturity
            reserves
        debtMaturityTimestamp:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Debt maturity timestamp, or null when the reserve has no configured
            maturity
          example: '2026-08-28T00:00:00.000Z'
        status:
          type: string
          enum:
            - Active
            - Obsolete
            - Hidden
          description: On-chain reserve visibility status
          example: Active
        interestRateBasis:
          type: string
          enum:
            - legacy
            - trueApr
          description: >-
            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.
          example: trueApr
        hostFixedInterestRateBps:
          type: integer
          description: >-
            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.
          example: 50
        protocolTakeRatePct:
          type: integer
          description: >-
            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.
          example: 10
        supplyApy:
          type: object
          properties:
            current:
              allOf:
                - $ref: '#/components/schemas/Apy'
                - description: Current base APY
                  example: '0.0412'
            avg7d:
              anyOf:
                - $ref: '#/components/schemas/Apy'
                - type: 'null'
              description: >-
                Mean of hourly bucket mean base APYs over the last 7 days, or
                null when no history is available
              example: '0.0398'
            avg14d:
              anyOf:
                - $ref: '#/components/schemas/Apy'
                - type: 'null'
              description: >-
                Mean of hourly bucket mean base APYs over the last 14 days, or
                null when no history is available
              example: '0.0395'
            avg30d:
              anyOf:
                - $ref: '#/components/schemas/Apy'
                - type: 'null'
              description: >-
                Mean of hourly bucket mean base APYs over the last 30 days, or
                null when no history is available
              example: '0.039'
            avg60d:
              anyOf:
                - $ref: '#/components/schemas/Apy'
                - type: 'null'
              description: >-
                Mean of hourly bucket mean base APYs over the last 60 days, or
                null when no history is available
              example: '0.0387'
            avg90d:
              anyOf:
                - $ref: '#/components/schemas/Apy'
                - type: 'null'
              description: >-
                Mean of hourly bucket mean base APYs over the last 90 days, or
                null when no history is available
              example: '0.0384'
            avg180d:
              anyOf:
                - $ref: '#/components/schemas/Apy'
                - type: 'null'
              description: >-
                Mean of hourly bucket mean base APYs over the last 180 days, or
                null when no history is available
              example: '0.0381'
          required:
            - current
            - avg7d
            - avg14d
            - avg30d
            - avg60d
            - avg90d
            - avg180d
        borrowApy:
          type: object
          properties:
            current:
              allOf:
                - $ref: '#/components/schemas/Apy'
                - description: Current base APY
                  example: '0.0412'
            avg7d:
              anyOf:
                - $ref: '#/components/schemas/Apy'
                - type: 'null'
              description: >-
                Mean of hourly bucket mean base APYs over the last 7 days, or
                null when no history is available
              example: '0.0398'
            avg14d:
              anyOf:
                - $ref: '#/components/schemas/Apy'
                - type: 'null'
              description: >-
                Mean of hourly bucket mean base APYs over the last 14 days, or
                null when no history is available
              example: '0.0395'
            avg30d:
              anyOf:
                - $ref: '#/components/schemas/Apy'
                - type: 'null'
              description: >-
                Mean of hourly bucket mean base APYs over the last 30 days, or
                null when no history is available
              example: '0.039'
            avg60d:
              anyOf:
                - $ref: '#/components/schemas/Apy'
                - type: 'null'
              description: >-
                Mean of hourly bucket mean base APYs over the last 60 days, or
                null when no history is available
              example: '0.0387'
            avg90d:
              anyOf:
                - $ref: '#/components/schemas/Apy'
                - type: 'null'
              description: >-
                Mean of hourly bucket mean base APYs over the last 90 days, or
                null when no history is available
              example: '0.0384'
            avg180d:
              anyOf:
                - $ref: '#/components/schemas/Apy'
                - type: 'null'
              description: >-
                Mean of hourly bucket mean base APYs over the last 180 days, or
                null when no history is available
              example: '0.0381'
          required:
            - current
            - avg7d
            - avg14d
            - avg30d
            - avg60d
            - avg90d
            - avg180d
        underlyingApy:
          type:
            - object
            - 'null'
          properties:
            current:
              $ref: '#/components/schemas/Apy'
            sourceType:
              type: string
              description: >-
                Source of the underlying yield; new source types can be added
                without notice. `lst`: median staking yield over the last 10
                epochs. `lst-combined`: restaked LST, own 10-epoch mean plus the
                median of each configured underlying LST. `yield-feed`: latest
                hourly snapshot from the token's yield provider (principal
                tokens, RWAs, JLP, USDe/sUSDe).
            sourceMint:
              anyOf:
                - $ref: '#/components/schemas/AddressBase58'
                - type: 'null'
              description: >-
                Mint whose yield series produced this value. Differs from
                `token` when the reserve token inherits another token's yield
                (sUSDe reports the USDe mint). Null for `lst-combined`. For
                history use `/v2/underlying-yields/{token}/history`, not this
                field.
            observedAt:
              type: string
              format: date-time
              description: >-
                Observation time of the source value. LST values are epoch-based
                and lag one to two days; yield-feed values are hourly snapshots
                no older than 48 hours.
          required:
            - current
            - sourceType
            - sourceMint
            - observedAt
          description: >-
            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.
        underlyingYieldExpected:
          type: boolean
          description: >-
            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.
          example: true
        supplyApyBreakdown:
          type: object
          properties:
            lending:
              allOf:
                - $ref: '#/components/schemas/Apy'
                - description: Base lending APY, equals supplyApy.current
            incentives:
              allOf:
                - $ref: '#/components/schemas/Apy'
                - description: Sum of supplyRewardApys[].apy
            seasonRewards:
              allOf:
                - $ref: '#/components/schemas/Apy'
                - description: >-
                    Anonymous season campaign APY. Currently always 0: season
                    campaigns are over. Kept so the total formula stays stable
                    if campaigns return.
            underlying:
              allOf:
                - $ref: '#/components/schemas/Apy'
                - description: underlyingApy.current, or 0 when underlyingApy is null
            total:
              allOf:
                - $ref: '#/components/schemas/Apy'
                - description: Sum of the four components
          required:
            - lending
            - incentives
            - seasonRewards
            - underlying
            - total
          description: >-
            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.
        borrowApyBreakdown:
          type: object
          properties:
            borrow:
              allOf:
                - $ref: '#/components/schemas/Apy'
                - description: >-
                    equals borrowApy.current (the fixed-rate APY for fixed-term
                    reserves)
            incentives:
              allOf:
                - $ref: '#/components/schemas/Apy'
                - description: Sum of borrowRewardApys[].apy
            seasonRewards:
              allOf:
                - $ref: '#/components/schemas/Apy'
                - description: >-
                    Anonymous season campaign APY. Currently always 0: season
                    campaigns are over. Kept so the total formula stays stable
                    if campaigns return.
            total:
              $ref: '#/components/schemas/Apy'
          required:
            - borrow
            - incentives
            - seasonRewards
            - total
          description: >-
            Components of the borrow APY shown in the Kamino UI for an anonymous
            viewer, decimal units. total = borrow - incentives - seasonRewards.
        utilization:
          type: object
          properties:
            current:
              allOf:
                - $ref: '#/components/schemas/Decimal'
                - description: >-
                    Current utilization as a ratio of total borrow to total
                    supply
                  example: '0.825'
            avg30d:
              anyOf:
                - $ref: '#/components/schemas/Decimal'
                - type: 'null'
              description: >-
                Mean of hourly bucket per-snapshot utilization ratios over the
                last 30 days, or null when no history is available
              example: '0.81'
            avg90d:
              anyOf:
                - $ref: '#/components/schemas/Decimal'
                - type: 'null'
              description: >-
                Mean of hourly bucket per-snapshot utilization ratios over the
                last 90 days, or null when no history is available
              example: '0.79'
            avg180d:
              anyOf:
                - $ref: '#/components/schemas/Decimal'
                - type: 'null'
              description: >-
                Mean of hourly bucket per-snapshot utilization ratios over the
                last 180 days, or null when no history is available
              example: '0.77'
            avg365d:
              anyOf:
                - $ref: '#/components/schemas/Decimal'
                - type: 'null'
              description: >-
                Mean of hourly bucket per-snapshot utilization ratios over the
                last 365 days, or null when no history is available
              example: '0.74'
          required:
            - current
            - avg30d
            - avg90d
            - avg180d
            - avg365d
          description: Current reserve utilization and historical averages
        autoDeleverage:
          type: object
          properties:
            reserve:
              type: object
              properties:
                enabled:
                  type: boolean
                  description: >-
                    Whether this reserve is subject to auto-deleveraging after
                    its deposit or borrow limit is crossed. Effective only when
                    the market flag is also enabled.
                marginCallPeriodSecs:
                  type: integer
                  description: >-
                    Time in seconds that must pass before deleveraging
                    liquidations start after the limit is crossed. Only relevant
                    when auto-deleveraging is enabled.
                  example: 259200
                thresholdDecreaseBpsPerDay:
                  type: integer
                  description: >-
                    Rate at which the deleveraging LTV threshold decreases, in
                    bps per day. Only relevant when auto-deleveraging is
                    enabled.
                  example: 100
                bonusIncreaseBpsPerDay:
                  type: integer
                  description: >-
                    Rate at which the deleveraging liquidation bonus increases,
                    in bps per day. Only relevant when auto-deleveraging is
                    enabled.
                  example: 50
                minBonusBps:
                  type: integer
                  description: Starting bonus for deleveraging liquidations, in bps
                  example: 10
              required:
                - enabled
                - marginCallPeriodSecs
                - thresholdDecreaseBpsPerDay
                - bonusIncreaseBpsPerDay
                - minBonusBps
            market:
              type: object
              properties:
                enabled:
                  type: boolean
                  description: >-
                    Market-wide auto-deleveraging gate. Reserve-level
                    auto-deleveraging only applies when this is enabled.
                individualMarginCallPeriodSecs:
                  type: integer
                  description: >-
                    Time in seconds that must pass before deleveraging
                    liquidations start for obligations individually marked for
                    auto-deleveraging
                  example: 86400
              required:
                - enabled
                - individualMarginCallPeriodSecs
          required:
            - reserve
            - market
          description: >-
            On-chain auto-deleveraging configuration of the reserve and its
            lending market
        supplyRewardApys:
          type: array
          items:
            type: object
            properties:
              rewardToken:
                allOf:
                  - $ref: '#/components/schemas/AddressBase58'
                  - description: Reward token mint address
              farm:
                allOf:
                  - $ref: '#/components/schemas/AddressBase58'
                  - description: Farm address that distributes the reward
              apy:
                allOf:
                  - $ref: '#/components/schemas/Apy'
                  - description: Current reward APY component
                    example: '0.011'
              tokensPerSecond:
                allOf:
                  - $ref: '#/components/schemas/Decimal'
                  - description: Reward token emission rate in UI token units per second
                    example: '0.00165'
            required:
              - rewardToken
              - farm
              - apy
              - tokensPerSecond
          description: Current supply-side farm reward APY components
        borrowRewardApys:
          type: array
          items:
            type: object
            properties:
              rewardToken:
                allOf:
                  - $ref: '#/components/schemas/AddressBase58'
                  - description: Reward token mint address
              farm:
                allOf:
                  - $ref: '#/components/schemas/AddressBase58'
                  - description: Farm address that distributes the reward
              apy:
                allOf:
                  - $ref: '#/components/schemas/Apy'
                  - description: Current reward APY component
                    example: '0.011'
              tokensPerSecond:
                allOf:
                  - $ref: '#/components/schemas/Decimal'
                  - description: Reward token emission rate in UI token units per second
                    example: '0.00165'
            required:
              - rewardToken
              - farm
              - apy
              - tokensPerSecond
          description: Current borrow-side farm reward APY components
        pairIncentives:
          type: array
          items:
            type: object
            properties:
              side:
                type: string
                enum:
                  - supply
                  - borrow
                description: This reserve's role in the incentivized collateral/debt pair
              collateralReserve:
                $ref: '#/components/schemas/AddressBase58'
              collateralToken:
                $ref: '#/components/schemas/AddressBase58'
              debtReserve:
                $ref: '#/components/schemas/AddressBase58'
              debtToken:
                $ref: '#/components/schemas/AddressBase58'
              farm:
                $ref: '#/components/schemas/AddressBase58'
              rewardToken:
                $ref: '#/components/schemas/AddressBase58'
              apy:
                allOf:
                  - $ref: '#/components/schemas/Apy'
                  - description: >-
                      Current pair-specific reward APY on eligible pair debt, as
                      a decimal fraction
              tokensPerSecond:
                allOf:
                  - $ref: '#/components/schemas/Decimal'
                  - description: Reward token emission rate in UI token units per second
              stakedUsd:
                allOf:
                  - $ref: '#/components/schemas/Decimal'
                  - description: >-
                      Total eligible pair debt in USD used as the APY
                      denominator
              readMoreUrl:
                type:
                  - string
                  - 'null'
                format: uri
                description: >-
                  HTTPS link with more information about the incentive, or null
                  when none is configured
            required:
              - side
              - collateralReserve
              - collateralToken
              - debtReserve
              - debtToken
              - farm
              - rewardToken
              - apy
              - tokensPerSecond
              - stakedUsd
              - readMoreUrl
          description: >-
            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.
        pointsPrograms:
          type: array
          items:
            type: object
            properties:
              side:
                type: string
                enum:
                  - supply
                  - borrow
                description: Reserve action that earns points
              key:
                type: string
                description: Stable partner identifier, for example solstice
              name:
                type: string
                description: Display name of the points program
              description:
                type: string
                description: Display copy explaining how this reserve action earns points
              iconUrl:
                type: string
                format: uri
                description: HTTPS URL of the points program icon
              learnMoreUrl:
                type: string
                format: uri
                description: HTTPS URL with more information about the points program
            required:
              - side
              - key
              - name
              - description
              - iconUrl
              - learnMoreUrl
          description: >-
            Partner points programs for this reserve and side. These programs
            have no numeric APY and are not included in supplyApyBreakdown.total
            or borrowApyBreakdown.total.
        liquidityAvailable:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Available reserve liquidity in UI token units
        liquidityAvailableUsd:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Available reserve liquidity in USD
        actualAvailableLiquidity:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: >-
                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.
        actualAvailableLiquidityUsd:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: >-
                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.
        utilizationLimitBlockBorrowingAbovePct:
          type: integer
          description: >-
            Utilization percentage above which new borrowing is blocked. A value
            of 0 disables the limit.
          example: 95
        borrowCaps:
          type: object
          properties:
            utilization:
              type: object
              properties:
                limitPct:
                  type: integer
                  description: >-
                    Utilization percentage above which new borrowing is blocked.
                    A value of 0 disables the limit.
                  example: 95
                currentPct:
                  allOf:
                    - $ref: '#/components/schemas/Decimal'
                    - description: Current reserve utilization as a percentage
                      example: '82.5'
              required:
                - limitPct
                - currentPct
            netWithdrawal:
              type:
                - object
                - 'null'
              properties:
                capacity:
                  $ref: '#/components/schemas/Decimal'
                currentTotal:
                  allOf:
                    - $ref: '#/components/schemas/Decimal'
                    - description: >-
                        Amount used in the current interval in UI token units.
                        Read as 0 once the interval has elapsed.
                intervalLengthSeconds:
                  type: integer
                lastIntervalStartTimestamp:
                  type: string
                  format: date-time
              required:
                - capacity
                - currentTotal
                - intervalLengthSeconds
                - lastIntervalStartTimestamp
              description: >-
                Net withdrawal cap for reserve debt, or null when the cap is not
                configured
            globalDebt:
              type: object
              properties:
                capacity:
                  anyOf:
                    - $ref: '#/components/schemas/Decimal'
                    - type: 'null'
                  description: Configured cap in UI token units, or null when uncapped
                currentTotal:
                  allOf:
                    - $ref: '#/components/schemas/Decimal'
                    - description: >-
                        Amount currently counted against the cap in UI token
                        units
              required:
                - capacity
                - currentTotal
              description: Global reserve debt cap and current total borrow
            debtOutsideElevationGroup:
              type: object
              properties:
                capacity:
                  anyOf:
                    - $ref: '#/components/schemas/Decimal'
                    - type: 'null'
                  description: Configured cap in UI token units, or null when uncapped
                currentTotal:
                  allOf:
                    - $ref: '#/components/schemas/Decimal'
                    - description: >-
                        Amount currently counted against the cap in UI token
                        units
              required:
                - capacity
                - currentTotal
              description: Debt cap and current debt outside elevation groups
            debtAgainstCollateral:
              type: array
              items:
                type: object
                properties:
                  capacity:
                    anyOf:
                      - $ref: '#/components/schemas/Decimal'
                      - type: 'null'
                    description: Configured cap in UI token units, or null when uncapped
                  currentTotal:
                    allOf:
                      - $ref: '#/components/schemas/Decimal'
                      - description: >-
                          Amount currently counted against the cap in UI token
                          units
                  collateralReserve:
                    allOf:
                      - $ref: '#/components/schemas/AddressBase58'
                      - description: >-
                          Collateral reserve whose elevation-group debt cap is
                          represented
                  elevationGroup:
                    type: integer
                    exclusiveMinimum: 0
                required:
                  - capacity
                  - currentTotal
                  - collateralReserve
                  - elevationGroup
          required:
            - utilization
            - netWithdrawal
            - globalDebt
            - debtOutsideElevationGroup
            - debtAgainstCollateral
          description: >-
            Configured reserve borrowing caps and their current on-chain
            counters
        totalSupply:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Total reserve supply in UI token units
        totalSupplyUsd:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Total reserve supply in USD
        totalBorrow:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Total reserve borrow in UI token units
        totalBorrowUsd:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Total reserve borrow in USD
        liqLTV:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Liquidation loan-to-value ratio
              example: '0.8'
        maxLTV:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Maximum loan-to-value ratio
              example: '0.75'
        borrowFactor:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Borrow factor as a ratio
              example: '1'
        depositLimit:
          anyOf:
            - $ref: '#/components/schemas/Decimal'
            - type: 'null'
          description: Reserve deposit limit in UI token units, or null when uncapped
          example: '200000'
        borrowLimit:
          anyOf:
            - $ref: '#/components/schemas/Decimal'
            - type: 'null'
          description: Reserve borrow limit in UI token units, or null when uncapped
          example: '150000'
        minLiquidationBonus:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Minimum liquidation bonus as a ratio
              example: '0.02'
        maxLiquidationBonus:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Maximum liquidation bonus as a ratio
              example: '0.1'
        liquidationMaxDebtCloseFactorPct:
          type: integer
          description: Market maximum debt close factor as an integer percentage
          example: 10
        insolvencyRiskUnhealthyLtvPct:
          type: integer
          description: >-
            Market LTV threshold as an integer percentage; obligations above it
            can be fully liquidated instead of being capped by the debt close
            factor
          example: 95
        limits:
          type: object
          properties:
            depositWithdrawalCap:
              type:
                - object
                - 'null'
              properties:
                capacity:
                  $ref: '#/components/schemas/Decimal'
                currentTotal:
                  allOf:
                    - $ref: '#/components/schemas/Decimal'
                    - description: >-
                        Amount used in the current interval in UI token units.
                        Read as 0 once the interval has elapsed.
                intervalLengthSeconds:
                  type: integer
                lastIntervalStartTimestamp:
                  type: string
                  format: date-time
              required:
                - capacity
                - currentTotal
                - intervalLengthSeconds
                - lastIntervalStartTimestamp
              description: Deposit withdrawal cap, or null when the cap is not configured
            debtWithdrawalCap:
              type:
                - object
                - 'null'
              properties:
                capacity:
                  $ref: '#/components/schemas/Decimal'
                currentTotal:
                  allOf:
                    - $ref: '#/components/schemas/Decimal'
                    - description: >-
                        Amount used in the current interval in UI token units.
                        Read as 0 once the interval has elapsed.
                intervalLengthSeconds:
                  type: integer
                lastIntervalStartTimestamp:
                  type: string
                  format: date-time
              required:
                - capacity
                - currentTotal
                - intervalLengthSeconds
                - lastIntervalStartTimestamp
              description: Debt withdrawal cap, or null when the cap is not configured
          required:
            - depositWithdrawalCap
            - debtWithdrawalCap
        proofOfReserves:
          type: object
          properties:
            verified:
              type: boolean
            address:
              $ref: '#/components/schemas/AddressBase58'
          required:
            - verified
            - address
        oracle:
          type:
            - object
            - 'null'
          properties:
            priceChain:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    description: Display name of the Scope price entry
                    example: Fixed 1
                  oracleType:
                    type: string
                    description: >-
                      Scope oracle type of the entry, or Unknown when the type
                      is newer than the API supports
                    example: FixedPrice
                  provider:
                    type: string
                    description: >-
                      Price provider behind the entry. Currently one of Pyth,
                      Switchboard, Chainlink, Redstone or Scope; new providers
                      can be added without notice
                    example: Scope
                  priceId:
                    type: integer
                    description: Index of the entry in the Scope price feed
                    example: 13
                  nested:
                    type:
                      - object
                      - 'null'
                    properties:
                      type:
                        type: string
                        description: >-
                          Composite Scope oracle type. Currently one of
                          CappedFloored, MostRecentOf or CappedMostRecentOf; new
                          composite types can be added without notice
                        example: CappedFloored
                      source:
                        type:
                          - object
                          - 'null'
                        properties:
                          name:
                            type: string
                            description: Display name of the Scope price entry
                            example: Fixed 1
                          oracleType:
                            type: string
                            description: >-
                              Scope oracle type of the entry, or Unknown when
                              the type is newer than the API supports
                            example: FixedPrice
                          provider:
                            type: string
                            description: >-
                              Price provider behind the entry. Currently one of
                              Pyth, Switchboard, Chainlink, Redstone or Scope;
                              new providers can be added without notice
                            example: Scope
                        required:
                          - name
                          - oracleType
                          - provider
                        description: >-
                          Source entry of a CappedFloored oracle, or null for
                          other types
                      sources:
                        type:
                          - array
                          - 'null'
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                              description: Display name of the Scope price entry
                              example: Fixed 1
                            oracleType:
                              type: string
                              description: >-
                                Scope oracle type of the entry, or Unknown when
                                the type is newer than the API supports
                              example: FixedPrice
                            provider:
                              type: string
                              description: >-
                                Price provider behind the entry. Currently one
                                of Pyth, Switchboard, Chainlink, Redstone or
                                Scope; new providers can be added without notice
                              example: Scope
                          required:
                            - name
                            - oracleType
                            - provider
                        description: >-
                          Source entries of a MostRecentOf or CappedMostRecentOf
                          oracle, or null for other types
                      cap:
                        type:
                          - object
                          - 'null'
                        properties:
                          name:
                            type: string
                            description: Display name of the Scope price entry
                            example: Fixed 1
                          oracleType:
                            type: string
                            description: >-
                              Scope oracle type of the entry, or Unknown when
                              the type is newer than the API supports
                            example: FixedPrice
                          provider:
                            type: string
                            description: >-
                              Price provider behind the entry. Currently one of
                              Pyth, Switchboard, Chainlink, Redstone or Scope;
                              new providers can be added without notice
                            example: Scope
                        required:
                          - name
                          - oracleType
                          - provider
                        description: >-
                          Entry that caps the price, or null when the price is
                          not capped
                      floor:
                        type:
                          - object
                          - 'null'
                        properties:
                          name:
                            type: string
                            description: Display name of the Scope price entry
                            example: Fixed 1
                          oracleType:
                            type: string
                            description: >-
                              Scope oracle type of the entry, or Unknown when
                              the type is newer than the API supports
                            example: FixedPrice
                          provider:
                            type: string
                            description: >-
                              Price provider behind the entry. Currently one of
                              Pyth, Switchboard, Chainlink, Redstone or Scope;
                              new providers can be added without notice
                            example: Scope
                        required:
                          - name
                          - oracleType
                          - provider
                        description: >-
                          Entry that floors the price, or null when the price is
                          not floored
                    required:
                      - type
                      - source
                      - sources
                      - cap
                      - floor
                    description: >-
                      Component entries of a composite Scope oracle, or null for
                      a plain entry
                required:
                  - name
                  - oracleType
                  - provider
                  - priceId
                  - nested
              description: >-
                Scope entries combined into the reserve price, or empty when the
                reserve has no Scope price chain
            twapChain:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    description: Display name of the Scope price entry
                    example: Fixed 1
                  oracleType:
                    type: string
                    description: >-
                      Scope oracle type of the entry, or Unknown when the type
                      is newer than the API supports
                    example: FixedPrice
                  provider:
                    type: string
                    description: >-
                      Price provider behind the entry. Currently one of Pyth,
                      Switchboard, Chainlink, Redstone or Scope; new providers
                      can be added without notice
                    example: Scope
                  priceId:
                    type: integer
                    description: Index of the entry in the Scope price feed
                    example: 13
                  nested:
                    type:
                      - object
                      - 'null'
                    properties:
                      type:
                        type: string
                        description: >-
                          Composite Scope oracle type. Currently one of
                          CappedFloored, MostRecentOf or CappedMostRecentOf; new
                          composite types can be added without notice
                        example: CappedFloored
                      source:
                        type:
                          - object
                          - 'null'
                        properties:
                          name:
                            type: string
                            description: Display name of the Scope price entry
                            example: Fixed 1
                          oracleType:
                            type: string
                            description: >-
                              Scope oracle type of the entry, or Unknown when
                              the type is newer than the API supports
                            example: FixedPrice
                          provider:
                            type: string
                            description: >-
                              Price provider behind the entry. Currently one of
                              Pyth, Switchboard, Chainlink, Redstone or Scope;
                              new providers can be added without notice
                            example: Scope
                        required:
                          - name
                          - oracleType
                          - provider
                        description: >-
                          Source entry of a CappedFloored oracle, or null for
                          other types
                      sources:
                        type:
                          - array
                          - 'null'
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                              description: Display name of the Scope price entry
                              example: Fixed 1
                            oracleType:
                              type: string
                              description: >-
                                Scope oracle type of the entry, or Unknown when
                                the type is newer than the API supports
                              example: FixedPrice
                            provider:
                              type: string
                              description: >-
                                Price provider behind the entry. Currently one
                                of Pyth, Switchboard, Chainlink, Redstone or
                                Scope; new providers can be added without notice
                              example: Scope
                          required:
                            - name
                            - oracleType
                            - provider
                        description: >-
                          Source entries of a MostRecentOf or CappedMostRecentOf
                          oracle, or null for other types
                      cap:
                        type:
                          - object
                          - 'null'
                        properties:
                          name:
                            type: string
                            description: Display name of the Scope price entry
                            example: Fixed 1
                          oracleType:
                            type: string
                            description: >-
                              Scope oracle type of the entry, or Unknown when
                              the type is newer than the API supports
                            example: FixedPrice
                          provider:
                            type: string
                            description: >-
                              Price provider behind the entry. Currently one of
                              Pyth, Switchboard, Chainlink, Redstone or Scope;
                              new providers can be added without notice
                            example: Scope
                        required:
                          - name
                          - oracleType
                          - provider
                        description: >-
                          Entry that caps the price, or null when the price is
                          not capped
                      floor:
                        type:
                          - object
                          - 'null'
                        properties:
                          name:
                            type: string
                            description: Display name of the Scope price entry
                            example: Fixed 1
                          oracleType:
                            type: string
                            description: >-
                              Scope oracle type of the entry, or Unknown when
                              the type is newer than the API supports
                            example: FixedPrice
                          provider:
                            type: string
                            description: >-
                              Price provider behind the entry. Currently one of
                              Pyth, Switchboard, Chainlink, Redstone or Scope;
                              new providers can be added without notice
                            example: Scope
                        required:
                          - name
                          - oracleType
                          - provider
                        description: >-
                          Entry that floors the price, or null when the price is
                          not floored
                    required:
                      - type
                      - source
                      - sources
                      - cap
                      - floor
                    description: >-
                      Component entries of a composite Scope oracle, or null for
                      a plain entry
                required:
                  - name
                  - oracleType
                  - provider
                  - priceId
                  - nested
              description: >-
                Scope entries combined into the reserve TWAP, or empty when the
                reserve has no Scope TWAP chain
          required:
            - priceChain
            - twapChain
          description: >-
            Scope oracle composition of the reserve price and TWAP, or null when
            the Scope metadata is unavailable
      required:
        - token
        - collateralMintAddress
        - rateType
        - fixedTerm
        - debtMaturityTimestamp
        - status
        - interestRateBasis
        - hostFixedInterestRateBps
        - protocolTakeRatePct
        - supplyApy
        - borrowApy
        - underlyingApy
        - underlyingYieldExpected
        - supplyApyBreakdown
        - borrowApyBreakdown
        - utilization
        - autoDeleverage
        - supplyRewardApys
        - borrowRewardApys
        - pairIncentives
        - pointsPrograms
        - liquidityAvailable
        - liquidityAvailableUsd
        - actualAvailableLiquidity
        - actualAvailableLiquidityUsd
        - utilizationLimitBlockBorrowingAbovePct
        - borrowCaps
        - totalSupply
        - totalSupplyUsd
        - totalBorrow
        - totalBorrowUsd
        - liqLTV
        - maxLTV
        - borrowFactor
        - depositLimit
        - borrowLimit
        - minLiquidationBonus
        - maxLiquidationBonus
        - liquidationMaxDebtCloseFactorPct
        - insolvencyRiskUnhealthyLtvPct
        - limits
        - proofOfReserves
        - oracle
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error message for internal server failure
          example: An internal error occurred
      required:
        - error
      description: Internal server error response (500)
      example:
        error: An internal error occurred
    Apy:
      type: string
      description: >-
        APY in decimal format (not percentage) represented as string. Multiply
        by 100 to get percentage (%) - 0.1 in API response is 10%.
      example: '0.2'
      examples:
        - '0.123'
        - '0'
        - '1'
        - '1.23'
        - '-0.5'
        - '999999.999999'
    Decimal:
      type: string
      description: Decimal value represented as string
      example: '1234.56789'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.