GET
/api/v1/futures/taker-volumeStartup tier+ · 80 req/minTaker buy vs sell volume per coin over a trailing window.
Which side is crossing the spread? Positive `bias` means aggressive buyers ate the offer more than aggressive sellers ate the bid — a real-time aggression gauge that often front-runs spot and OI moves by seconds.
Query parameters
All query parameters are optional unless marked required.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| hours | number | optional | 24 | Trailing window, hours. Max 720. |
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<{
base: string;
buyVolume: number;
sellVolume: number;
totalVolume: number;
buyShare: number;
sellShare: number;
bias: number; // in [-1, +1]
venueCount: number;
lastTs: number;
}>;
windowHours: number;
totals: { buyVolume: number; sellVolume: number; bias: number };
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/taker-volume?hours=24" \
-H "Authorization: Bearer cg_live_YOUR_KEY"Responsejson
{
"data": {
"rows": [
{ "base": "BTC", "buyVolume": 12400000000, "sellVolume": 11800000000, "totalVolume": 24200000000, "buyShare": 0.5124, "sellShare": 0.4876, "bias": 0.0248, "venueCount": 5, "lastTs": 1744834800000 }
],
"windowHours": 24,
"totals": { "buyVolume": 12400000000, "sellVolume": 11800000000, "bias": 0.0248 },
"lastTs": 1744834800000
},
"meta": { "total": 1, "windowHours": 24 }
}Next
Check the error code reference, or get an API key to try the request against your own account.