GET
/api/v1/funding-ratesStartup tier+ · 80 req/minCurrent funding matrix across every exchange, or per-coin history for carry-strategy backtests.
Funding rates are what perpetual swap longs pay shorts (or vice versa) to keep price pinned to spot. Without `coin`, you get a pivot table (coin × exchange) of the latest rates plus the current extremes — useful for spotting cross-venue funding arb. With a `coin`, you get a daily time series for that single asset, good for backtesting funding-carry strategies.
Query parameters
All query parameters are optional unless marked required.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| coin | string | optional | — | Switch to time-series mode for a single base asset. |
| days | number | optional | 7 | Only honoured when `coin` is supplied. Trailing window. Max 90. |
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; ... }
// }
// Matrix mode (no coin):
{
coins: string[];
exchanges: string[];
matrix: Record<string, Record<string, {
rate: number;
apr: number;
ts: number;
} | null>>;
newestTs: number | null;
extremes: {
positive: Array<{ coin: string; exchange: string; rate: number }>;
negative: Array<{ coin: string; exchange: string; rate: number }>;
};
}
// History mode (coin supplied):
{
base: string;
days: number;
points: Array<{ ts: number; rate: number; apr: number }>;
}Example
Copy the curl, replace YOUR_KEY with a real key from your dashboard, and run.
Requestbash
curl -sS "http://localhost:3000/api/v1/funding-rates?coin=ETH&days=7" \
-H "Authorization: Bearer cg_live_YOUR_KEY"Responsejson
{
"data": {
"base": "ETH",
"days": 7,
"points": [
{ "ts": 1744220400000, "rate": 0.0001, "apr": 10.95 },
{ "ts": 1744249200000, "rate": 0.00008, "apr": 8.76 }
]
},
"meta": { "total": 2, "days": 7 }
}Notes
- APR is annualised from the 8-hour funding interval — (`rate × 3 × 365`).
- Empty `points` for an obscure coin is a valid 200, not a 404.
Next
Check the error code reference, or get an API key to try the request against your own account.