---
title: "Get historical lending rates for assets"
method: GET
path: "/api/v1/markets/lend/rate-history"
tags: ["Market"]
---

# Get historical lending rates for assets

`GET /api/v1/markets/lend/rate-history`

## Query parameters

- `asset_ids` string, nullable — Optional comma-separated list of asset IDs to filter for. If excluded, values will be returned for all assets.
- `interval` integer — Interval value E.g. for interval buckets of 2h: `interval=2&period=h`
- `period` union, required
  - 'h'
  - 'd'
  - 'w'
  - 'm'
  - 'y'
- `start` integer, required — Start timestamp for interval range (inclusive) Must be provided as unix timestamp (in seconds)
- `end` integer, required — End timestamp for interval range (inclusive) Must be provided as unix timestamp (in seconds)
- `offset` integer — Time series bucket offset
- `limit` integer — Maximum number of time buckets/intervals to return. For responses with multiple series, this limit is applied to each series individually rather than accumulating across series. This is a limit of returned *interval sections*, it is **not** a limit of returned *points*. In other words, `limit=200` will provide 200 time points for a single series. For multi-series responses, each series will also see the exact same set of 200 time points.

## Response `200`

Success response

- AssetRateHistoryObjResponse
  - `data` AssetRateHistory, required — Historical rates for assets
    - `range` object, required — Provides values for the requested range in it's entire width, regardless of page/limit.
      - `start` string, date-time, required
      - `end` string, date-time, required
      - `interval` Interval, required — Interval period & size
        - `value` integer, required
        - `unit` union, required
          - 'h'
          - 'd'
          - 'w'
          - 'm'
          - 'y'
    - `series` object[], required
      - `asset` AssetSpec, required — Provides a unique identifier for an asset for use throughout the Neptune API. IDs are unique across asset domains (contract tokens, native denoms, etc)
        - `id` string, required
        - `group` union, required
          - 'native'
          - 'token'
        - `group_key` string, required
      - `points` object[], required
        - `t` string, date-time, required
        - `v` string, nullable, required
    - `pagination` object, required — Values used for paginating the time series data
      - `next_offset` integer, nullable, required — The offset a client should use to fetch the next page of intervals (so long as limit remains unchanged)
      - `interval_count` integer, required — The total number of intervals/buckets for the provided interval parameters (size, period, start, end)
  - `error` unknown, required
  - `status` integer, required — HTTP status. Successful responses are guaranteed to be < `400`. Conversely, error responses are guaranteed to be >= `400`.
  - `status_text` string, required — HTTP status text

## Other responses

- `500` — Server error response
- `default`

## Changes

- **2026-03-31** `09b5978b7e7d` — 2 breaking, 10 info
  - added `subschema #9: JSON invalid, subschema #10: JSON decode, subschema #11: JSON body deserialize failure` to the `error/allOf[#/components/schemas/ErrorDataVariants]/anyOf[subschema #1: General/common error -> subschema #2: General/common error]/allOf[#/components/schemas/ErrorData]/kind/allOf[#/components/schemas/ErrorKind]/` response property `oneOf` list for the response status `500`
  - added `subschema #9: JSON invalid, subschema #10: JSON decode, subschema #11: JSON body deserialize failure` to the `error/allOf[#/components/schemas/ErrorDataVariants]/anyOf[subschema #1: General/common error -> subschema #2: General/common error]/allOf[#/components/schemas/ErrorData]/kind/allOf[#/components/schemas/ErrorKind]/` response property `oneOf` list for the response status `default`
  - added `#/components/schemas/ValidationErrorKind` to the `error/allOf[#/components/schemas/ErrorDataVariants]/anyOf[subschema #2: Validation error -> subschema #1: Validation error]/allOf[#/components/schemas/ValidationErrorData]/kind` response property `allOf` list for the response status `500`
  - added `#/components/schemas/ValidationErrorKind` to the `error/allOf[#/components/schemas/ErrorDataVariants]/anyOf[subschema #2: Validation error -> subschema #1: Validation error]/allOf[#/components/schemas/ValidationErrorData]/kind` response property `allOf` list for the response status `default`
  - …8 more
- …earlier changes not shown

[Full history](https://skmtc.dev/cryptechdev/apis/neptune-api-v2/changes/api/v1/markets/lend/rate-history/get.md)

---

[API](https://skmtc.dev/cryptechdev/apis/neptune-api-v2.md) · [All operations](https://skmtc.dev/cryptechdev/apis/neptune-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/cryptechdev/neptune-api-v2/revisions/05e0ec4b9b94/schema)
