> ## 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 charts for a reserve

> Get the current raw borrow rate curve and historical base supply and borrow APYs for a reserve.



## OpenAPI

````yaml /kamino-api.json get /reserves/{reservePubkey}/charts
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:
  /reserves/{reservePubkey}/charts:
    get:
      tags:
        - Kamino Lend Reserves
      summary: Get charts for a reserve
      description: >-
        Get the current raw borrow rate curve and historical base supply and
        borrow APYs for a reserve.
      parameters:
        - schema:
            allOf:
              - $ref: '#/components/schemas/AddressBase58'
              - description: Kamino Lend reserve public key
                example: FBSyPnxtHKLBZ4UeeUyAnbtFuAmTHLtso9YtsqRDRWpM
          required: true
          description: Kamino Lend reserve public key
          name: reservePubkey
          in: path
        - schema:
            type: string
            default: KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD
            description: KLend program ID
            example: KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD
          required: false
          description: KLend program ID
          name: programId
          in: query
        - schema:
            type: string
            enum:
              - hour
              - day
            default: hour
            description: Frequency of the snapshots
            example: hour
          required: false
          description: Frequency of the snapshots
          name: frequency
          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/ReserveChartsResponse'
        '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
        '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'
components:
  schemas:
    AddressBase58:
      type: string
      description: Valid base58-encoded address
      example: VEG1EMtttdHunMbSza8uoms1R18VXmYSph2bBpHcSJd
    ReserveChartsResponse:
      type: object
      properties:
        borrowCurve:
          type: array
          items:
            $ref: '#/components/schemas/BorrowRateCurvePoint'
        history:
          type: array
          items:
            $ref: '#/components/schemas/ReserveChartsHistoryPoint'
      required:
        - borrowCurve
        - history
    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
    BorrowRateCurvePoint:
      type: object
      properties:
        utilizationRateBps:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Utilization rate in basis points
              example: '8000'
        borrowRateBps:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - description: Borrow rate in basis points
              example: '500'
      required:
        - utilizationRateBps
        - borrowRateBps
    ReserveChartsHistoryPoint:
      type: object
      properties:
        timestamp:
          allOf:
            - $ref: '#/components/schemas/SnapshotDateTime'
            - description: Timestamp when the snapshot was created (ISO 8601 format)
              example: '2025-03-01T12:00:00.000Z'
        supplyApy:
          allOf:
            - $ref: '#/components/schemas/Apy'
            - description: Base supply APY at this point in time
              example: '0.0412'
        borrowApy:
          allOf:
            - $ref: '#/components/schemas/Apy'
            - description: Base borrow APY at this point in time
              example: '0.0621'
        totalSupply:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - type:
                - string
                - 'null'
              description: Total reserve supply in UI token units, or null when unavailable
              example: '125000.5'
        totalSupplyUsd:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - type:
                - string
                - 'null'
              description: Total reserve supply in USD, or null when unavailable
              example: '250001'
        totalBorrow:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - type:
                - string
                - 'null'
              description: Total reserve borrow in UI token units, or null when unavailable
              example: '50000.2'
        totalBorrowUsd:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - type:
                - string
                - 'null'
              description: Total reserve borrow in USD, or null when unavailable
              example: '100000.4'
        utilization:
          allOf:
            - $ref: '#/components/schemas/Decimal'
            - type:
                - string
                - 'null'
              description: >-
                Reserve utilization ratio from 0 to 1, calculated as
                totalBorrowUsd / totalSupplyUsd, or null when unavailable
              example: '0.4'
      required:
        - timestamp
        - supplyApy
        - borrowApy
        - totalSupply
        - totalSupplyUsd
        - totalBorrow
        - totalBorrowUsd
        - utilization
    Decimal:
      type: string
      description: Decimal value represented as string
      example: '1234.56789'
    SnapshotDateTime:
      type: string
      format: date-time
      description: Timestamp of the metrics snapshot
      example: '2023-06-29T15:15:26.464Z'
    Apy:
      type: string
      description: Borrow interest APY
      example: '0.027610992938039702'
      examples:
        - '0.123'
        - '0'
        - '1'
        - '1.23'
        - '-0.5'
        - '999999.999999'

````