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

# Get Kamino Bundle

> All active Kamino obligations with full position data and risk/yield calculations — health factor, LTV, interest rates, APY projections. One entry per active market obligation.

**Credits:** 15 per matching obligation, before pagination.



## OpenAPI

````yaml /openapi.yaml get /v1/lending/kamino
openapi: 3.1.0
info:
  title: DeFi Orbit API
  version: 1.0.0
  description: Public REST API for DeFi Orbit positions, lending, portfolio, and usage.
servers:
  - url: https://api.defiorbit.xyz
security:
  - bearerAuth: []
tags:
  - name: Portfolio
  - name: Snapshots
  - name: Uniswap V3
  - name: Aerodrome V3
  - name: Orca
  - name: Aave V3
  - name: Morpho
  - name: Kamino
  - name: Usage
paths:
  /v1/lending/kamino:
    get:
      tags:
        - Kamino
      summary: Get Kamino Bundle
      description: >-
        All active Kamino obligations with full position data and risk/yield
        calculations — health factor, LTV, interest rates, APY projections. One
        entry per active market obligation.


        **Credits:** 15 per matching obligation, before pagination.
      operationId: get_v1_lending_kamino
      parameters:
        - name: wallet
          in: query
          required: true
          schema:
            type: string
            description: Solana wallet.
            example: 7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8
            x-default: 7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8
        - name: page
          in: query
          required: false
          schema:
            type: integer
            description: 'Page. Default: 1.'
            default: 1
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            description: 'Maximum 25. Default: 10.'
            default: 10
            maximum: 25
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/RequestId'
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          type: object
                          properties:
                            chain_id:
                              type: integer
                            wallet:
                              type: string
                            target_health_factor:
                              type: string
                              description: >-
                                Health factor used for safe-borrow and
                                safe-withdraw figures. Default 1.5.
                            position:
                              type: object
                              properties:
                                marketAddress:
                                  type: string
                                marketName:
                                  type: string
                                obligationAddress:
                                  type: string
                                healthFactor:
                                  type: string
                                  description: >-
                                    String. Aave divides
                                    liquidation-threshold-weighted collateral by
                                    debt. Morpho divides collateral × oracle
                                    price × LLTV by debt, to four decimals.
                                    Kamino divides liquidation LTV by LTV. MAX
                                    or ∞ when there is no debt.
                                totalCollateralUSD:
                                  type: string
                                totalDebtUSD:
                                  type: string
                                netWorthUSD:
                                  type: string
                              required:
                                - marketAddress
                                - marketName
                                - obligationAddress
                                - healthFactor
                                - totalCollateralUSD
                                - totalDebtUSD
                                - netWorthUSD
                            calculations:
                              type: object
                              properties:
                                netAPY:
                                  type: string
                                netDailyInterestUSD:
                                  type: string
                                weightedSupplyAPY:
                                  type: string
                                weightedBorrowAPY:
                                  type: string
                                healthFactor:
                                  type: string
                                  description: >-
                                    String. Aave divides
                                    liquidation-threshold-weighted collateral by
                                    debt. Morpho divides collateral × oracle
                                    price × LLTV by debt, to four decimals.
                                    Kamino divides liquidation LTV by LTV. MAX
                                    or ∞ when there is no debt.
                                projectedEarnings:
                                  type: object
                                  properties:
                                    daily:
                                      type: string
                                    weekly:
                                      type: string
                                    monthly:
                                      type: string
                                    yearly:
                                      type: string
                                  required:
                                    - daily
                                    - weekly
                                    - monthly
                                    - yearly
                              required:
                                - netAPY
                                - netDailyInterestUSD
                                - weightedSupplyAPY
                                - weightedBorrowAPY
                                - healthFactor
                                - projectedEarnings
                          required:
                            - chain_id
                            - wallet
                            - target_health_factor
                            - position
                            - calculations
                      pagination:
                        $ref: '#/components/schemas/Pagination'
                    required:
                      - data
                      - pagination
              example:
                data:
                  - chain_id: 101
                    wallet: 7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8
                    target_health_factor: '1.50'
                    position:
                      marketAddress: C7h9YnjPrDvNhe2cWWDhCu4CZEB1XTTH4RzjmsHuengV
                      marketName: Main
                      obligationAddress: HwxMtLM5cezFSQLe7h9Y3REUhVCZkgvHkCdXTBLxPqmZ
                      healthFactor: '2.10'
                      totalCollateralUSD: '1000.00'
                      totalDebtUSD: '400.00'
                      netWorthUSD: '600.00'
                    calculations:
                      netAPY: '7.30'
                      netDailyInterestUSD: '0.12'
                      weightedSupplyAPY: '7.30'
                      weightedBorrowAPY: '7.30'
                      healthFactor: '2.10'
                      projectedEarnings:
                        daily: '0.12'
                        weekly: '0.84'
                        monthly: '3.60'
                        yearly: '43.80'
                pagination:
                  page: 1
                  limit: 10
                  total: 1
                  next_page: null
                  prev_page: null
                request_id: req_...
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        '502':
          $ref: '#/components/responses/BadGateway'
components:
  schemas:
    RequestId:
      type: object
      required:
        - request_id
      properties:
        request_id:
          type: string
          description: Id to quote when you contact support.
    Pagination:
      type: object
      required:
        - page
        - limit
        - total
        - next_page
        - prev_page
      properties:
        page:
          type: integer
        limit:
          type: integer
        total:
          type: integer
          description: Matching rows, before this page is sliced.
        next_page:
          type: string
          nullable: true
          description: URL of the next page, or null on the last page.
        prev_page:
          type: string
          nullable: true
          description: URL of the previous page, or null on the first page.
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - request_id
          properties:
            code:
              type: string
            message:
              type: string
            request_id:
              type: string
  responses:
    BadRequest:
      description: Missing or invalid parameter.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: INVALID_PARAMETER
              message: page must be a positive integer.
              request_id: req_...
    Unauthorized:
      description: Missing, malformed, invalid, or revoked API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: INVALID_API_KEY
              message: Missing API key.
              request_id: req_...
    PaymentRequired:
      description: The organization does not have enough credits.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: INSUFFICIENT_CREDITS
              message: Insufficient API credits.
              request_id: req_...
    Forbidden:
      description: The organization is suspended, or the endpoint or feature is disabled.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: ACCOUNT_SUSPENDED
              message: This organization is suspended.
              request_id: req_...
    TooManyRequests:
      description: The organization exceeded its requests-per-second limit.
      headers:
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
        X-RateLimit-Limit:
          description: Requests per second for the organization.
          schema:
            type: integer
        X-RateLimit-Remaining:
          description: Requests left in the current window.
          schema:
            type: integer
        X-RateLimit-Reset:
          description: Unix time when the window resets.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: RATE_LIMIT_EXCEEDED
              message: Rate limit exceeded. Please try again later.
              request_id: req_...
    InternalError:
      description: Unexpected server error, or pricing is not configured.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: INTERNAL_ERROR
              message: An unexpected error occurred.
              request_id: req_...
    BadGateway:
      description: The upstream data provider failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: UPSTREAM_ERROR
              message: Portfolio data provider temporarily unavailable.
              request_id: req_...
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Paste your API key from the
        [dashboard](https://platform.defiorbit.xyz/dashboard/keys). The key
        starts with `do_sk_`.
      x-default: YOUR_API_KEY

````

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