Kamino Kamino Earn Vaults API

The Kamino Earn Vaults API from Kamino — 8 operation(s) for kamino earn vaults.

OpenAPI Specification

kamino-kamino-earn-vaults-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: 1.0.0
  title: Kamino Public Airdrop Kamino Earn Vaults 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
tags:
- name: Kamino Earn Vaults
paths:
  /kvaults/transactions:
    post:
      summary: Bulk get KVault transactions
      description: Bulk get all Kamino Earn Vault transactions with paginated access (max 1000 transactions returned in each response). Private (authorized) API access only, please add a basic auth header to your request.
      tags:
      - Kamino Earn Vaults
      parameters:
      - schema:
          type: string
          default: KvauGMspG5k6rtzrqqn7WNn3oZdyKqLKwK2XWQ8FLjd
          description: Fetch transactions from this program id
        required: false
        description: Fetch transactions from this program id
        name: programId
        in: query
      - schema:
          type: string
          default: false
        required: false
        name: includeRawJson
        in: query
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                start:
                  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-01-01T00:00Z
                end:
                  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
                instruction:
                  type: string
                  example: buy
                  examples:
                  - buy
                  - sell
                  - deposit
                  - withdraw
                  - invest
                  - withdrawAvailable
                  description: Kvault instruction name
                paginationToken:
                  type: string
                  example: eyJsYXN0SWQiOjgxfQ==
                  description: Optional pagination token
              required:
              - instruction
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: array
                    items:
                      $ref: '#/components/schemas/KvaultBulkTransaction'
                  paginationToken:
                    type: string
                    example: eyJsYXN0SWQiOjgxfQ==
                    description: Optional pagination token - if not present you have reached the end
                required:
                - result
        '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:
                        nullable: true
                    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
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error message describing why it was not authorized
                    example: Not authorized for this request. Please include the basic auth headers.
                required:
                - error
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /kvaults/vaults/{pubkey}/transactions:
    post:
      summary: Get KVault transactions by vault
      description: Get all Kamino Earn Vault transactions for a given vault address
      tags:
      - Kamino Earn Vaults
      parameters:
      - schema:
          $ref: '#/components/schemas/AddressBase58'
        required: true
        description: Valid base58-encoded address
        name: pubkey
        in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                start:
                  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-01-01T00:00Z
                end:
                  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
                instruction:
                  type: string
                  example: withdraw
                  description: Filter by instruction name
                direction:
                  type: string
                  enum:
                  - asc
                  - desc
                  default: desc
                  description: Sort order (asc for oldest first, desc for newest first)
                  example: desc
                paginationToken:
                  type: string
                  example: eyJsYXN0SWQiOjgxfQ==
                  description: Optional pagination token
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KvaultVaultTransactionsResponse'
        '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:
                        nullable: true
                    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'
  /kvaults/vaults/{pubkey}/enqueued-withdraw-transactions:
    get:
      summary: Get currently queued withdraw-ticket redemptions for a vault
      description: Returns `enqueueToWithdraw` klend transactions that were triggered by a kvault `redeemInKind` on this vault and whose underlying withdraw ticket is still queued on-chain (i.e. has not been fully redeemed or cancelled).
      tags:
      - Kamino Earn Vaults
      parameters:
      - schema:
          $ref: '#/components/schemas/AddressBase58'
        required: true
        description: Valid base58-encoded address
        name: pubkey
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnqueuedWithdrawTransactionsResponse'
        '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:
                        nullable: true
                    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'
  /kvaults/vaults:
    get:
      summary: Get all kvaults
      description: Get all Kamino Earn Vaults
      tags:
      - Kamino Earn Vaults
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VaultStateArray'
        '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:
                        nullable: true
                    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'
  /kvaults/vaults/{pubkey}:
    get:
      summary: Get KVault by address
      description: Get a single Kamino Earn Vault by the KVault account address
      tags:
      - Kamino Earn Vaults
      parameters:
      - schema:
          $ref: '#/components/schemas/AddressBase58'
        required: true
        description: Valid base58-encoded address
        name: pubkey
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  address:
                    allOf:
                    - $ref: '#/components/schemas/AddressBase58'
                    - description: Public key of the vault
                  state:
                    $ref: '#/components/schemas/The vault state object'
                  programId:
                    allOf:
                    - $ref: '#/components/schemas/AddressBase58'
                    - description: Public key of the kvault program which owns the vault
                required:
                - address
                - state
                - programId
        '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:
                        nullable: true
                    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'
  /kvaults/vaults/{pubkey}/metrics/history:
    get:
      summary: Get historical KVault metrics
      description: Get historical Kamino Earn Vault metrics for a given vault, between an optional range of dates
      tags:
      - Kamino Earn Vaults
      parameters:
      - schema:
          $ref: '#/components/schemas/AddressBase58'
        required: true
        description: Valid base58-encoded address
        name: pubkey
        in: path
      - schema:
          anyOf:
          - type: string
          - type: number
          default: '1970-01-01T00:00:00.000Z'
          description: Start date of the range (defaults to Unix epoch). Accepts ISO string or epoch in ms.
          examples:
          - '1970-01-01T00:00:00.000Z'
          - 0
        required: false
        description: Start date of the range (defaults to Unix epoch). Accepts ISO string or epoch in ms.
        name: start
        in: query
      - schema:
          anyOf:
          - type: string
          - type: number
          description: End date of the range (defaults to current time). Accepts ISO string or epoch in ms.
          examples:
          - '2025-01-01T00:00:00.000Z'
          - 1735689600000
        required: false
        description: End date of the range (defaults to current time). Accepts ISO string or epoch in ms.
        name: end
        in: query
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    timestamp:
                      type: number
                      description: Unix timestamp in milliseconds
                    tvl:
                      allOf:
                      - $ref: '#/components/schemas/Decimal'
                      - description: Total Value Locked in token denomination
                    solTvl:
                      allOf:
                      - $ref: '#/components/schemas/Decimal'
                      - description: Total Value Locked in SOL
                    apy:
                      allOf:
                      - $ref: '#/components/schemas/Apy'
                      - description: Annual Percentage Yield
                        example: '0.2'
                    apyTheoretical:
                      allOf:
                      - $ref: '#/components/schemas/Apy'
                      - description: Theoretical Annual Percentage Yield
                        example: '0.2'
                    apyActual:
                      allOf:
                      - $ref: '#/components/schemas/Apy'
                      - description: Actual Annual Percentage Yield
                        example: '0.2'
                    apyFarmRewards:
                      allOf:
                      - $ref: '#/components/schemas/Apy'
                      - description: Annual Percentage Yield from Farm Rewards
                        example: '0.2'
                    apyReservesIncentives:
                      allOf:
                      - $ref: '#/components/schemas/Apy'
                      - description: Annual Percentage Yield from Reserves Incentives
                        example: '0.2'
                    apyIncentives:
                      allOf:
                      - $ref: '#/components/schemas/Apy'
                      - description: Annual Percentage Yield from Incentives
                        example: '0.2'
                    sharePrice:
                      allOf:
                      - $ref: '#/components/schemas/Decimal'
                      - description: Share Price of the vault
                    interest:
                      allOf:
                      - $ref: '#/components/schemas/Decimal'
                      - description: Interest earned in token denomination
                    interestUsd:
                      allOf:
                      - $ref: '#/components/schemas/Decimal'
                      - description: Interest earned in USD
                    interestSol:
                      allOf:
                      - $ref: '#/components/schemas/Decimal'
                      - description: Interest earned in SOL
                    reserves:
                      type: array
                      items:
                        type: object
                        properties:
                          pubkey:
                            allOf:
                            - $ref: '#/components/schemas/AddressBase58'
                            - description: Public key of the reserve
                          supplyApy:
                            allOf:
                            - $ref: '#/components/schemas/Apy'
                            - description: Supply Annual Percentage Yield
                              example: '0.2'
                          rewardsApy:
                            allOf:
                            - $ref: '#/components/schemas/Apy'
                            - description: Rewards Annual Percentage Yield
                              example: '0.2'
                          allocationRatio:
                            allOf:
                            - $ref: '#/components/schemas/Decimal'
                            - description: Allocation Ratio
                          rewardTokens:
                            type: array
                            items:
                              type: object
                              properties:
                                tokenMint:
                                  allOf:
                                  - $ref: '#/components/schemas/AddressBase58'
                                  - description: Token mint address
                                apy:
                                  allOf:
                                  - $ref: '#/components/schemas/Apy'
                                  - description: Annual Percentage Yield for the reward token
                                    example: '0.2'
                              required:
                              - tokenMint
                              - apy
                            description: List of reward tokens for the reserve
                        required:
                        - pubkey
                        - supplyApy
                        - rewardsApy
                        - allocationRatio
                        - rewardTokens
                      description: List of reserves with rewards
                    vaultRewards:
                      type: array
                      items:
                        type: object
                        properties:
                          tokenMint:
                            allOf:
                            - $ref: '#/components/schemas/AddressBase58'
                            - description: Token mint address
                          apy:
                            allOf:
                            - $ref: '#/components/schemas/Apy'
                            - description: Annual Percentage Yield for the vault reward token
                              example: '0.2'
                        required:
                        - tokenMint
                        - apy
                      description: List of vault reward tokens
                  required:
                  - timestamp
                  - tvl
                  - solTvl
                  - apy
                  - apyTheoretical
                  - apyActual
                  - apyFarmRewards
                  - apyReservesIncentives
                  - apyIncentives
                  - sharePrice
                  - interest
                  - interestUsd
                  - interestSol
                  - reserves
                  - vaultRewards
        '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:
                        nullable: true
                    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'
  /kvaults/vaults/{pubkey}/metrics:
    get:
      summary: Get current KVault metrics
      description: Get current Kamino Earn Vault metrics for a given vault
      tags:
      - Kamino Earn Vaults
      parameters:
      - schema:
          $ref: '#/components/schemas/AddressBase58'
        required: true
        description: Valid base58-encoded address
        name: pubkey
        in: path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KvaultMetrics'
        '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:
                        nullable: true
                    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'
  /kvaults/vaults/{pubkey}/allocation-volume/history:
    get:
      summary: Get historical KVault allocation volume
      description: Get historical Kamino Earn Vault allocation volume for a given vault and date range (max 1 year)
      tags:
      - Kamino Earn Vaults
      parameters:
      - schema:
          $ref: '#/components/schemas/AddressBase58'
        required: true
        description: Valid base58-encoded address
        name: pubkey
        in: path
      - 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-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:
                type: array
                items:
                  type: object
                  properties:
                    timestamp:
                      type: string
                      format: date
                      description: Timestamp of the investment volume data point
                    volumeUsd:
                      allOf:
                      - $ref: '#/components/schemas/Decimal'
                      - description: Investment volume in USD
                  required:
                  - timestamp
                  - volumeUsd
                description: Array of investment volume data points
        '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:
                        nullable: true
                    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:
    KvaultVaultTransactionsResponse:
      type: object
      properties:
        result:
          type: array
          items:
            $ref: '#/components/schemas/KvaultVaultTransaction'
        paginationToken:
          type: string
          example: eyJsYXN0SWQiOjgxfQ==
          description: Optional pagination token
      required:
      - result
    AddressBase58:
      type: string
      description: Valid base58-encoded address
      example: VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd
    EnqueuedWithdrawTransactionsResponse:
      type: array
      items:
        $ref: '#/components/schemas/KlendWithdrawQueueTransactionV3'
    KvaultEnrichedInstruction:
      type: object
      properties:
        market:
          type: string
          description: KLend market public key
          example: EyV4jxSMd6vpuRgrxMFem7CKRhcB4Vv6WMRDtxPQNP4
        reserve:
          type: string
          description: KLend reserve public key
          example: ALnjBHECcdBsSwgVJ6A8pFEZ15qxE5jJQriCXSKT3Bte
        solPrice:
          $ref: '#/components/schemas/Decimal'
        sharePrice:
          $ref: '#/components/schemas/Decimal'
        tokenPrice:
          $ref: '#/components/schemas/Decimal'
        tokenAmount:
  

# --- truncated at 32 KB (51 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kamino/refs/heads/main/openapi/kamino-kamino-earn-vaults-api-openapi.yml