Skip to main content
⚠️Data availability

Historical depth varies by plan and source. See Data availability.

GET /v1/candles

OHLCV from binance (spot), binance_futures, chainlink, hyperliquid, polymarket, and kalshi. Omit source to query all sources in one call (merged). Authoritative behavior and examples: OpenAPI.

Credits: 50 base + 3 per row

Tier (per OpenAPI): Free 7d / 15m+ · Pro 14d / 5m+ · Business 31d / 1s

Parameters

ParameterTypeRequiredDefaultDescription
api-keystringYesX-API-Key header (recommended) or api-key query. Authentication.
symbolstringYesBTC, ETH, SOL, XRP (see OpenAPI Symbol enum).
intervalstringYes1s, 5m, 15m, 1h, 4h, 1d, 24h (see OpenAPI CandleInterval).
sourcestringNoOmit for all sources. Otherwise: polymarket, kalshi, binance, binance_futures, chainlink, hyperliquid.
market_idstringNoPolymarket: condition id — one market, may still return Up+Down legs.
token_idstringNoPolymarket: CLOB token id — one row per bar (best for backtests). From GET /v1/markets.
startstringNoISO-8601 UTC (inclusive).
endstringNoISO-8601 UTC.
limitintegerNo5001–10000 (per OpenAPI).
afterstringNoCursor from meta.next_cursor.

Polymarket (important)

  • Symbol only → multiple rows per bar (different conditions and/or Up vs Down).
  • Use token_id for a single time series.
  • Use market_id (condition id) for both legs of one market.
  • When unfiltered, meta.polymarket_note may explain the shape.

Scoped shortcut: GET /v1/polymarket/candles — see Platform routes.

Response (high level)

FieldTypeDescription
dataarrayCandle rows (shape varies slightly by source).
metaobjectsymbol, source, interval, count, next_cursor, optional Polymarket notes, clamping fields.

Example

import requests

resp = requests.get(
    "https://kwery-api.com/v1/candles",
    headers={"X-API-Key": "YOUR_KEY"},
    params={
        "symbol": "BTC",
        "source": "binance_futures",
        "interval": "4h",
        "start": "2026-03-01T00:00:00Z",
        "end": "2026-03-02T00:00:00Z",
        "limit": 6,
    },
)
data = resp.json()
print(data["data"][:3])

Query parameter alternative: api-key=YOUR_KEY on the URL.

Example response (illustrative)

{
  "data": [
    {
      "timestamp": "2026-03-01T00:00:00Z",
      "symbol": "BTC",
      "source": "binance_futures",
      "interval": "4h",
      "open": 93850.0,
      "high": 94200.5,
      "low": 93600.0,
      "close": 94150.25,
      "volume": 8420.15
    }
  ],
  "meta": {
    "symbol": "BTC",
    "source": "binance_futures",
    "interval": "4h",
    "count": 6,
    "next_cursor": null
  }
}

Errors

403 plan upgrades, 422 validation, 429 rate limits — see Error codes and OpenAPI operation responses.