Skip to main content

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

ParameterTypeRequiredDefaultDescription
api-keystringYesYour API key. Passed as a query parameter.
sourcestringNoFilter by source (e.g. binance_spot, hyperliquid, polymarket, kalshi, chainlink). Omit to return all pipelines.
symbolstringNoFilter by asset symbol (e.g. BTC). Omit to return all symbols.

Response fields

Each object in data represents a single ingestion pipeline:

FieldTypeDescription
sourcestringData source identifier.
symbolstringAsset symbol this pipeline covers.
last_ingestedstringISO 8601 timestamp of the most recently ingested record.
delay_secondsnumberSeconds between now and last_ingested. Lower is better.
statusstringPipeline health: healthy (delay < 60s), degraded (delay 60–300s), or down (delay > 300s or no recent data).
gaps_last_24hintegerNumber of detected data gaps in the last 24 hours. A gap is any interval where expected data was not ingested.

Response headers

HeaderDescription
X-Credits-ChargedTotal credits consumed by this request.
X-RateLimit-RemainingRequests remaining in the current rate-limit window.
X-RateLimit-ResetISO 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

SourceTypical healthy delayNotes
binance_spot< 5sWebSocket-fed, near real-time.
binance_futures< 5sWebSocket-fed, near real-time.
hyperliquid< 30sREST-polled at 10s intervals. Occasional gaps during chain congestion.
polymarket< 120sSnapshot-based ingestion. Delays increase during low-activity periods.
kalshi< 60sREST-polled. Gaps possible around market settlement windows.
chainlink< 15sOn-chain event listener. Delay tracks block confirmation time.

Tier access

TierAccess
FreeLocked — returns 403.
ProFull access.
BusinessFull access.

Errors

StatusCodeDescription
400invalid_sourceThe source value is not recognized.
400invalid_symbolThe symbol value is not recognized.
401unauthorizedMissing or invalid api-key.
403tier_lockedYour plan does not have access to this endpoint.
429rate_limit_exceededYou have exceeded your per-minute or per-hour request quota.