Skip to main content

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

min_apr
number
default:"10"
Minimum annualized percentage return to include. Filters out low-spread opportunities.
limit
integer
default:"20"
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

data
array
Sorted by apr_pct descending.

How It Works

  1. Fetches funding rates from all exchanges (max 8 concurrent, via Semaphore)
  2. Normalizes all rates to 8h equivalent (1h exchanges ×8)
  3. For each symbol, finds the exchange with the highest and lowest rate
  4. Calculates spread and APR
  5. Filters by min_apr threshold
  6. 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

FieldTypeDescriptionGranularityExample
symbolstringBase asset symbol (normalized across exchanges)"DOGE"
long_exchangestringExchange where you go long (lowest/most negative rate)"hyperliquid"
short_exchangestringExchange where you go short (highest/most positive rate)"binance"
long_ratenumber8h-normalized funding rate on long exchange (decimal)~30s per exchange-0.0200
short_ratenumber8h-normalized funding rate on short exchange (decimal)~30s per exchange0.0350
spreadnumberRate difference: short_rate - long_rate (always ≥ 0)Computed on request0.0550
apr_pctnumberAnnualized return: spread × 3 × 365 × 100 (theoretical)Computed on request6022.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
    }
  ]
}