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

# Get a wallet earn summary

> Get live vault and lending deposits, idle eligible holdings, APYs, and wallet-global lifetime interest by token for the requested obligation types. Pass Vanilla,Lending,LendingFixedRate for Earn products.



## OpenAPI

````yaml /kamino-api.json get /v3/earn/users/{userPubkey}/summary
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:
  /v3/earn/users/{userPubkey}/summary:
    get:
      tags:
        - Earn
      summary: Get a wallet earn summary
      description: >-
        Get live vault and lending deposits, idle eligible holdings, APYs, and
        wallet-global lifetime interest by token for the requested obligation
        types. Pass Vanilla,Lending,LendingFixedRate for Earn products.
      parameters:
        - schema:
            allOf:
              - $ref: '#/components/schemas/AddressBase58'
              - description: User wallet address
          required: true
          description: User wallet address
          name: userPubkey
          in: path
        - schema:
            type: string
            default: KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD
            description: KLend program ID
            example: KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD
          required: false
          description: KLend program ID
          name: programId
          in: query
        - schema:
            anyOf:
              - type: string
              - type: array
                items:
                  type: string
            default:
              - Vanilla
              - Lending
              - LendingFixedRate
              - Multiply
              - MultiplyFixedRate
              - Leverage
              - LeverageFixedRate
            description: >-
              Obligation types to include. Defaults to all seven types for
              compatibility. Earn products are Vanilla, Lending, and
              LendingFixedRate. Allowed values: Vanilla, Lending,
              LendingFixedRate, Multiply, MultiplyFixedRate, Leverage,
              LeverageFixedRate.
            example: Vanilla,Lending,LendingFixedRate
          required: false
          description: >-
            Obligation types to include. Defaults to all seven types for
            compatibility. Earn products are Vanilla, Lending, and
            LendingFixedRate. Allowed values: Vanilla, Lending,
            LendingFixedRate, Multiply, MultiplyFixedRate, Leverage,
            LeverageFixedRate.
          name: obligationTypes
          in: query
        - schema:
            type: string
            description: >-
              Include private-credit vault positions, earnings, and activity
              alongside Earn vaults. Also accepts other truthy/falsy strings
              such as "1"/"0", "yes"/"no", "on"/"off".
            enum:
              - 'true'
              - 'false'
            default: 'false'
          required: false
          description: >-
            Include private-credit vault positions, earnings, and activity
            alongside Earn vaults. Also accepts other truthy/falsy strings such
            as "1"/"0", "yes"/"no", "on"/"off".
          name: includePrivateCredit
          in: query
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EarnUserSummaryResponse'
        '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
        '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
    EarnUserSummaryResponse:
      type: object
      properties:
        totalUsd:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Known earning and idle USD value across all tokens
        earningUsd:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Known USD value in earning positions
        idleUsd:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Known USD value held idle
        blendedApy:
          anyOf:
            - $ref: '#/components/schemas/Apy'
            - type: 'null'
          description: USD-weighted APY across all earning positions
        earnedToDateUsd:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: >-
                Lifetime vault and lending interest earned in USD for the
                requested obligation types
        interestEarnedPerSecondUsd:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Current estimated interest earned per second in USD
        tokens:
          type: array
          items:
            $ref: '#/components/schemas/EarnUserTokenSummary'
      required:
        - totalUsd
        - earningUsd
        - idleUsd
        - blendedApy
        - earnedToDateUsd
        - interestEarnedPerSecondUsd
        - tokens
    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
    Decimal:
      type: string
      description: Decimal value represented as string
      example: '1234.56789'
    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'
    EarnUserTokenSummary:
      type: object
      properties:
        mint:
          allOf:
            - $ref: '#/components/schemas/AddressBase58'
            - description: Token mint address
        symbol:
          type: string
          description: Token symbol
        decimals:
          type: integer
          minimum: 0
          description: Token mint decimals
        totalUsd:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Known earning and idle USD value
        earningUsd:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Known USD value held in earning positions
        idleUsd:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Known USD value held idle in the wallet
        tokenAmounts:
          type: object
          properties:
            earning:
              allOf:
                - $ref: '#/components/schemas/Decimal'
                - description: Underlying token amount in earning positions
            idle:
              allOf:
                - $ref: '#/components/schemas/Decimal'
                - description: Token amount held idle in the wallet
          required:
            - earning
            - idle
        blendedApy:
          anyOf:
            - $ref: '#/components/schemas/Apy'
            - type: 'null'
          description: USD-weighted APY across earning positions
        bestApy:
          anyOf:
            - $ref: '#/components/schemas/Apy'
            - type: 'null'
          description: Best current live vault APY for this token
        bestApyVault:
          anyOf:
            - $ref: '#/components/schemas/AddressBase58'
            - type: 'null'
          description: Vault offering the best current APY
        earnedToDateUsd:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: >-
                Lifetime vault and lending interest earned in USD for the
                requested obligation types
        positions:
          type: array
          items:
            $ref: '#/components/schemas/EarnPosition'
      required:
        - mint
        - symbol
        - decimals
        - totalUsd
        - earningUsd
        - idleUsd
        - tokenAmounts
        - blendedApy
        - bestApy
        - bestApyVault
        - earnedToDateUsd
        - positions
    EarnPosition:
      oneOf:
        - $ref: '#/components/schemas/EarnVaultPosition'
        - $ref: '#/components/schemas/EarnReservePosition'
      discriminator:
        propertyName: type
        mapping:
          vault: '#/components/schemas/EarnVaultPosition'
          reserve: '#/components/schemas/EarnReservePosition'
    EarnVaultPosition:
      type: object
      properties:
        tokenAmount:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Current underlying token amount
        usd:
          anyOf:
            - $ref: '#/components/schemas/Decimal'
            - type: 'null'
          description: Current USD value, or null when no price is available
        apy:
          anyOf:
            - $ref: '#/components/schemas/Apy'
            - type: 'null'
          description: Current position APY, or null when stats are unavailable
        earnedToDateUsd:
          anyOf:
            - $ref: '#/components/schemas/Decimal'
            - type: 'null'
          description: >-
            Lifetime interest earned in USD, or null when no historian row is
            available
        shareOfToken:
          anyOf:
            - $ref: '#/components/schemas/Decimal'
            - type: 'null'
          description: >-
            Share of the token earning USD value, or null when this position has
            no USD value
        type:
          type: string
          enum:
            - vault
        vault:
          allOf:
            - $ref: '#/components/schemas/AddressBase58'
            - description: Vault address
        name:
          type: string
          description: Vault display name
        product:
          type: string
          enum:
            - earn
            - privateCredit
          description: Vault product, returned only when includePrivateCredit is true
      required:
        - tokenAmount
        - usd
        - apy
        - earnedToDateUsd
        - shareOfToken
        - type
        - vault
        - name
    EarnReservePosition:
      type: object
      properties:
        tokenAmount:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Current underlying token amount
        usd:
          anyOf:
            - $ref: '#/components/schemas/Decimal'
            - type: 'null'
          description: Current USD value, or null when no price is available
        apy:
          anyOf:
            - $ref: '#/components/schemas/Apy'
            - type: 'null'
          description: Current position APY, or null when stats are unavailable
        earnedToDateUsd:
          anyOf:
            - $ref: '#/components/schemas/Decimal'
            - type: 'null'
          description: >-
            Lifetime interest earned in USD, or null when no historian row is
            available
        shareOfToken:
          anyOf:
            - $ref: '#/components/schemas/Decimal'
            - type: 'null'
          description: >-
            Share of the token earning USD value, or null when this position has
            no USD value
        type:
          type: string
          enum:
            - reserve
        market:
          allOf:
            - $ref: '#/components/schemas/AddressBase58'
            - description: KLend market address
        reserve:
          allOf:
            - $ref: '#/components/schemas/AddressBase58'
            - description: KLend reserve address
        obligation:
          allOf:
            - $ref: '#/components/schemas/AddressBase58'
            - description: KLend obligation address
        obligationTag:
          type: string
          enum:
            - Vanilla
            - Lending
            - LendingFixedRate
            - Multiply
            - MultiplyFixedRate
            - Leverage
            - LeverageFixedRate
          description: Portfolio obligation type tag
          example: Lending
      required:
        - tokenAmount
        - usd
        - apy
        - earnedToDateUsd
        - shareOfToken
        - type
        - market
        - reserve
        - obligation
        - obligationTag

````

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