# Funding Rate Arbitrage Scanner

> Funding Rate Arbitrage Scanner is a paid API for AI agents from derivs.duoleads.com, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-15).

Scans perpetual futures funding rates across 8 crypto exchanges to identify cross-venue arbitrage opportunities, ranked by net APR after fees.

## Facts

- Endpoint: GET https://derivs.duoleads.com/v1/funding-arbitrage?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/funding-rate-arbitrage-scanner-68eeb0c4
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ebPDn-VdSkIcsDMfgSFU5

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability funding-rate-arbitrage-scanner-68eeb0c4
```

Example prompt: Scan cross-exchange crypto perp funding rates and show me the top 10 arbitrage opportunities with at least 15% APR, assuming a 0.05% taker fee and a 30-day holding period — only include coins with more than $100,000 in 24h volume.

## When to prefer this

Choose this endpoint when you need to identify cross-venue funding rate arbitrage opportunities across multiple crypto perpetual futures exchanges in a single call. It is ideal for delta-neutral strategy discovery, carry trade screening, and fee-adjusted APR ranking across 8 major venues (Bybit, Hyperliquid, dYdX, Gate, Kraken, Bitfinex, Deribit, OKX). Prefer it over single-exchange funding rate endpoints when the goal is to find divergence between venues rather than monitor one exchange's rates. It requires no API key — just a USDC micropayment per call via x402 on Base.

## Known failure modes

- Invalid query parameter values (e.g. limit > 100, fee_pct > 1) return validation errors
- Venue data staleness: some exchanges may return stale=true if their feed is delayed
- Coins with no volume on one leg may be excluded when min_volume_usd > 0
- No opportunities returned if min_apr threshold is set too high relative to current market conditions
- Payment failure via x402/USDC on Base if wallet has insufficient funds or network issues
- Rate limiting if too many calls are made in quick succession

## How this service works

Perp funding rates, open interest, futures basis, implied volatility, liquidations, order book depth and a perp screener for crypto perpetual futures across 8 exchanges (Bybit, Hyperliquid, dYdX, Gate, Kraken, Bitfinex, Deribit, OKX), paid per call over x402 with USDC on Base. No account, no API key.

## Output

Returns a ranked list of cross-exchange funding rate arbitrage opportunities, each specifying the coin, the recommended long venue and short venue with their symbols, funding rates, APR, open interest, and 24h volume, plus computed gross APR, net APR after fees, fee cost percent, and breakeven days. Also includes metadata about venues scanned, staleness flags, applied filters, and a pointer to the funding history endpoint for spread stability checks.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [],
     "properties": {
      "limit": {
       "type": "string",
       "default": "20",
       "description": "Opportunities returned, 1-100. Default 20."
      },
      "fee_pct": {
       "type": "string",
       "default": "0.05",
       "description": "Taker fee per fill in percent of notional (0-1); 4 fills per round trip. Default 0.05."
      },
      "min_apr": {
       "type": "string",
       "default": "10",
       "description": "Minimum gross spread, in APR percent (0-10000). Default 10."
      },
      "holding_days": {
       "type": "string",
       "default": "30",
       "description": "Days the position is held, to amortise the fees in net_apr_pct (1-365). Default 30."
      },
      "min_volume_usd": {
       "type": "string",
       "default": "0",
       "description": "Liquidity filter: both legs need at least this 24 h volume in USD (0-1e12). Venues that publish no volume are excluded when > 0. Default 0."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "colo": null,
  "fees": {
   "fills": 4,
   "holding_days": 30,
   "taker_fee_pct": 0.05
  },
  "as_of": "2026-10-14T23:00:00Z",
  "count": 20,
  "units": {
   "oi_usd": "USD",
   "apr_pct": "simple annualised funding in percent",
   "net_apr_pct": "gross_apr_pct - fee_cost_pct * 365 / holding_days",
   "fee_cost_pct": "round-trip fees in percent of one leg's notional (4 fills x fee_pct)",
   "gross_apr_pct": "short-leg APR minus long-leg APR",
   "breakeven_days": "days of the gross spread that pay the round-trip fees",
   "volume_24h_usd": "USD"
  },
  "venues": [
   {
    "as_of": "2026-10-14T23:00:00Z",
    "coins": 23,
    "stale": false,
    "venue": "bybit"
   },
   {
    "as_of": "2026-10-14T23:00:00Z",
    "coins": 178,
    "stale": false,
    "venue": "hyperliquid"
   },
   {
    "as_of": "2026-10-14T23:00:00Z",
    "coins": 11,
    "stale": false,
    "venue": "dydx"
   }
  ],
  "filters": {
   "min_apr": 10,
   "min_volume_usd": 0
  },
  "see_also": {
   "params": [
    "coin",
    "venue"
   ],
   "reason": "Check how stable a spread is: past funding prints of one venue, up to 30 days.",
   "endpoint": "https://derivs.duoleads.com/v1/funding-history"
  },
  "disclaimer": "Data only, not investment advice, not a benchmark; not affiliated with any exchange",
  "request_id": "01KEXAMPLE0000000000000000",
  "coins_scanned": 188,
  "opportunities": [
   {
    "coin": "MOG",
    "long": {
     "rate": -0.000127961375,
     "venue": "kraken",
     "oi_usd": 18305.125,
     "symbol": "PF_MOGUSD",
     "apr_pct": -112.094,
     "interval_h": 1,
     "volume_24h_usd": 553.84639,
     "next_funding_time": "2026-10-15T00:00:00Z"
    },
    "short": {
     "rate": 0.00152027,
     "venue": "deribit",
     "oi_usd": 55856.904,
     "symbol": "1000MOG_USDC-PERPETUAL",
     "apr_pct": 166.47,
     "interval_h": 8,
     "volume_24h_usd": 0,
     "next_funding_time": null
    },
    "net_apr_pct": 276.13,
    "fee_cost_pct": 0.2,
    "gross_apr_pct": 278.564,
    "breakeven_days": 0.262059,
    "venues_compared": 4
   },
   {
    "coin": "ETC",
    "long": {
     "rate": -0.00061259,
     "venue": "bitfinex",
     "oi_usd": 295142.69,
     "symbol": "tETCF0:USTF0",
     "apr_pct": -67.0786,
     "interval_h": 8,
     "volume_24h_usd": null,
     "next_funding_time": "2026-10-15T00:00:00Z"
    },
    "short": {
     "rate": 0.0000125,
     "venue": "hyperliquid",
     "oi_usd": 3381121.8,
     "symbol": "ETC",
     "apr_pct": 1
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/funding-rate-arbitrage-scanner-68eeb0c4/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from derivs.duoleads.com](https://www.zero.xyz/host/derivs.duoleads.com/llms.txt)
