GET
/api/v1/on-chain/stablecoin/exchange-reservesStartup tier+ · 80 req/minLatest stablecoin balances held on major exchange wallets.
Aggregates the shared `exchange_balance` feed down to stablecoin symbols only, de-dups per (exchange, symbol) with the newest snapshot winning, and sorts by USD notional descending. Rising stablecoin reserves on exchanges are a classic 'dry powder' signal for incoming spot buys.
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; ... }
// }
{
reserves: Array<{
exchange: string;
symbol: string;
ts: number;
balanceUsd: 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/on-chain/stablecoin/exchange-reserves" \
-H "Authorization: Bearer cg_live_YOUR_KEY"Responsejson
{
"data": {
"reserves": [
{ "exchange": "binance", "symbol": "USDT", "ts": 1744834800000, "balanceUsd": 18400000000 },
{ "exchange": "coinbase", "symbol": "USDC", "ts": 1744834800000, "balanceUsd": 5200000000 }
]
},
"meta": { "total": 2 }
}Notes
- Depends on the wallet-scraper worker emitting stablecoin-flavoured rows.
- Empty response carries `meta.unavailable = "no-data"` — a 200, not a 500.
Next
Check the error code reference, or get an API key to try the request against your own account.