Api Endpoint

Funding Rate Arbitrage Scanner

Funding arbitrage scanner across 8 exchanges (Bybit, Hyperliquid, dYdX, Gate, Kraken, Bitfinex, Deribit, OKX): for every coin the widest cross-venue perp funding spread, the long and short venue, both funding rates, gross and fee-adjusted net APR and breakeven days, with a 24h volume liquidity filter. Funding rate arbitrage, basis trade and carry screening of perpetual swaps. Data only, no advice. Bad input is free; under 3 venues not charged. Empty filter results are still charged.

Open interactive test console

Offering

Provider
derivs.duoleads.com
Method
GET
Offering type
Api Endpoint
Transport type
http
Category
Blockchain And Crypto
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://derivs.duoleads.com/v1/funding-arbitrage
MIME type
application/json
First seen
2026-10-16T01:50:24.663Z
Last seen
Tags
funding-arbitrage, Funding, funding-rates, perp, arbitrage

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
0.005 USDC
Atomic price: 5000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "5000",
    "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39"
  }
]

Observed health

Status
Healthy
Latest latency
264 ms
Average latency
1628 ms
HTTP status
402
Last checked
Reachability
92.9% over 14 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "const": "http"
    },
    "method": {
      "type": "string",
      "enum": [
        "GET"
      ]
    },
    "queryParams": {
      "type": "object",
      "properties": {
        "min_apr": {
          "type": "string",
          "pattern": "^[0-9]{1,13}(\\.[0-9]{1,8})?$",
          "default": "10",
          "description": "Minimum gross spread, in APR percent (0-10000). Default 10."
        },
        "min_volume_usd": {
          "type": "string",
          "pattern": "^[0-9]{1,13}(\\.[0-9]{1,8})?$",
          "default": "0",
          "description": "Liquidity filter: both legs need at least this 24 h volume in USD (a plain decimal number from 0 to 1000000000000). Venues that publish no volume are excluded when > 0. Default 0."
        },
        "fee_pct": {
          "type": "string",
          "pattern": "^[0-9]{1,13}(\\.[0-9]{1,8})?$",
          "default": "0.05",
          "description": "Taker fee per fill in percent of notional (0-1); 4 fills per round trip. Default 0.05."
        },
        "holding_days": {
          "type": "string",
          "pattern": "^0*([1-9]|1[0-9]|[2-8][0-9]{1}|9[0-9]|10[0-9]|1[1-8][0-9]{1}|19[0-9]|[2-2][0-9]{2}|30[0-9]|3[1-5][0-9]{1}|36[0-5])$",
          "default": "30",
          "description": "Days the position is held, to amortise the fees in net_apr_pct (1-365). Default 30."
        },
        "limit": {
          "type": "string",
          "pattern": "^0*([1-9]|1[0-9]|[2-8][0-9]{1}|9[0-9]|100)$",
          "default": "20",
          "description": "Opportunities returned, 1-100. Default 20."
        }
      },
      "required": []
    }
  },
  "required": [
    "type",
    "method"
  ],
  "additionalProperties": false
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "method": {
          "enum": [
            "GET"
          ],
          "type": "string"
        },
        "queryParams": {
          "properties": {
            "fee_pct": {
              "default": "0.05",
              "description": "Taker fee per fill in percent of notional (0-1); 4 fills per round trip. Default 0.05.",
              "type": "string"
            },
            "holding_days": {
              "default": "30",
              "description": "Days the position is held, to amortise the fees in net_apr_pct (1-365). Default 30.",
              "type": "string"
            },
            "limit": {
              "default": "20",
              "description": "Opportunities returned, 1-100. Default 20.",
              "type": "string"
            },
            "min_apr": {
              "default": "10",
              "description": "Minimum gross spread, in APR percent (0-10000). Default 10.",
              "type": "string"
            },
            "min_volume_usd": {
              "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.",
              "type": "string"
            }
          },
          "required": [],
          "type": "object"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method"
      ],
      "type": "object"
    },
    "output": {
      "properties": {
        "example": {
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}