Spot-Perp Arbitrage
Spot-perp arbitrage captures the funding rate paid between long and short perpetual futures holders by simultaneously holding an offsetting spot position. This endpoint scans 4 exchanges in real time, deduplicates symbols, computes annualized returns, and returns opportunities sorted by APR.
List spot-perp opportunities
Returns an array of spot-perp arbitrage opportunities ranked by annualized return. Each opportunity includes the current funding rate, 7-day cumulative rate, APR, portfolio direction, and next settlement time. Stale rates older than 6 hours are excluded.
Query parameters
- Name
exchange- Type
- string
- Description
Filter by exchange. One of
all,Binance,OKX,Bybit,Bitget. Defaults toall.
- Name
direction- Type
- string
- Description
Filter by portfolio direction. One of
all,long,short. Defaults toall. Ashortdirection means buy spot and short the perp (when funding rate is positive);longmeans sell spot and long the perp (when funding rate is negative).
Request
curl -G https://www.sharpe.ai/api/v1/arbitrage/spot-perp \
-H "Authorization: Bearer sk_live_your_key_here" \
-d exchange=all \
-d direction=all
{
"data": [
{
"symbol": "DOGE",
"exchange": "Binance",
"fundingRate": 0.000320,
"cumRate7d": 0.006720,
"apr": 1.1680,
"intervalHours": 8,
"direction": "short",
"portfolio": {
"spotSide": "buy",
"perpSide": "short"
},
"nextFundingTime": "2026-03-28T08:00:00Z"
},
{
"symbol": "ETH",
"exchange": "OKX",
"fundingRate": 0.000150,
"cumRate7d": 0.003150,
"apr": 0.5475,
"intervalHours": 8,
"direction": "short",
"portfolio": {
"spotSide": "buy",
"perpSide": "short"
},
"nextFundingTime": "2026-03-28T08:00:00Z"
}
],
"meta": {
"request_id": "req_abc123def456ghij",
"timestamp": "2026-03-28T07:45:00Z"
}
}
Response fields
Each object in the data array represents a single arbitrage opportunity on one exchange.
- Name
symbol- Type
- string
- Description
The base asset ticker (e.g.,
BTC,ETH,DOGE).
- Name
exchange- Type
- string
- Description
Exchange identifier (
Binance,OKX,Bybit, orBitget).
- Name
fundingRate- Type
- number
- Description
Current funding rate as a decimal (e.g.,
0.0001= 0.01%). This is the per-interval rate.
- Name
cumRate7d- Type
- number | null
- Description
Cumulative funding rate over the last 7 days.
nullif no accumulated data is available.
- Name
apr- Type
- number
- Description
Annualized return as a decimal (e.g.,
0.3= 30%). Computed by extrapolating the current rate across all intervals in a year.
- Name
intervalHours- Type
- number
- Description
Hours between funding settlements. Typically
8, but some exchanges use1or4.
- Name
direction- Type
- string
- Description
Portfolio direction:
short(buy spot, short perp — when funding rate >= 0) orlong(sell spot, long perp — when funding rate < 0).
- Name
portfolio- Type
- object
- Description
Breakdown of the hedge portfolio. Contains
spotSide(buyorsell) andperpSide(longorshort).
- Name
nextFundingTime- Type
- string | null
- Description
ISO 8601 timestamp of the next scheduled funding settlement, or
nullif unavailable.
{
"symbol": "BTC",
"exchange": "Bybit",
"fundingRate": 0.000100,
"cumRate7d": 0.002100,
"apr": 0.3650,
"intervalHours": 8,
"direction": "short",
"portfolio": {
"spotSide": "buy",
"perpSide": "short"
},
"nextFundingTime": "2026-03-28T16:00:00Z"
}