Skip to main content
Loading market data…
GET/api/v1/futures/premium-indexStartup tier+ · 80 req/min

Latest mark-vs-index premium snapshot across every connected perp venue.

The premium index is the percentage gap between the perp's mark price and its index (spot-basket) reference. Persistently positive values across venues = longs crowded (contango); negative = shorts crowded. Returns `tableMissing: true` until the premium_index collector lands.

Query parameters

This endpoint takes no query parameters.

Response shape

Always wrapped in the standard envelope. Nullable fields are explicitly marked — treat missing numeric data as a real data-source gap, not as an error.

data payloadtypescript
// Wrapped in the standard envelope:
// {
//   data: /* shape below */,
//   meta?: { total?: number; limit?: number; offset?: number; ... }
// }

{
  rows: Array<{
    source: string;
    base: string;
    canonicalSymbol: string;
    markPrice: number;
    indexPrice: number;
    premiumAbs: number;
    premiumPct: number;
    ts: number;
  }>;
  tableMissing: boolean;
  lastTs: number | null;
}

Example

Copy the curl, replace YOUR_KEY with a real key from your dashboard, and run.

Requestbash
curl -sS "http://localhost:3000/api/v1/futures/premium-index" \
  -H "Authorization: Bearer cg_live_YOUR_KEY"
Responsejson
{
  "data": {
    "rows": [
      {
        "source": "binance_futures",
        "base": "BTC",
        "canonicalSymbol": "BTCUSDT",
        "markPrice": 63201.5,
        "indexPrice": 63175.2,
        "premiumAbs": 26.3,
        "premiumPct": 0.0416,
        "ts": 1744835000000
      }
    ],
    "tableMissing": false,
    "lastTs": 1744835000000
  },
  "meta": { "total": 1, "tableMissing": false }
}

Notes

  • Large premium divergence between venues for the same coin is the core funding-arbitrage signal.
  • `tableMissing: true` means the collector is still pending — UIs should render an empty state.

Next

Check the error code reference, or get an API key to try the request against your own account.