GET
/api/v1/futures/premium-indexStartup tier+ · 80 req/minLatest 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.