# Exchange Funding History API

[Tools](/tools) / [Finance And Markets](/tools/category/finance-and-markets) / [Exchange Funding History](/tools/surf/exchange-funding-history)

Returns historical funding rate records for a perpetual contract.

Category: [Finance And Markets](/tools/category/finance-and-markets)

## Price

$0.0081 per successful call ≈ 123 calls with the $1 signup credit.

Input schema is not available in the local snapshot. Call inspect first; fill body and queryParams as required and replace any pathParams placeholders before running.

## Discover

```sh
curl https://keepbal.com/apis/v1/discover -H 'Authorization: Bearer YOUR_KEEPBAL_KEY' -H 'Content-Type: application/json' -d '{"query":"Exchange Funding History"}'
```

## Inspect

```sh
curl https://keepbal.com/apis/v1/inspect -H 'Authorization: Bearer YOUR_KEEPBAL_KEY' -H 'Content-Type: application/json' -d '{"publicId":"surf/exchange-funding-history"}'
```

## curl

```sh
curl https://keepbal.com/apis/v1/surf/exchange-funding-history \
  -H 'Authorization: Bearer YOUR_KEEPBAL_KEY' \
  -H 'Content-Type: application/json' \
  -d '{}'
```

## MCP run_tool

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "run_tool",
    "arguments": {
      "tool": "surf/exchange-funding-history",
      "input": {}
    }
  }
}
```

## Python

```python
import json, os, requests

# Inspect first and replace input_data with the required parameters.
input_data = json.loads("{}")
response = requests.post(
    "https://keepbal.com/apis/v1/surf/exchange-funding-history",
    headers={"Authorization": "Bearer " + os.environ["KEEPBAL_API_KEY"]},
    json=input_data,
)
response.raise_for_status()
print(response.json())
```

## Errors and billing

Failed provider calls are not charged. HTTP 400 invalid_request means invalid JSON or parameters, including missing pathParams. HTTP 401 missing_api_key or invalid_api_key means authentication is required. HTTP 402 insufficient_credits means insufficient balance; top up before retrying. HTTP 503 provider_unavailable means the provider is unavailable. A pending run can settle later; poll GET /apis/v1/runs/{id} instead of starting another execution.

## How much does this API cost?

$0.0081 per successful call

## How do I start?

Create a KeepBal account with $1 free credit, obtain an API key, and inspect this tool before running it.

## Related tools

- [Exchange Long Short Ratio](/tools/surf/exchange-long-short-ratio) — Returns historical long/short ratio for a perpetual contract. — $0.0081 per successful call
- [Exchange Perp](/tools/surf/exchange-perp) — Returns a perpetual futures snapshot for a trading pair: funding rate, open interest, mark/index price. — $0.0081 per successful call
- [Hyperliquid Account](/tools/surf/hyperliquid-account) — Returns a wallet&#39;s full portfolio across perps, spot, vaults, and staking in one call, with a perp+vault equity roll-up \(totalvalueusd is the total-equity figure a dashboard header should show, vs the perp-only equity on /performance and /positions\). — $0.0324 per successful call
- [Hyperliquid Candles](/tools/surf/hyperliquid-candles) — Returns market OHLCV candles for charting and trade-review overlays, ordered by opentime ascending. — $0.0324 per successful call
- [Hyperliquid Fills](/tools/surf/hyperliquid-fills) — Returns a wallet&#39;s individual fills \(fill-level executions\), newest first by default, with realized PnL, fees, and direction \(crossed=true marks a taker fill that took liquidity\). — $0.0324 per successful call
- [Hyperliquid Leaderboard](/tools/surf/hyperliquid-leaderboard) — Returns traders ranked by a chosen performance metric \(PnL by default\), with quality filters to exclude bots and brand-new accounts. — $0.0324 per successful call



[Start with $1 free credit](/sign-up)

[Tools](/tools) · [MCP documentation](/docs/mcp)
