> ## 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 Obligation Events

> Raw obligation history from Kamino's analytics: blockTimestamp, market and obligation addresses, and a nested snapshot (collateral, debt, net worth, health factor). Not a transaction list, and not the mapped snapshots body. Requires market_address from the list or bundle endpoint.

**Credits:** 1 per successful call.



## OpenAPI

````yaml /openapi.yaml get /v1/lending/kamino/position/{obligation_address}/events
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/position/{obligation_address}/events:
    get:
      tags:
        - Kamino
      summary: Get Obligation Events
      description: >-
        Raw obligation history from Kamino's analytics: blockTimestamp, market
        and obligation addresses, and a nested snapshot (collateral, debt, net
        worth, health factor). Not a transaction list, and not the mapped
        snapshots body. Requires market_address from the list or bundle
        endpoint.


        **Credits:** 1 per successful call.
      operationId: get_v1_lending_kamino_position_obligation_address_events
      parameters:
        - name: obligation_address
          in: path
          required: true
          schema:
            type: string
            description: Obligation address.
            example: HwxMtLM5cezFSQLe7h9Y3REUhVCZkgvHkCdXTBLxPqmZ
            x-default: HwxMtLM5cezFSQLe7h9Y3REUhVCZkgvHkCdXTBLxPqmZ
        - name: wallet
          in: query
          required: true
          schema:
            type: string
            description: Solana wallet.
            example: 7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8
            x-default: 7FvUzcCoB4Eeykow6PdR3dZLL8WHvqkNr8bKgUKzaiM8
        - name: market_address
          in: query
          required: true
          schema:
            type: string
            description: Kamino market address.
            example: C7h9YnjPrDvNhe2cWWDhCu4CZEB1XTTH4RzjmsHuengV
            x-default: C7h9YnjPrDvNhe2cWWDhCu4CZEB1XTTH4RzjmsHuengV
        - 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:
                            blockTimestamp:
                              type: number
                            marketAddress:
                              type: string
                            obligationAddress:
                              type: string
                            snapshot:
                              type: object
                              properties:
                                totalCollateralUSD:
                                  type: string
                                totalDebtUSD:
                                  type: string
                                netWorthUSD:
                                  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.
                              required:
                                - totalCollateralUSD
                                - totalDebtUSD
                                - netWorthUSD
                                - healthFactor
                          required:
                            - blockTimestamp
                            - marketAddress
                            - obligationAddress
                            - snapshot
                      pagination:
                        $ref: '#/components/schemas/Pagination'
                    required:
                      - data
                      - pagination
              example:
                data:
                  - blockTimestamp: 1725148800
                    marketAddress: C7h9YnjPrDvNhe2cWWDhCu4CZEB1XTTH4RzjmsHuengV
                    obligationAddress: HwxMtLM5cezFSQLe7h9Y3REUhVCZkgvHkCdXTBLxPqmZ
                    snapshot:
                      totalCollateralUSD: '1000.00'
                      totalDebtUSD: '400.00'
                      netWorthUSD: '600.00'
                      healthFactor: '2.10'
                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.