GET /v1/funding-arbitrage
Scans all exchanges for funding rate spreads and returns arbitrage opportunities ranked by annualized return. The algorithm finds the max-rate and min-rate exchange for each symbol in O(N) time.
Query Parameters
Minimum annualized percentage return to include. Filters out low-spread opportunities.
Maximum number of opportunities to return.
Example
curl "https://api.crypton.dev/v1/funding-arbitrage?min_apr=50&limit=5"
{
"status" : "ok" ,
"timestamp" : 1709640000000 ,
"data" : [
{
"symbol" : "DOGE" ,
"long_exchange" : "hyperliquid" ,
"short_exchange" : "binance" ,
"long_rate" : -0.0200 ,
"short_rate" : 0.0350 ,
"spread" : 0.0550 ,
"apr_pct" : 6022.50
}
]
}
Response Fields
Sorted by apr_pct descending. Exchange with the lowest (most negative) funding rate. You would go long here (receiving funding).
Exchange with the highest (most positive) funding rate. You would go short here (receiving funding).
8h-normalized funding rate on the long exchange.
8h-normalized funding rate on the short exchange.
Rate difference: short_rate - long_rate. Always positive.
Annualized return: spread × 3 × 365 × 100. Assumes 3 funding events per day (8h interval). Does not account for trading fees, slippage, or margin requirements.
How It Works
Fetches funding rates from all exchanges (max 8 concurrent, via Semaphore)
Normalizes all rates to 8h equivalent (1h exchanges ×8)
For each symbol, finds the exchange with the highest and lowest rate
Calculates spread and APR
Filters by min_apr threshold
Returns top limit opportunities sorted by APR
The APR calculation is theoretical and does not account for:
Trading fees (typically 0.04-0.06% per trade)
Slippage on entry/exit
Margin requirements and capital lockup
Funding rate changes between collection intervals
Real returns will be significantly lower than displayed APR.
Field Reference
Field Type Description Granularity Example symbolstring Base asset symbol (normalized across exchanges) — "DOGE"long_exchangestring Exchange where you go long (lowest/most negative rate) — "hyperliquid"short_exchangestring Exchange where you go short (highest/most positive rate) — "binance"long_ratenumber 8h-normalized funding rate on long exchange (decimal) ~30s per exchange -0.0200short_ratenumber 8h-normalized funding rate on short exchange (decimal) ~30s per exchange 0.0350spreadnumber Rate difference: short_rate - long_rate (always ≥ 0) Computed on request 0.0550apr_pctnumber Annualized return: spread × 3 × 365 × 100 (theoretical) Computed on request 6022.50
Data Sources
Aggregates funding rates from 12 exchanges : Binance, Bybit, OKX, Bitget, KuCoin, Gate.io, MEXC, HTX, Deribit, BitMEX, Hyperliquid, dYdX. Rates from 1h-interval exchanges (Hyperliquid, dYdX) are normalized to 8h before spread calculation. Data refreshes every ~30 seconds per exchange with max 8 concurrent fetches.
Live Testing
# Find opportunities with >100% theoretical APR
curl -s "https://api.crypton.dev/v1/funding-arbitrage?min_apr=100&limit=3" | jq .
{
"status" : "ok" ,
"timestamp" : 1709640000000 ,
"data" : [
{
"symbol" : "DOGE" ,
"long_exchange" : "hyperliquid" ,
"short_exchange" : "binance" ,
"long_rate" : -0.0200 ,
"short_rate" : 0.0350 ,
"spread" : 0.0550 ,
"apr_pct" : 6022.50
},
{
"symbol" : "WIF" ,
"long_exchange" : "dydx" ,
"short_exchange" : "bybit" ,
"long_rate" : -0.0100 ,
"short_rate" : 0.0250 ,
"spread" : 0.0350 ,
"apr_pct" : 3832.50
}
]
}