# OHLCV candles

> Candles in columnar form (one array per field, aligned by index), which is compact and maps straight onto charting libraries.

Source: https://docs.crius.sh/reference/trades/ohlcv-candles/ · Updated 2026-10-28

GET https://api.crius.sh/v1/{chain}/token/{address}/candles

Candles in **columnar** form (one array per field, aligned by index), which is compact and maps straight onto charting libraries. Intervals: `1s`, `30s`, `1m`, `5m`, `15m`, `1h`, `4h`, `6h`, `1d`. Up to 1,500 candles per call; buckets without trades are omitted.

By default (USD) candles merge the token's real markets: every pool with at least $1k or 2% of its liquidity, plus its launch curve for launchpad tokens. Thin side pools stay out, so a $1 trade there can't draw a wick. `pool=main` charts the main market only (the default with `currency=quote`, prices in the pool's quote token), `pool=<key>` one pool, `pool=all` every pool. Each candle opens at the previous close (`continuous=false` for first-trade opens), and `fill=true` adds flat candles for buckets without trades so the time axis is evenly spaced. Dust trades (under 10,000 raw units on either side) never set a price.

**Which trades set a candle's price.** Candles are drawn from real market prices, so a few trades on the tape don't move them. They still count in volume and trade counts, so OHLC can differ from aggregating the raw tape:

-   trades under $1, and a buy and sell of the same size in one pool and block (round trips);
-   trades in a minor pool (under 5% of the token's volume) more than 1.1x away from the main market's last price, and any pool's trade more than 1.3x away from the dominant market's recent price;
-   a trade more than 5x away from its 10-minute value-weighted median, and an isolated spike (both neighbours agreeing with each other, the trade far from both);
-   a launch ladder: trades in the launch block, or among the first 50 trades within 20 blocks of it, more than 10x away from the median of the first 20 trades after those 20 blocks.

For the exact tape, use the [trade tape](https://docs.crius.sh/reference/trades/trade-tape/) for the same window.

See the [chart example](https://docs.crius.sh/examples/chart/) for a complete TradingView Lightweight Charts integration.

> Default (usd): the token's real markets merged (pools with >= $1k or >= 2% of its liquidity) plus its launch curve; ?pool=main its main market only; ?pool=all every pool. Candles open at the previous close.

## Path parameters

`chain`stringrequired

Chain slug (`robinhood`) or chain id (`4663`).

`address`stringrequired

Contract or wallet address, any case (`0x…`, 20 bytes).

## Query parameters

`interval`string Default `1m`

Bucket size. One of `1s`, `30s`, `1m`, `5m`, `15m`, `1h`, `4h`, `6h`, `1d`.

`limit`integer Default `500`

Maximum number of items to return.

`from_ts`integer

Start of the time range, unix milliseconds (inclusive).

`to_ts`integer

End of the time range, unix milliseconds (inclusive).

`currency`string Default `usd`

Price unit. One of `usd`, `quote`.

`pool`string

Pool address (Uniswap v2/v3) or 32-byte pool id (Uniswap v4). Markets (default for usd) | main (default for quote) | all | a pool id.

`continuous`boolean Default `true`

`true`: the holder must stay above the threshold for the whole window. Open = previous close.

`fill`boolean Default `false`

Flat candles for buckets without trades.

## Key response fields

-   `t`: bucket start (unix ms) · `o` `h` `l` `c`: open, high, low, close
-   `v`: USD volume · `bv`: buy volume (sell volume = `v − bv`) · `n`: number of trades · `mc`: market cap at close

## Guides that use this endpoint

[**Get OHLCV candles for Robinhood Chain tokens (OHLCV API)**Robinhood Chain OHLCV API: candles for any token from 1 second to 1 day, with buy volume, trade count and market cap per candle. Real examples and chart code.](https://docs.crius.sh/guides/get-ohlcv-candles/)[**Get a token's all-time high and price change**Get a Robinhood Chain token's all-time high, when it was set, its market cap at the peak and its price change from 1 second to 24 hours, plus 7-day change.](https://docs.crius.sh/guides/get-all-time-high-and-price-change/)[**Stream live candles for a Robinhood Chain token chart**Keep a Robinhood Chain candlestick chart live: load candles over REST, update the last bar from the Crius WebSocket, with a runnable Node.js relay.](https://docs.crius.sh/guides/stream-live-candles/)[**Use the Crius API from AI agents (OpenAPI, llms.txt, MCP)**Give an AI agent Robinhood Chain data: Crius docs as llms.txt and Markdown, tool definitions from the OpenAPI document, an MCP server, and accuracy tips.](https://docs.crius.sh/guides/use-crius-with-ai-agents/)[**Robinhood Chain DEX data: which DEXs trade, and how to get their trades, pools and volume**Which DEXs trade on Robinhood Chain (Uniswap v2, v3, v4 with hooks, launchpad curves), their real 24h volume and pools, and the API calls for DEX trades.](https://docs.crius.sh/guides/robinhood-chain-dex-data/)[**Robinhood Chain API for AI agents**Give an AI agent Robinhood Chain data with the Crius API: which endpoints to expose as tools, the OpenAPI document, structured errors and citing the block.](https://docs.crius.sh/use-cases/ai-agents/)[**Robinhood Chain API for analytics dashboards**Build Robinhood Chain dashboards with the Crius API: DEX volume without wash trades, TVL, launches per launchpad, hourly patterns and token charts.](https://docs.crius.sh/use-cases/analytics-dashboards/)[**Robinhood Chain API for Telegram and Discord bots**Build a Robinhood Chain token scanner, buy bot or launch-alert channel for Telegram or Discord with the Crius API, with real replies and credit costs.](https://docs.crius.sh/use-cases/telegram-and-discord-bots/)[**Robinhood Chain API for token screeners**Build a Robinhood Chain token screener with the Crius API: new, trending and graduating lists, batch profiles, candles and risk badges, with credit costs.](https://docs.crius.sh/use-cases/token-screeners/)[**Robinhood Chain API for wallets and portfolio apps**What a Robinhood Chain wallet or portfolio app needs from the Crius API: holdings, USD values, PnL, trade history and warnings about spam tokens.](https://docs.crius.sh/use-cases/wallets-and-portfolio-apps/)

## Errors

Errors come back as `{ "error": { "code", "message" } }` with the matching HTTP status: `400` bad parameter, `401` missing or invalid key, `403` endpoint above your plan, `404` unknown token or address, `429` rate limit or credits used up (with `Retry-After`). See [Errors](https://docs.crius.sh/errors/).

## More trades & candles endpoints

[GET/token/{address}/tradesTrade tapeAnonymous · 2 cr](https://docs.crius.sh/reference/trades/trade-tape/)[GET/token/{address}/transactionsActivity feedFree · 2 cr](https://docs.crius.sh/reference/trades/activity-feed/)

Request No key needed

  

**cURL**

```bash
curl "https://api.crius.sh/v1/robinhood/token/0x0bd7d308f8e1639fab988df18a8011f41eacad73/candles?interval=1h&limit=3" \
  -H "x-api-key: $CRIUS_API_KEY"
```

**JavaScript**

```js
const res = await fetch("https://api.crius.sh/v1/robinhood/token/0x0bd7d308f8e1639fab988df18a8011f41eacad73/candles?interval=1h&limit=3", {
  headers: { "x-api-key": process.env.CRIUS_API_KEY },
});
const { data, meta } = await res.json();
```

**Python**

```python
import os, requests

r = requests.get(
    "https://api.crius.sh/v1/robinhood/token/0x0bd7d308f8e1639fab988df18a8011f41eacad73/candles?interval=1h&limit=3",
    headers={"x-api-key": os.environ["CRIUS_API_KEY"]},
)
body = r.json()
print(body["data"])
```

Response 200 · captured Oct 28, 2026

```json
{
  "data": {
    "bv": [
      7719250,
      3592353,
      454055
    ],
    "c": [
      2358.89,
      2361.93,
      2357.69
    ],
    "currency": "usd",
    "h": [
      2389.5,
      2369.36,
      2363.53
    ],
    "interval": "1h",
    "l": [
      2345.91,
      2345.98,
      2353.91
    ],
    "mc": [
      90541111,
      90657707,
      90494986
    ],
    "n": [
      21263,
      23756,
      3140
    ],
    "o": [
      2369.35,
      2358.89,
      2361.93
    ],
    "t": [
      1793217600000,
      1793221200000,
      1793224800000
    ],
    "v": [
      15761872,
      7055129,
      1053224
    ]
  },
  "meta": {
    "block": 100406798,
    "block_age_ms": 1271,
    "block_ts": 1793225077000,
    "chain": "robinhood",
    "finalized_block": 100397649,
    "from_ts": 1793217600000,
    "lag_ms": 78,
    "note": "default (usd) = the token's real markets merged plus its launch curve; ?pool=main its main market only (the default with currency=quote), ?pool=<key> one pool, ?pool=all every pool. Candles open at the previous close (?continuous=false for first-trade opens); buckets without trades are omitted unless ?fill=true",
    "pools": [
      "0xa9188730fe85be88ad499d7d52b099e800fb0334",
      "0x69bfaf19c9f377bb306a89aed9f6b07e2c1a8d9a",
      "0xd42a491087a15e5afd51feb3606066cc152d2b09"
    ],
    "safe_block": 100401329,
    "to_ts": 1793225077000
  }
}
```

[Report an issue](mailto:support@crius.sh?subject=Docs%20issue%3A%20GET%20%2Fv1%2F%7Bchain%7D%2Ftoken%2F%7Baddress%7D%2Fcandles&body=Page%3A%20https%3A%2F%2Fdocs.crius.sh%2Freference%2Ftrades%2Fohlcv-candles%2F%0A%0AWhat's%20wrong%20or%20missing%3F%0A%0A)
