Crypto Perpetual Funding Rate History (by Exchange & Pair)
omnial/exchange-funding-history
Given a trading pair and an exchange, returns a time series of historical perpetual futures funding rate records for that pair -- the raw rate plus its 1-hour, 8-hour, and annualized normalizations at each interval -- up to 500 records per call.
Price
$0.00819 per call
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $0.50.
Data source
Binance, OKX, Bybit, Bitget, Hyperliquid and other exchanges
Funding rates from the exchange you select: Binance by default, or OKX, Bybit, Bitget, Hyperliquid and others.
Use it
Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.
Connect once and your AI can find and run this tool, and any other it needs.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "omnial/exchange-funding-history" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/exchange-funding-history" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/exchange-funding-history", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/exchange-funding-history", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.00819 |
- Updated
- Oct 25, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"pair"
],
"properties": {
"from": {
"type": "string",
"minLength": 1,
"description": "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. Example: 2026-03-01."
},
"pair": {
"type": "string",
"minLength": 1,
"description": "Trading pair (e.g. BTC/USDT). Example: BTC/USDT."
},
"limit": {
"type": "integer",
"default": 100,
"maximum": 500,
"minimum": 1,
"description": "Max number of records. For longer history, paginate using the last returned timestamp as the next from value. Example: 100. Defaults to 100."
},
"exchange": {
"enum": [
"binance",
"okx",
"bybit",
"bitget",
"gate",
"htx",
"mexc",
"bitfinex",
"bitmex",
"hyperliquid"
],
"type": "string",
"default": "binance",
"description": "Exchange identifier. Note: hyperliquid uses USDC-settled perps (e.g. BTC/USDC:USDC); pass USDC-quoted pairs when querying hyperliquid. Example: binance. Defaults to \"binance\"."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Present only on a rejected call, e.g. an unrecognized pair. Observed value: 'HTTP_400'."
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"pair": {
"type": "string",
"description": "The trading pair as the exchange itself denotes it -- observed WITHOUT a ':USDC' settlement suffix even when the request pair included one (requesting 'BTC/USDC:USDC' on hyperliquid returned pair 'BTC/USDC')."
},
"exchange": {
"type": "string",
"description": "Echoes the requested exchange, e.g. 'binance', 'hyperliquid'."
},
"timestamp": {
"type": "integer",
"description": "Unix seconds marking the funding interval."
},
"funding_rate": {
"type": "number",
"description": "The rate for this interval. Observed negative on some intervals (e.g. -0.0000015)."
},
"funding_rate_1h": {
"type": "number",
"description": "funding_rate normalized to a 1-hour rate."
},
"funding_rate_8h": {
"type": "number",
"description": "funding_rate normalized to an 8-hour rate."
},
"funding_rate_raw": {
"type": "number",
"description": "Typically identical to funding_rate; kept as its own field since the vendor returns it separately."
},
"funding_interval_hours": {
"type": "integer",
"description": "How often this exchange pays funding. Observed 8 for binance, 1 for hyperliquid -- not the same across exchanges."
},
"funding_rate_annualized": {
"type": "number",
"description": "funding_rate compounded to a yearly rate."
}
},
"additionalProperties": false
},
"description": "One entry per funding interval. Present only on a successful call."
},
"meta": {
"type": "object",
"properties": {
"cached": {
"type": "boolean",
"description": "Whether this response was served from the provider's cache. Typically false."
}
},
"description": "Present only on a successful call.",
"additionalProperties": false
},
"message": {
"type": "string",
"description": "Human-readable detail accompanying `code`. Observed value: 'Invalid input: HTTP 400'."
}
},
"description": "The funding history response. A successful call returns `data`/`meta`; a rejected pair/exchange combination returns `code`/`message` instead -- the two shapes do not overlap.",
"additionalProperties": false
}