/api/sol/perp/* REST endpoints field-for-field. All *UsdE6 and price/size integers are native ClickHouse UInt64 returned as Int64-safe values (divide by 1,000,000 for USD-scaled fields). Timestamps are millis-since-epoch.
marketId is always <venue>:<SYMBOL>-PERP (e.g. jup:SOL-PERP). Today only jup is supported.
perpMarkets
List supported perpetuals with last-24h volume and trade counts.
Arguments
Return type
volume24HUsd is in USDC e6 (Jupiter size_usd_delta convention).
Example
perpCandles
OHLCV candles per market and timeframe. Backed by perp_ohlcv_{1s,1m,5m,15m,1h,4h,1d}.
Arguments
Return type
Example
perpOi
Per-minute open-interest series sampled from perp_positions. Read this alongside perpCandles to overlay long/short OI on the chart.
Arguments
Return type
perpTrades
Recent fills (taker prints) on a market, newest first.
Arguments
Return type
action is derived from the fill’s on-chain extra: open opens a new
position, add increases an existing one, reduce partially closes, close
fully closes. fill means no lifecycle fields were present (Phoenix bridge
fills, legacy rows). realizedPnlE6 carries realized PnL for reduce/close.
perpLiquidations
Liquidation events on a market, newest first.
Arguments
Return type
perpMarketOrders
Pending or historical trigger orders on a market — feeds the orderbook view. Aggregates the multi-row perp_orders event log per orderId via argMax. Excludes orders whose underlying position has been liquidated or fully closed.
Arguments
Return type
triggerAbove encodes the comparison direction: true = fire when oracle ≥ triggerPrice, false = fire when oracle ≤ triggerPrice. The combination with side derives whether the order is a TP or SL.
perpWalletPositions
Open positions for one wallet. Latest row per position_pubkey from perp_positions FINAL where is_open = 1.
Arguments
Return type
perpWalletTrades
Fills for one wallet across every market.
Arguments
Return type
perpWalletLiquidations
Liquidation events for one wallet across every market.
Arguments
Return type
perpWalletOrders
Pending or historical trigger orders for one wallet. Same PerpOrder shape as perpMarketOrders.
Arguments
Example
perpWalletPnl
Per-(market, venue) volume and fees aggregate for one wallet. Sourced from the _mv_perp_wallet_positions materialized view.
Arguments
Return type
grossPnlE6 is intentionally 0 until the parser surfaces realized PnL; netPnlE6 exposes only the negative-fees component to make this state explicit. Don’t display either as “PnL” until both fields are populated.
