GET /v1/candles

Retrieve OHLCV candlestick data across all supported sources in a single unified endpoint.

Min Tier: Free | Credits: 50 base + 3 per row returned

Parameters

ParameterTypeRequiredDefaultDescription
api-keystringYesYour API key.
symbolstringYesAsset symbol (e.g. BTC, ETH, SOL).
sourcestringNoallData source. One of binance_spot, binance_futures, hyperliquid, polymarket, chainlink. Omit to return candles from all sources.
intervalstringNo1hCandle interval. One of 1m, 5m, 15m, 1h, 4h, 1d.
startstringNoISO 8601 start time (inclusive).
endstringNoISO 8601 end time (exclusive).
limitintegerNo100Number of rows to return. Range: 1–1000.
afterstringNoCursor for pagination. Pass the meta.next_cursor value from a previous response.

Response

FieldTypeDescriptionSources
timestampstringISO 8601 candle open time.All
symbolstringAsset symbol.All
sourcestringData source identifier.All
intervalstringCandle interval.All
opennumberOpening price.All
highnumberHighest price in the interval.All
lownumberLowest price in the interval.All
closenumberClosing price. Polymarket returns the outcome probability (0–1).All
volumenumberTrade volume in the base asset.All except Chainlink
num_tradesinteger | nullNumber of trades in the interval.Binance only
taker_buy_rationumber | nullFraction of volume from taker buys (0–1).Binance futures only
funding_ratenumber | nullFunding rate for the interval.Binance futures, Hyperliquid
open_interestnumber | nullOpen interest in the base asset at candle close.Binance futures, Hyperliquid

Response Headers

HeaderDescription
X-Credits-UsedCredits consumed by this request.
X-Credits-RemainingCredits remaining in your billing cycle.
X-Rows-ReturnedNumber of rows in the response.
X-Rows-Cappedtrue if the result set was truncated by your plan's row limit.

Example

cURL

curl "https://kwery-api.com/v1/candles?api-key=YOUR_KEY&symbol=BTC&source=binance_futures&interval=4h&start=2026-03-01T00:00:00Z&end=2026-03-02T00:00:00Z&limit=6"

Python

import requests

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

TypeScript

const params = new URLSearchParams({
  "api-key": "YOUR_KEY",
  "symbol": "BTC",
  "source": "binance_futures",
  "interval": "4h",
  "start": "2026-03-01T00:00:00Z",
  "end": "2026-03-02T00:00:00Z",
  "limit": "6",
});
const res = await fetch(`https://kwery-api.com/v1/candles?${params}`);
const data = await res.json();

Example Response

{
  "data": [
    {
      "timestamp": "2026-03-01T00:00:00Z",
      "symbol": "BTC",
      "source": "binance_futures",
      "interval": "4h",
      "open": 93850.00,
      "high": 94200.50,
      "low": 93600.00,
      "close": 94150.25,
      "volume": 8420.15,
      "num_trades": 184320,
      "taker_buy_ratio": 0.54,
      "funding_rate": 0.0001,
      "open_interest": 52340.80
    },
    {
      "timestamp": "2026-03-01T04:00:00Z",
      "symbol": "BTC",
      "source": "binance_futures",
      "interval": "4h",
      "open": 94150.25,
      "high": 94680.00,
      "low": 94050.00,
      "close": 94520.75,
      "volume": 7835.42,
      "num_trades": 167540,
      "taker_buy_ratio": 0.51,
      "funding_rate": 0.0001,
      "open_interest": 53100.20
    }
  ],
  "meta": {
    "symbol": "BTC",
    "source": "binance_futures",
    "interval": "4h",
    "returned": 6,
    "next_cursor": "eyJ0IjoiMjAyNi0wMy0wMVQyMDowMDowMFoifQ",
    "has_more": false
  }
}

Source-Specific Behavior

Polymarket — The close field represents the outcome probability (0–1) rather than a dollar price. volume is denominated in USDC. Fields like num_trades, taker_buy_ratio, funding_rate, and open_interest are always null.

Chainlink — Only 5m and 15m intervals are available. volume is always null because Chainlink is an oracle feed, not an exchange. Prices reflect the on-chain aggregated answer.

Binance (spot and futures)num_trades is populated on every candle. taker_buy_ratio, funding_rate, and open_interest are only present on binance_futures.

Hyperliquid — Funding settles continuously (hourly), unlike Binance's 8-hour schedule. funding_rate and open_interest may be null on sub-hourly intervals.

Tier Access

PlanHistory DepthIntervals
Free14 days15m, 1h, 4h, 1d
Pro30 days5m, 15m, 1h, 4h, 1d
BusinessFull historyAll intervals including 1m

Errors

StatusCodeWhen
400invalid_symbolThe symbol parameter is missing or not recognized.
400invalid_intervalThe requested interval is not supported for the given source.
400invalid_time_rangestart is after end, or the range exceeds your plan's history depth.
401unauthorizedMissing or invalid api-key.
403tier_restrictedYour plan does not allow the requested interval or history depth.
429rate_limitedYou have exceeded your plan's request rate. Retry after the Retry-After header value.