> ## 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 wallet earnings and growth history for all tokens

> Get earn history grouped by token mint across vaults and lending deposits for the requested obligation types. Mints with no buckets in the range are omitted.



## OpenAPI

````yaml /kamino-api.json get /v3/earn/users/{userPubkey}/tokens/metrics/history
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}/tokens/metrics/history:
    get:
      tags:
        - Earn
      summary: Get wallet earnings and growth history for all tokens
      description: >-
        Get earn history grouped by token mint across vaults and lending
        deposits for the requested obligation types. Mints with no buckets in
        the range are omitted.
      parameters:
        - schema:
            allOf:
              - $ref: '#/components/schemas/AddressBase58'
              - description: User wallet address
          required: true
          description: User wallet address
          name: userPubkey
          in: path
        - 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
        - schema:
            anyOf:
              - type: string
              - type: number
            default: '1970-01-01T00:00:00.000Z'
            description: Date input (ISO 8601 string or epoch in ms)
            examples:
              - '2024-01-01T00:00:00.000Z'
              - 1704067200000
            example: 2020-01-01T00:00Z
          required: false
          description: Date input (ISO 8601 string or epoch in ms)
          name: start
          in: query
        - schema:
            anyOf:
              - type: string
              - type: number
            description: Date input (ISO 8601 string or epoch in ms)
            examples:
              - '2024-01-01T00:00:00.000Z'
              - 1704067200000
            example: 2020-02-01T00:00Z
          required: false
          description: Date input (ISO 8601 string or epoch in ms)
          name: end
          in: query
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EarnUserTokensHistoryResponse'
        '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
    EarnUserTokensHistoryResponse:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/EarnUserTokenHistoryResponse'
    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
    EarnUserTokenHistoryResponse:
      type: array
      items:
        $ref: '#/components/schemas/EarnUserTokenHistoryItem'
    EarnUserTokenHistoryItem:
      type: object
      properties:
        createdOn:
          type: string
          format: date-time
          description: Bucket timestamp
        usdAmount:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Total position value in USD at this bucket
        interestEarnedUsd:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Interest earned in USD during this bucket
      required:
        - createdOn
        - usdAmount
        - interestEarnedUsd
    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.