Perpetual futures
Whole perps market
Perps across ~1,600 assets: trending, movers, funding, funding_gaps, premium, open_interest, liquidations, whales, new_listings, weekend, lean, leverage, builds, venues, market_series, funding_heatmap, returns, rsi, sessions.
get_perps_marketcurl https://mcp.optimistfi.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_perps_market","arguments":{"view":"funding_gaps","limit":5}}}'When a model calls it
Models choose a tool from its description. This is the one the server publishes:
Perps across ~1,600 assets: trending, movers, funding, funding_gaps, premium, open_interest, liquidations, whales, new_listings, weekend, lean, leverage, builds, venues, market_series, funding_heatmap, returns, rsi, sessions. Use when the user asks: where can I trade 100x. Not for: one market → get_perps. Args: view; window; market; leverage.
- where can I trade 100x
For something else: get_perps.
Parameters
viewstringdefault "trending"
trending- where open interest is building over window (1h, 4h or 24h), and the most active markets
movers- the largest 24-hour price moves up and down
funding- the highest and lowest funding now, annualized and weighted by open interest
funding_gaps- the same market long on one venue and short on another, what each leg pays or earns after funding and borrow, and the gap
funding_matrix- every market on every venue, largest open interest first: its funding now (hourly, per 8 hours and annualized), the venue's predicted rate where it publishes one, the funding interval, stablecoin- or coin-margined, and open interest
premium- listings trading furthest above or below the index they settle on (for a stock perp, the stock's price)
open_interest- the largest markets by open interest, with the 24-hour change
liquidations- per market, the dollars of longs and shorts liquidated over window, most first
whales- single trades of $100K or more and single liquidations of $10K or more over window, largest first, plus the newest trades, each market's net whale buying or selling, totals over time, and big accounts' long and short positioning
new_listings- markets venues listed within window
weekend- while US stocks are shut, every stock perp's move since the close (one stock: get_perps)
lean- where Hyperliquid's accounts worth $1M or more lean on each market, long against short, with each side's leverage and open profit
hl_cohorts- every Hyperliquid account's positioning across its markets, or one market's with `market`: accounts and dollars long and short, the share of open interest held, and cohorts by account equity and by all-time P&L, each with its accounts in profit and in loss
position_changes- the largest changes in Hyperliquid accounts' positions over window (15m, 1h, 4h or 24h), what each did (opened, added, reduced, closed, flipped) and the account's size cohort, never the account
twaps- Hyperliquid TWAP orders running now, their remaining size and the buying and selling they schedule over the next hour and day
leverage- every perp offered at `leverage` or more, the venues and their caps, and the move that liquidates at each
builds- markets where open interest kept building for two to seven days while the price lagged, ranked
venues- every venue on OptimistFi's perps pages, with its network, settlement, funding interval and markets
hlp- HLP, Hyperliquid's liquidation backstop vault: its account value and cumulative P&L now, its return month by month and year by year, annualized, and its max drawdowns
oi_caps- on Hyperliquid and each of its builder dexes, the markets at their open-interest cap and since when, and each market's cap against its open interest now, nearest the cap first
basis- for one coin (market), each dated future's premium to its index on Deribit, OKX, Kraken and Gate, annualized, and the 90-day constant-maturity basis over 30 days
options- for one coin (market), Deribit's options by expiry: ATM implied volatility (the term structure), 25-delta call and put IVs and skew, call and put open interest and their ratio, volume, max pain, open interest by strike, and the 30-day ATM IV and skew over 30 days
market_series- open interest and 24-hour volume in total and per venue over window (24h hourly, 7d every 4 hours, 30d, 90d or 1y daily), the share of BTC, ETH and the rest, each point with the venues it covers, the venues first read inside the window, the like-for-like total over the venues read across all of it (sameVenues), and each venue's liquidations over the hours it recorded
funding_heatmap- funding weighted by open interest, annualized, every 4 hours over the last week, for each market holding $10M or more
returns- how many markets moved how far over window (24h or 7d) in 5% buckets, and the largest gainers and losers with their open-interest change
rsi- RSI(14) on completed hourly, 4-hour and daily closes, each with its last close; window picks the one ranked (1h, 4h, or 24h for daily), or market reads one
sessions- for one market over 30 days, the average return by UTC hour and weekday and the cumulative return of the Asia, Europe and US sessions
Accepts trending, movers, funding, funding_gaps, funding_matrix, premium, open_interest, liquidations, whales, new_listings, weekend, lean, hl_cohorts, position_changes, twaps, leverage, builds, venues, hlp, oi_caps, basis, options, market_series, funding_heatmap, returns, rsi, sessions.
asset_classstring
Only this kind of market; unset reads every class.
Accepts crypto, equity, index, commodity, fx.
windowstringdefault "24h"
Look-back for liquidations, whales, new_listings and trending (positions building over 1h, 4h or 24h), position_changes (15m, 1h, 4h or 24h; 7d reads 24h), returns (24h or 7d) and market_series (24h, 7d, 30d, 90d or 1y; only it reads 30d to 1y); rsi's 1h, 4h or 24h picks the closes ranked. movers covers 24 hours; funding, funding_gaps, funding_matrix, premium and open_interest read the latest hourly reading.
Accepts 15m, 1h, 4h, 24h, 7d, 30d, 90d, 1y.
limitintegerdefault 10
Rows per list, up to 25.
marketstring
One market (BTC, NVDA, gold) for whales, funding_gaps, funding_matrix, premium, new_listings, oi_caps, funding_heatmap, rsi, hl_cohorts, position_changes and twaps; the market sessions reads; for basis and options, the coin they read (BTC, ETH, SOL). Unset reads every market.
venuestring
One venue id (hyperliquid, dydx, aster, lighter, gmx, …) for whales and new_listings.
sidestring
whales only: buys or sells (a short liquidated counts as a buy, a long as a sell).
Accepts buy, sell.
min_usdnumber
whales: smallest trade in USD; funding_gaps and premium: smallest open interest per listing (default $100K).
At least 0.
leverageinteger
leverage view only: the leverage, one of 5, 10, 20, 50, 100, 200 or 500.
provenbooleandefault false
whales only: true keeps the trades of proven whales, accounts whose large positions kept winning after they were picked.
offsetintegerdefault 0
Rows to skip in each list: with limit, pages through a list's full length (count gives it where a view reports one; funding_matrix pages every row, the other views reach 2,000).
At least 0.
marginstring
funding_matrix only: stablecoin-margined markets (settled in a dollar stablecoin or US dollars), coin-margined (settled in the market's own coin), or either (each position takes a coin or a stablecoin); unset reads every market.
Accepts stablecoin, coin, either.
Response
A real response to the example call, trimmed: lists cut to two items, long text cut short. The result's content holds the answer as JSON text; parsed, it reads:
{
"type": "perps_market",
"as_of": "2026-10-12T17:00:00Z",
"confidence": "reported",
"source": {
"name": "OptimistFi perps data layer — each venue's public market data, read hourly",
"url": "https://optimistfi.com/perps/funding",
"license": "computed"
},
"data": {
"view": "funding_gaps",
"asOf": "2026-10-12T17:00:00Z",
"gaps": [
{
"base": "GTC",
"assetClass": "crypto",
"long": {
"venue": "aster",
"fundingAnnualized": -21.9,
"openInterestUsd": 190983
},
"short": {
"venue": "kucoin",
"fundingAnnualized": -1.53,
"openInterestUsd": 2493840
},
"gapAnnualized": 20.37,
"gapHourly": 0.002325,
"thinnerLegOpenInterestUsd": 190983,
"venues": 3,
"priceGapBps": 98.7
},
{
"base": "NATGAS",
"assetClass": "commodity",
"long": {
"venue": "phemex",
"fundingAnnualized": 0.1095,
"openInterestUsd": 4164501
},
"short": {
"venue": "kraken",
"fundingAnnualized": 14.62,
"openInterestUsd": 205014
},
"gapAnnualized": 14.51,
"gapHourly": 0.001656,
"thinnerLegOpenInterestUsd": 205014,
"venues": 20,
"priceGapBps": 351
},
"… 3 more"
],
"note": "Posted funding and borrow rates only, from each venue's latest hourly reading; trading fees, slippage and rates moving before the next settlement are outside these numbers."
}
}Fields are explained in Reading a response.
Errors
isError: true and the reason in words. A company or market the server cannot match comes back as a result naming what was not found. See Errors and limits.