---
title: "Exchange Funding Rate History"
method: GET
path: "/gateway/v1/exchange/funding-history"
tags: ["Exchange"]
---

# Exchange Funding Rate History

`GET /gateway/v1/exchange/funding-history`

## Request

- Base URL: `https://api.asksurf.ai`
- URL: `https://api.asksurf.ai/gateway/v1/exchange/funding-history`
- Auth: HTTP bearer

Returns historical funding rate records for a perpetual contract.

**Pagination:** use `from` to set the start time and `limit` to control result count. For longer history, pass the last returned timestamp as the next `from` value.

**Note:** not all exchanges support historical queries via `from`; some only return recent data regardless.

For the latest funding rate snapshot, see `/exchange/perp?fields=funding`.

## Query parameters

- `pair` string, required: Trading pair (e.g. BTC/USDT)
- `from` string: Start of time range. Accepts Unix seconds or date string (YYYY-MM-DD, ISO8601). Not all exchanges support historical queries; some only return recent data regardless of this value.
- `limit` integer: Max number of records. For longer history, paginate using the last returned timestamp as the next from value.
- `exchange` 'binance' | 'okx' | 'bybit' | 'bitget' | 'gate' | 'htx' | 'mexc' | 'bitfinex' | 'bitmex' | 'hyperliquid': Exchange identifier. Note: hyperliquid uses USDC-settled perps (e.g. BTC/USDC:USDC); pass USDC-quoted pairs when querying hyperliquid.

## Response `200`

OK

- SimpleListResponseExchangeFundingHistoryItem
  - `$schema` string, uri: A URL to the JSON Schema for this object.
  - `data` ExchangeFundingHistoryItem[], nullable, required
    - `exchange` string, required: Exchange identifier
    - `funding_interval_hours` integer, nullable, required: Funding interval in hours when known
    - `funding_rate` number, double, nullable, required: Raw funding rate at this settlement. Use funding_rate_8h for cross-exchange comparison when present.
    - `funding_rate_1h` number, double: Funding rate normalized to a 1-hour interval
    - `funding_rate_8h` number, double: Funding rate normalized to an 8-hour interval for cross-exchange comparison
    - `funding_rate_annualized` number, double: Simple annualized funding rate derived from the 1-hour normalized rate
    - `funding_rate_raw` number, double: Alias of funding_rate: raw funding rate for the exchange settlement interval
    - `pair` string, required: Perpetual contract pair like BTC/USDT
    - `timestamp` integer, nullable, required: Unix timestamp in seconds
  - `meta` ObjectResponseMeta, required
    - `cached` boolean, required: Whether this response was served from cache
    - `credits_used` integer, required: Credits deducted for this request
    - `empty_reason` string: Hint explaining why the data array is empty, when applicable

## Other responses

- `default`: Error

---

[API](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api.md) - [All operations](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api/revisions/91774fdd5302?raw)
