GET /v1/status
Returns the health status of each data ingestion pipeline, including last-ingested timestamps, delay, and recent gaps.
Minimum tier: Pro | Credits: 25 flat per request
GET https://kwery-api.com/v1/status?api-key=YOUR_KEY
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
api-key | string | Yes | — | Your API key. Passed as a query parameter. |
source | string | No | — | Filter by source (e.g. binance_spot, hyperliquid, polymarket, kalshi, chainlink). Omit to return all pipelines. |
symbol | string | No | — | Filter by asset symbol (e.g. BTC). Omit to return all symbols. |
Response fields
Each object in data represents a single ingestion pipeline:
| Field | Type | Description |
|---|---|---|
source | string | Data source identifier. |
symbol | string | Asset symbol this pipeline covers. |
last_ingested | string | ISO 8601 timestamp of the most recently ingested record. |
delay_seconds | number | Seconds between now and last_ingested. Lower is better. |
status | string | Pipeline health: healthy (delay < 60s), degraded (delay 60–300s), or down (delay > 300s or no recent data). |
gaps_last_24h | integer | Number of detected data gaps in the last 24 hours. A gap is any interval where expected data was not ingested. |
Response headers
| Header | Description |
|---|---|
X-Credits-Charged | Total credits consumed by this request. |
X-RateLimit-Remaining | Requests remaining in the current rate-limit window. |
X-RateLimit-Reset | ISO 8601 timestamp when the rate-limit window resets. |
Example request
cURL
curl "https://kwery-api.com/v1/status?api-key=YOUR_KEY&source=binance_spot&symbol=BTC"
Python
import requests
resp = requests.get("https://kwery-api.com/v1/status", params={
"api-key": "YOUR_KEY",
"source": "binance_spot",
"symbol": "BTC",
})
data = resp.json()
for pipeline in data["data"]:
print(f"{pipeline['source']} {pipeline['symbol']}: {pipeline['status']}")
TypeScript
const params = new URLSearchParams({
"api-key": "YOUR_KEY",
source: "binance_spot",
symbol: "BTC",
});
const res = await fetch(`https://kwery-api.com/v1/status?${params}`);
const data = await res.json();
for (const pipeline of data.data) {
console.log(`${pipeline.source} ${pipeline.symbol}: ${pipeline.status}`);
}
Example response
{
"data": [
{
"source": "binance_spot",
"symbol": "BTC",
"last_ingested": "2026-03-09T14:22:58Z",
"delay_seconds": 2,
"status": "healthy",
"gaps_last_24h": 0
},
{
"source": "binance_futures",
"symbol": "BTC",
"last_ingested": "2026-03-09T14:22:57Z",
"delay_seconds": 3,
"status": "healthy",
"gaps_last_24h": 0
},
{
"source": "hyperliquid",
"symbol": "BTC",
"last_ingested": "2026-03-09T14:22:45Z",
"delay_seconds": 15,
"status": "healthy",
"gaps_last_24h": 1
},
{
"source": "polymarket",
"symbol": "BTC",
"last_ingested": "2026-03-09T14:20:02Z",
"delay_seconds": 178,
"status": "degraded",
"gaps_last_24h": 3
},
{
"source": "chainlink",
"symbol": "BTC",
"last_ingested": "2026-03-09T14:22:51Z",
"delay_seconds": 9,
"status": "healthy",
"gaps_last_24h": 0
}
],
"meta": {
"symbol": "BTC",
"source": null,
"interval": null,
"count": 5,
"next_cursor": null
}
}
Source-specific behavior
| Source | Typical healthy delay | Notes |
|---|---|---|
binance_spot | < 5s | WebSocket-fed, near real-time. |
binance_futures | < 5s | WebSocket-fed, near real-time. |
hyperliquid | < 30s | REST-polled at 10s intervals. Occasional gaps during chain congestion. |
polymarket | < 120s | Snapshot-based ingestion. Delays increase during low-activity periods. |
kalshi | < 60s | REST-polled. Gaps possible around market settlement windows. |
chainlink | < 15s | On-chain event listener. Delay tracks block confirmation time. |
Tier access
| Tier | Access |
|---|---|
| Free | Locked — returns 403. |
| Pro | Full access. |
| Business | Full access. |
Errors
| Status | Code | Description |
|---|---|---|
400 | invalid_source | The source value is not recognized. |
400 | invalid_symbol | The symbol value is not recognized. |
401 | unauthorized | Missing or invalid api-key. |
403 | tier_locked | Your plan does not have access to this endpoint. |
429 | rate_limit_exceeded | You have exceeded your per-minute or per-hour request quota. |