---
title: "Candles of real trades, with volume"
method: GET
path: "/v1/candles"
---

# Candles of real trades, with volume

`GET /v1/candles`

## Request

- Base URL: `https://qmax.exchange/api`
- URL: `https://qmax.exchange/api/v1/candles`
- Auth: none declared

Open, high, low, close, QU volume, units traded and trade count for each candle, built from the trades QX and QSwap logged (a minute wide at the finest, back about six months: the Qubic archive has no trade records before epoch 207, April 2026). If the server has read Quhub's older QX history (`npm run import-quhub`), candles before the archive's first day come from there, QX only, marked `src: "quhub"` (the chain cannot confirm them); `approx: true` says a candle is a daily summary drawn as a candle (it opens at the previous day's average price and closes at that day's), which is all there is for an asset with more than 1,000 trades before April 2026. A candle exists only where something traded, so a gap means no trades. `venue` is one market, or `all` to treat QX and QSwap as one (highs and lows span both, volumes add up); `auto` follows the market the live price comes from (QSwap if the asset has a pool, else QX). The response also gives the last 24 hours of volume across both venues. Free; limited per IP without a key.

## Query parameters

- `asset` string, required
- `range` '1d' | '7d' | '30d' | '90d' | 'all'
- `interval` '1m' | '5m' | '15m' | '30m' | '1h' | '4h' | '1d'
- `venue` 'auto' | 'QX' | 'QSwap' | 'all'

## Response `200`

{ asset, range, interval, venue, candles: [{ t, o, h, l, c, volumeQu, volumeQty, trades }], truncated?, available?, volume24hQu, trades24h }

## Other responses

- `404`: Unknown asset, or trade history is off on this server

---

[API](https://skmtc.dev/qmax/apis/qmax-api.md) · [All operations](https://skmtc.dev/qmax/apis/qmax-api/llms.txt) · [OpenAPI document](https://skmtc.dev/qmax/apis/qmax-api/revisions/af70e2813a7a?raw)
