GET
/api/v1/statusFree tier · 10 req/minAdapter health + per-table row counts — the public mirror of the internal /status page.
Call this from your own monitoring before you fire more expensive endpoint calls. The `banner` summarises system health; `adapters` lists every ingest worker with its last heartbeat; `tables` shows ingest volumes per table (so you can spot a stalled feed). Integrators typically check this on a 30-second cron.
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; ... }
// }
{
banner: {
status: "ok" | "degraded" | "down";
summary: string;
degradedCount: number;
};
adapters: Array<{
source: string;
status: "ok" | "degraded" | "down";
message: string;
metrics: Record<string, string>;
lastHeartbeatMs: number;
lastHeartbeatIso: string;
secondsSinceHeartbeat: number;
}>;
tables: Array<{
table: string;
total: number;
lastHourAdds: number;
error?: string;
}>;
}Example
Copy the curl, replace YOUR_KEY with a real key from your dashboard, and run.
Requestbash
curl -sS "http://localhost:3000/api/v1/status"Responsejson
{
"data": {
"banner": {
"status": "ok",
"summary": "All 18 adapters healthy.",
"degradedCount": 0
},
"adapters": [
{
"source": "binance_futures",
"status": "ok",
"message": "buffer=42 in=1204 out=1204",
"metrics": { "buffer": "42", "in": "1204", "out": "1204" },
"lastHeartbeatMs": 1744835110000,
"lastHeartbeatIso": "2026-04-17T04:25:10.000Z",
"secondsSinceHeartbeat": 4
}
],
"tables": [
{ "table": "liquidation", "total": 1824321, "lastHourAdds": 2105 },
{ "table": "open_interest", "total": 512410, "lastHourAdds": 360 }
]
},
"meta": { "total": 1 }
}Notes
- Anonymous-tier friendly — no key required. Use for uptime dashboards.
- Polling more than once every 10s is wasteful — worker heartbeats are written on a ~5s interval.
Next
Check the error code reference, or get an API key to try the request against your own account.